Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 using ROOT::Math::PtEtaPhiEVector;
14 :
EL::AnaAlgorithm(
name, pSvcLocator)
32 return StatusCode::SUCCESS;
71 bool decision =
false;
75 for (
size_t i = 0;
i <
electrons->size() - 1 && !decision; ++
i) {
78 for (
size_t j =
i + 1; j <
electrons->size() && !decision; ++j) {
81 if (firstElectron->
charge() != secondElectron->
charge()){
82 float mll = (firstElectron->
p4() + secondElectron->
p4()).M();
83 decision |= (mll < m_mll_upper && mll >
m_mll_lower);
92 if (!decision && muons->
size() >= 2) {
93 for (
size_t i = 0;
i < muons->
size() - 1 && !decision; ++
i) {
96 for (
size_t j =
i + 1; j < muons->
size() && !decision; ++j) {
100 float mll = (firstMuon->
p4() + secondMuon->
p4()).M();
101 decision |= (mll < m_mll_upper && mll >
m_mll_lower);
110 if (truthElectrons->
size() >= 2) {
111 for (
size_t i = 0;
i < truthElectrons->
size() - 1 && !decision; ++
i) {
114 for (
size_t j =
i + 1; j < truthElectrons->
size() && !decision; ++j) {
117 if (firstElectron->
charge() != secondElectron->
charge()){
120 PtEtaPhiEVector el0, el1;
121 el0.SetCoordinates(acc_pt_dressed(*firstElectron),
122 acc_eta_dressed(*firstElectron),
123 acc_phi_dressed(*firstElectron),
124 acc_e_dressed(*firstElectron));
125 el1.SetCoordinates(acc_pt_dressed(*secondElectron),
126 acc_eta_dressed(*secondElectron),
127 acc_phi_dressed(*secondElectron),
128 acc_e_dressed(*secondElectron));
131 mll = (firstElectron->
p4() + secondElectron->
p4()).M();
133 decision |= (mll < m_mll_upper && mll >
m_mll_lower);
142 if (!decision && truthMuons->
size() >= 2) {
143 for (
size_t i = 0;
i < truthMuons->
size() - 1 && !decision; ++
i) {
146 for (
size_t j =
i + 1; j < truthMuons->
size() && !decision; ++j) {
152 PtEtaPhiEVector
mu0, mu1;
153 mu0.SetCoordinates(acc_pt_dressed(*firstMuon),
154 acc_eta_dressed(*firstMuon),
155 acc_phi_dressed(*firstMuon),
156 acc_e_dressed(*firstMuon));
157 mu1.SetCoordinates(acc_pt_dressed(*secondMuon),
158 acc_eta_dressed(*secondMuon),
159 acc_phi_dressed(*secondMuon),
160 acc_e_dressed(*secondMuon));
163 mll = (firstMuon->
p4() + secondMuon->
p4()).M();
165 decision |= (mll < m_mll_upper && mll >
m_mll_lower);
174 if (
m_veto) decision = !decision;
178 return StatusCode::SUCCESS;
float charge() const
Obtain the charge of the object.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
CP::SysReadSelectionHandle m_muonSelection
Gaudi::Property< bool > m_veto
whether to veto events instead of selecting them
virtual FourMom_t p4() const override final
The full 4-momentum of the particle as a TLoretzVector.
DileptonOSSFInvariantMassWindowSelectorAlg(const std::string &name, ISvcLocator *pSvcLocator)
the standard constructor
::StatusCode retrieve(const T *&object, const CP::SystematicSet &sys) const
retrieve the object for the given name
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::SysReadSelectionHandle m_muonTruthSelection
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::MuonContainer > m_muonsHandle
CP::SysReadHandle< xAOD::TruthParticleContainer > m_muonsTruthHandle
CP::SysListHandle m_systematicsList
StatusCode initialize(SysListHandle &sysListHandle)
initialize this handle
CP::SysReadHandle< xAOD::ElectronContainer > m_electronsHandle
CP::SysReadSelectionHandle m_preselection
::StatusCode initialize()
intialize this property
bool getBool(const SG::AuxElement &element, const CP::SystematicSet &sys) const
get the selection as a bool
CP::SysReadSelectionHandle m_electronSelection
::StatusCode StatusCode
StatusCode definition for legacy code.
Class describing a truth particle in the MC record.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
virtual StatusCode execute() override
CP::SysReadSelectionHandle m_electronTruthSelection
Gaudi::Property< float > m_mll_lower
Class describing the basic event information.
CP::SysReadHandle< xAOD::EventInfo > m_eventInfoHandle
StatusCode initialize(SysListHandle &sysListHandle, const ISysHandleBase &objectHandle)
initialize the accessor
virtual StatusCode initialize() override
CP::SysWriteSelectionHandle m_decoration
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Gaudi::Property< bool > m_useDressedProperties
use dressed kinematics
size_type size() const noexcept
Returns the number of elements in the collection.
CP::SysReadHandle< xAOD::TruthParticleContainer > m_electronsTruthHandle
double charge() const
Physical charge.
StatusCode initialize(SysListHandle &sysListHandle, const ISysHandleBase &objectHandle)
initialize the accessor