 |
ATLAS Offline Software
|
Go to the documentation of this file.
19 #include "GaudiKernel/MsgStream.h"
20 #include "GaudiKernel/StatusCode.h"
29 #include "GaudiKernel/SystemOfUnits.h"
34 m_hNZcandidates(nullptr),
35 m_electronGroup(nullptr),
36 m_electronTrkGroup(nullptr),
37 m_electronIdGroup(nullptr),
38 m_electronIsoGroup(nullptr),
39 m_electronLBGroup(nullptr),
40 m_electronEffGroup(nullptr),
52 m_effhISOEta(nullptr),
53 m_effhISOPhi(nullptr),
77 return StatusCode::SUCCESS;
122 bookTH2F(
m_hEtaPhi, *
m_electronGroup,
"electronTagAndProbeEtaPhi",
"Probe electron #eta,#phi map", 64, -3.2, 3.2,
m_PhiBinning, -3.2, 3.2);
149 std::string
hname = std::string(
"LBEvoNZcandidates");
150 std::string hlongname = std::string(
"Number of Z candidates vs LB");
153 return StatusCode::SUCCESS;
160 if (!
hasGoodTrigger(
"Zee T&P electron"))
return StatusCode::SUCCESS;
162 const EventContext& ctx = Gaudi::Hive::currentContext();
167 return StatusCode::RECOVERABLE;
190 ATH_MSG_DEBUG(
"Number of electrons: " << electron_container->size());
198 for (; e_iter!=e_end; ++e_iter) {
200 if(!(*e_iter))
continue;
207 bool passed = (*e_iter)->passSelection(isGood,
"LHLoose");
208 if(
passed || !isGood )
ATH_MSG_DEBUG(
"not a good LHLoose electron candidate found in TDS");
221 float et = (*e_iter)->pt();
227 }
else if(
et>subl_et) {
240 if (ngood_el<2)
return StatusCode::SUCCESS;
247 float mass = (lead_el->
p4()+subl_el->
p4()).M();
249 if(mass<m_MassLowerCut || mass>
m_MassUpperCut)
return StatusCode::SUCCESS;
252 float lead_eta = lead_el->
eta();
253 float lead_phi = lead_el->
phi();
254 float subl_eta = subl_el->
eta();
255 float subl_phi = subl_el->
phi();
256 ATH_MSG_DEBUG(
"Leading electron (eta,phi,et,q): (" << lead_eta <<
", " << lead_phi <<
", " << lead_et <<
", " << lead_el->
charge() <<
")");
257 ATH_MSG_DEBUG(
"Subleading electron (eta,phi,et,q): (" << subl_eta <<
", " << subl_phi <<
", " << subl_et <<
", " << subl_el->
charge() <<
")");
260 if(fabs(lead_eta)>2.47 || fabs(subl_eta)>2.47)
return StatusCode::SUCCESS;
263 if (lead_el->
charge()*subl_el->
charge()>=0)
return StatusCode::SUCCESS;
265 bool lead_isLHTight =
false;
266 if ( !lead_el->
passSelection(lead_isLHTight,
"LHTight") )
return StatusCode::FAILURE;
268 bool subl_isLHTight =
false;
269 if ( !subl_el->
passSelection(subl_isLHTight,
"LHTight") )
return StatusCode::FAILURE;
271 bool EventZcandidateUsed =
false;
276 EventZcandidateUsed =
true;
279 bool subl_isIsolated =
false;
290 bool lead_isIsolated =
false;
299 return StatusCode::SUCCESS;
306 float eta =
el->eta();
307 float phi =
el->phi();
336 if (isTight && isIso) {
380 float Re233e237 = 0.0;
385 float Re237e277 = 0.0;
410 trackp =
t->pt()*cosh(
t->eta());
421 }
else ATH_MSG_DEBUG(
"Error attempting to retrieve associated track");
427 if(trackp !=0) ep = aCluster->
e()/trackp;
429 double ec = aCluster->
et()*cosh(aCluster->
eta());
447 return StatusCode::SUCCESS;
@ ehad1
E leakage into 1st sampling of had calo (CaloSampling::HEC0 + CaloSampling::TileBar0 + CaloSampling::...
@ e233
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units e...
Extra patterns decribing particle interation process.
Const iterator class for DataVector/DataList.
float charge() const
Obtain the charge of the object.
Scalar phi() const
phi method
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
constexpr double ZMassInMeV
the mass of the Z0 boson (in MeV)
Scalar eta() const
pseudorapidity method
bool isolationValue(float &value, const Iso::IsolationType information) const
old Accessor for Isolation values.
@ ecore
core energy in em calo E(core) = E0(3x3) + E1(15x2) + E2(5x5) + E3(3x5)
@ ptcone20
Track isolation.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle as a TLoretzVector.
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ f3
fraction of energy reconstructed in 3rd sampling
Description of a calorimeter cluster.
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
virtual double eta() const
The pseudorapidity ( ) of the particle.
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
int ir
counter of the current depth
#define ATH_MSG_WARNING(x)
float energyBE(const unsigned layer) const
Get the energy in one layer of the EM Calo.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Class describing a TrackParticle.
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
@ deltaEta1
difference between the cluster eta (first sampling) and the eta of the track extrapolated to the firs...
virtual double e() const
The total energy of the particle.
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
const uint16_t AuthorElectron
Object Reconstructed by standard cluster-based algorithm.