49 else ATH_MSG_INFO(
"No requirement on pairs of leptons. ");
53 return StatusCode::SUCCESS;
66 bool eventHasLeptonPair =
false;
72 if (analEls->
size() > 1) eventHasLeptonPair =
true;
77 if (analMus->
size() > 1) eventHasLeptonPair =
true;
80 else eventHasLeptonPair =
true;
81 ATH_MSG_DEBUG(
"Event has lepton pair?: " << (
int)eventHasLeptonPair);
101 for (
auto vtx : *vtxs) {
114 for (
auto el : *els ) {
117 char evtOK = (eventHasLeptonPair) ? 1 : 0;
122 int el_nInnerExpPix = -1;
131 else if (1 == expNextInPix) {
138 auto tp = el->trackParticle();
140 if (primaryVtx) z0stheta = (tp->z0() - primaryVtx->
z() + tp->vz()) * sin(tp->theta());
148 float clEta = el->caloCluster()->eta();
149 float clPhi = el->caloCluster()->phi();
155 ATH_MSG_DEBUG(
"el pt,eta,ph " << el->pt()/1000. <<
", " << el->eta() <<
", " << el->phi());
159 ATH_MSG_DEBUG(
"Set cluster eta, phi to " << clEta <<
", " << clPhi);
165 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
StatusCode initialize() override
SysReadHandle< xAOD::ElectronContainer > m_electronContainerKey
SysReadHandle< xAOD::VertexContainer > m_vertexKey
CP::SysWriteDecorHandle< float > m_clEta
CP::SysWriteDecorHandle< float > m_z0stheta
Decorators for the extra information from clusters and tracks for SiHit electrons.
CP::SysWriteDecorHandle< int > m_nInnerExpPix
CP::SysWriteDecorHandle< float > m_d0Normalized
SysReadHandle< xAOD::ElectronContainer > m_analElectronContKey
CP::SysWriteDecorHandle< char > m_evtOKDec
Decorator for SiHit electron for event requirement on a pair of leptons.
CP::SysWriteDecorHandle< float > m_clPhi
Gaudi::Property< bool > m_requireTwoLeptons
ElectronSiHitDecAlg(const std::string &name, ISvcLocator *pSvcLocator)
the standard constructor
SysReadHandle< xAOD::EventInfo > m_eventInfoKey
SysReadHandle< xAOD::MuonContainer > m_analMuonContKey
StatusCode execute() override
SysListHandle m_systematicsList
the systematics list we run
size_type size() const noexcept
Returns the number of elements in the collection.
AnaAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
float beamPosSigmaY() const
The width of the beam spot in the Y direction.
float beamPosSigmaXY() const
The beam spot shape's X-Y correlation.
float beamPosSigmaX() const
The width of the beam spot in the X direction.
float z() const
Returns the z position.
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
Select isolated Photons, Electrons and Muons.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
double d0significance(const xAOD::TrackParticle *tp, double d0_uncert_beam_spot_2)
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
EventInfo_v1 EventInfo
Definition of the latest event info version.
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfNextToInnermostPixelLayerHits
these are the hits in the 1st pixel barrel layer
@ expectNextToInnermostPixelLayerHit
Do we expect a 1st-layer barrel hit for this track?
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer