diff --git a/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/CMakeLists.txt b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..a928229b407fffe55667d297406cf0f49ae2ba98 --- /dev/null +++ b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/CMakeLists.txt @@ -0,0 +1,23 @@ + +# The name of the package: +atlas_subdir( TriggerAnalysisInterfaces ) + +# The dependencies of the package: +atlas_depends_on_subdirs( + PUBLIC + Control/AthToolSupport/AsgTools + Event/xAOD/xAODEgamma + Event/xAOD/xAODMuon + PhysicsAnalysis/AnalysisCommon/PATInterfaces ) + +# Component(s) in the package: +atlas_add_library( TriggerAnalysisInterfaces + TriggerAnalysisInterfaces/*.h + INTERFACE + PUBLIC_HEADERS TriggerAnalysisInterfaces + LINK_LIBRARIES AsgTools xAODEgamma xAODMuon PATInterfaces ) + +atlas_add_dictionary( TriggerAnalysisInterfacesDict + TriggerAnalysisInterfaces/TriggerAnalysisInterfacesDict.h + TriggerAnalysisInterfaces/selection.xml + LINK_LIBRARIES TriggerAnalysisInterfaces ) diff --git a/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/ITrigGlobalEfficiencyCorrectionTool.h b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/ITrigGlobalEfficiencyCorrectionTool.h new file mode 100644 index 0000000000000000000000000000000000000000..f5c60d37c5d5fba65abf12cde5ae952dedb393a0 --- /dev/null +++ b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/ITrigGlobalEfficiencyCorrectionTool.h @@ -0,0 +1,64 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +// contact: jmaurer@cern.ch +#ifndef TRIGGERANALYSISINTERFACES_ITRIGGLOBALEFFICIENCYCORRECTIONTOOL_H +#define TRIGGERANALYSISINTERFACES_ITRIGGLOBALEFFICIENCYCORRECTIONTOOL_H 1 + +// EDM include(s): +#include "xAODEgamma/ElectronFwd.h" +#include "xAODMuon/Muon.h" + +// Tool include(s): +#include "AsgTools/IAsgTool.h" +#include "PATInterfaces/CorrectionCode.h" + +class ITrigGlobalEfficiencyCorrectionTool : public virtual asg::IAsgTool { + +public: + ASG_TOOL_INTERFACE( ITrigGlobalEfficiencyCorrectionTool ) + + /// Helper type definition + typedef std::vector< const xAOD::IParticle* > IParticleConstVector; + /// Helper type definition + typedef std::vector< const xAOD::Electron* > ElectronConstVector; + /// Helper type definition + typedef std::vector< const xAOD::Muon* > MuonConstVector; + + virtual CP::CorrectionCode + getEfficiencyScaleFactor( const IParticleConstVector& particles, + double& efficiencyScaleFactor ) = 0; + virtual CP::CorrectionCode + getEfficiencyScaleFactor( unsigned runNumber, + const IParticleConstVector& particles, + double& efficiencyScaleFactor ) = 0; + virtual CP::CorrectionCode + getEfficiency( const IParticleConstVector& particles, double& efficiencyData, + double& efficiencyMc ) = 0; + virtual CP::CorrectionCode + getEfficiency( unsigned runNumber, const IParticleConstVector& particles, + double& efficiencyData, double& efficiencyMc ) = 0; + + virtual CP::CorrectionCode + getEfficiencyScaleFactor( const ElectronConstVector& electrons, + const MuonConstVector& muons, + double& efficiencyScaleFactor ) = 0; + virtual CP::CorrectionCode + getEfficiencyScaleFactor( unsigned runNumber, + const ElectronConstVector& electrons, + const MuonConstVector& muons, + double& efficiencyScaleFactor ) = 0; + virtual CP::CorrectionCode + getEfficiency( const ElectronConstVector& electrons, + const MuonConstVector& muons, + double& efficiencyData, double& efficiencyMc ) = 0; + virtual CP::CorrectionCode + getEfficiency( unsigned runNumber, + const ElectronConstVector& electrons, + const MuonConstVector& muons, + double& efficiencyData, double& efficiencyMc ) = 0; + +}; // class ITrigGlobalEfficiencyCorrectionTool + +#endif //> !TRIGGERANALYSISINTERFACES_ITRIGGLOBALEFFICIENCYCORRECTIONTOOL_H diff --git a/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfacesDict.h b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfacesDict.h new file mode 100644 index 0000000000000000000000000000000000000000..0eb8881d3a4fc70d12405396ec32bd639eb91443 --- /dev/null +++ b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfacesDict.h @@ -0,0 +1,11 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef TRIGGERANALYSISINTERFACES_TRIGGERANALYSISINTERFACESDICT_H +#define TRIGGERANALYSISINTERFACES_TRIGGERANALYSISINTERFACESDICT_H + +// Local include(s): +#include "TriggerAnalysisInterfaces/ITrigGlobalEfficiencyCorrectionTool.h" + +#endif // TRIGGERANALYSISINTERFACES_TRIGGERANALYSISINTERFACESDICT_H diff --git a/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/selection.xml b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/selection.xml new file mode 100644 index 0000000000000000000000000000000000000000..c8eb10be7d9fde13a4afd3fc7c50e503b637cc52 --- /dev/null +++ b/PhysicsAnalysis/Interfaces/TriggerAnalysisInterfaces/TriggerAnalysisInterfaces/selection.xml @@ -0,0 +1,3 @@ +<lcgdict> +<class name="ITrigGlobalEfficiencyCorrectionTool" /> +</lcgdict>