|
ATLAS Offline Software
|
Go to the documentation of this file.
8 #include "Math/Vector4D.h"
10 using ROOT::Math::PtEtaPhiEVector;
15 :
EL::AnaAlgorithm(
name, pSvcLocator)
29 return StatusCode::SUCCESS;
61 PtEtaPhiEVector lepton0, lepton1;
62 int total_leptons = 0;
63 bool isfilled0(
false), isfilled1(
false);
70 lepton0.SetCoordinates(acc_pt_dressed(*
el),
75 lepton0.SetCoordinates(
el->pt(),
el->eta(),
el->phi(),
el->e());
77 }
else if (!isfilled1){
79 lepton1.SetCoordinates(acc_pt_dressed(*
el),
84 lepton1.SetCoordinates(
el->pt(),
el->eta(),
el->phi(),
el->e());
98 lepton0.SetCoordinates(acc_pt_dressed(*
mu),
100 acc_phi_dressed(*
mu),
103 lepton0.SetCoordinates(
mu->pt(),
mu->eta(),
mu->phi(),
mu->e());
105 }
else if (!isfilled1){
107 lepton1.SetCoordinates(acc_pt_dressed(*
mu),
108 acc_eta_dressed(*
mu),
109 acc_phi_dressed(*
mu),
112 lepton1.SetCoordinates(
mu->pt(),
mu->eta(),
mu->phi(),
mu->e());
121 if (total_leptons != 2){
122 ATH_MSG_ERROR(
"Exactly two leptons are required to compute the MLL window!");
123 return StatusCode::FAILURE;
127 float mll = (lepton0 + lepton1).M();
131 bool decision =
m_veto ? (!in_range) : in_range;
134 return StatusCode::SUCCESS;
CP::SysReadSelectionHandle m_muonSelection
the muons selection
Gaudi::Property< float > m_mlllower
the lower limit of the MLL window
Gaudi::Property< bool > m_veto
whether to veto events instead of selecting them
CP::SysListHandle m_systematicsList
the systematics
CP::SysReadHandle< xAOD::IParticleContainer > m_electronsHandle
the electrons handle
CP::SysReadSelectionHandle m_preselection
the preselection
Helper class to provide constant type-safe access to aux data.
const std::vector< CP::SystematicSet > & systematicsVector() const
the list of systematics to loop over
CP::SysReadHandle< xAOD::IParticleContainer > m_muonsHandle
the muons handle
virtual StatusCode initialize() override
Class providing the definition of the 4-vector interface.
Select isolated Photons, Electrons and Muons.
void setBool(const SG::AuxElement &element, bool selection, const CP::SystematicSet &sys) const
set the selection decoration
CP::SysReadHandle< xAOD::EventInfo > m_eventInfoHandle
the event info handle
::StatusCode initialize()
intialize this property
bool getBool(const SG::AuxElement &element, const CP::SystematicSet &sys) const
get the selection as a bool
::StatusCode StatusCode
StatusCode definition for legacy code.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
DileptonInvariantMassWindowSelectorAlg(const std::string &name, ISvcLocator *pSvcLocator)
the standard constructor
Gaudi::Property< bool > m_useDressedProperties
use dressed kinematics
virtual StatusCode execute() override
Class describing the basic event information.
CP::SysWriteSelectionHandle m_decoration
the output selection decoration
StatusCode initialize(SysListHandle &sysListHandle, const ISysHandleBase &objectHandle)
initialize the accessor
CP::SysReadSelectionHandle m_electronSelection
the electrons selection
Gaudi::Property< float > m_mllupper
the upper limit of the MLL window
StatusCode initialize(SysListHandle &sysListHandle, const ISysHandleBase &objectHandle)
initialize the accessor