50 else ATH_MSG_INFO(
"No requirement on pairs of leptons. ");
54 return StatusCode::SUCCESS;
67 bool eventHasLeptonPair =
false;
73 if (analEls->
size() > 1) eventHasLeptonPair =
true;
78 if (analMus->
size() > 1) eventHasLeptonPair =
true;
81 else eventHasLeptonPair =
true;
82 ATH_MSG_DEBUG(
"Event has lepton pair?: " << (
int)eventHasLeptonPair);
102 for (
auto vtx : *vtxs) {
115 for (
auto el : *els ) {
118 char evtOK = (eventHasLeptonPair) ? 1 : 0;
123 int el_nInnerExpPix = -1;
132 else if (1 == expNextInPix) {
139 auto tp = el->trackParticle();
141 if (primaryVtx) z0stheta = (tp->z0() - primaryVtx->
z() + tp->vz()) * sin(tp->theta());
149 float clEta = el->caloCluster()->eta();
150 float clPhi = el->caloCluster()->phi();
156 ATH_MSG_DEBUG(
"el pt,eta,ph " << el->pt()/1000. <<
", " << el->eta() <<
", " << el->phi());
160 ATH_MSG_DEBUG(
"Set cluster eta, phi to " << clEta <<
", " << clPhi);
166 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
size_t index() const
Return the index of this element within its container.
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