40 else ATH_MSG_INFO(
"No requirement on pairs of leptons. ");
44 return StatusCode::SUCCESS;
57 bool eventHasLeptonPair =
false;
63 if (analEls->
size() > 1) eventHasLeptonPair =
true;
68 if (analMus->
size() > 1) eventHasLeptonPair =
true;
71 else eventHasLeptonPair =
true;
72 ATH_MSG_DEBUG(
"Event has lepton pair?: " <<
static_cast<int>(eventHasLeptonPair));
92 for (
const auto *vtx : *vtxs) {
106 for (
const auto *el : *els ) {
109 char evtOK = (eventHasLeptonPair) ? 1 : 0;
114 int el_nInnerExpPix = -1;
123 else if (1 == expNextInPix) {
132 ATH_MSG_ERROR(
"SiHit electron has no track particle, cannot compute z0stheta and d0Normalized");
133 return StatusCode::FAILURE;
136 if (primaryVtx) z0stheta = (tp->
z0() - primaryVtx->
z() + tp->
vz()) * std::sin(tp->
theta());
146 ATH_MSG_ERROR(
"SiHit electron has no calo cluster, cannot compute clEta and clPhi");
147 return StatusCode::FAILURE;
149 float clEta = cluster->
eta();
150 float clPhi = cluster->
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_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
#define ATH_MSG_INFO(x,...)
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
SysReadHandle< xAOD::EventInfo > m_eventInfoKey
SysReadHandle< xAOD::MuonContainer > m_analMuonContKey
SysListHandle m_systematicsList
the systematics list we run
size_type size() const noexcept
Returns the number of elements in the collection.
virtual::StatusCode execute()
execute this algorithm
virtual double eta() const
The pseudorapidity ( ) of the particle.
virtual double phi() const
The azimuthal angle ( ) of the particle.
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 z0() const
Returns the parameter.
float theta() const
Returns the parameter, which has range 0 to .
float vz() const
The z origin for the parameters.
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.
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.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent 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