|
ATLAS Offline Software
|
Go to the documentation of this file.
6 #include "CLHEP/Units/PhysicalConstants.h"
7 #include "CLHEP/Units/SystemOfUnits.h"
22 return StatusCode::SUCCESS;
25 return StatusCode::SUCCESS;
28 return StatusCode::SUCCESS;
35 float track_p = (
electron->trackParticle())->
pt()*std::cosh((
electron->trackParticle())->eta());
36 if (track_p != 0.) eoverp = (
electron->caloCluster())->
e()/track_p;
41 if ((fabs(eoverp) < 0.7) || (fabs(eoverp) > 1.5) ){
42 ATH_MSG_DEBUG (
"(eOverP) E/p is out of range! (eoverp="<<eoverp<<
").");
58 ATH_MSG_DEBUG (
"(trackSelectionElectrons) No track particle for Tag check.");
63 ATH_MSG_DEBUG (
"(trackSelectionElectrons) No caloCluster associated for Tag check.");
68 if (! ( (trackElectron->
pt() *
GeV ) > 7) ){
69 ATH_MSG_DEBUG (
"(trackSelectionElectrons) Pt_Track of the electron is below 7 GeV. Electron rejected.");
73 if (! (fabs(trackElectron->
eta()) < 2.47 )){
74 ATH_MSG_DEBUG (
"(trackSelectionElectrons) Electron track_eta is above 2.47. Electron rejected.");
81 bool isPrimVtx =
false;
82 bool passDeltaZ0sin =
false;
86 float delta_z0 = fabs(trackElectron->
z0() + trackElectron->
vz() -
vertex->z());
87 float delta_z0_sin = delta_z0 *
sin(trackElectron->
theta());
91 passDeltaZ0sin =
true;
93 ATH_MSG_DEBUG (
"(trackSelectionElectrons) delta_z0_sin < 0.5 mm ("<< delta_z0_sin <<
")");
94 ATH_MSG_DEBUG (
"(trackSelectionElectrons) There is a primary vertex in the event.");
100 if (!( isPrimVtx && passDeltaZ0sin)){
101 ATH_MSG_DEBUG (
"(trackSelectionElectrons) For this Tag, delta_z0_sin > 0.5mm, and there is NO primary vertices in the event. Rejecting electron.");
112 ATH_MSG_DEBUG(
"(trackSelectionElectrons) Electron accepted.");
118 if ( fabs(
el->eta()) > 1.475 ){
119 ATH_MSG_DEBUG (
"(isTagElectron) Electron |eta| > 1.475 (" << fabs(
el->eta()) <<
").");
125 float absEta = fabs(
el->caloCluster()->etaBE(2));
127 ATH_MSG_DEBUG (
"(isTagElectron) Selecting Tag Electron Eta is inside crack region.");
140 float elTagEt =
el->e()/(cosh(
el->trackParticle()->eta()));
141 float elTagPt =
el->pt();
143 ATH_MSG_DEBUG (
"(isTagElectron) Tag Electron Et/pT: "<< elTagEt <<
"/"<< elTagPt <<
", threshold =" <<
m_etMinTag *
GeV <<
".");
148 ATH_MSG_DEBUG (
"(isTagElectron) Checking electron object quality...");
150 ATH_MSG_DEBUG (
"(isTagElectron) \tTag Electron is a BADCLUSELECTRON.");
159 if ( fabs(
el->eta()) > 1.475 ){
160 ATH_MSG_DEBUG (
"(isGoodProbeElectron) Electron |eta| > 1.475 (" << fabs(
el->eta()) <<
").");
165 ATH_MSG_DEBUG (
" (isGoodProbeElectron) Checking Probe electron object quality...");
167 ATH_MSG_DEBUG (
" (isGoodProbeElectron) \tProbe Electron is a BADCLUSELECTRON.");
172 float electronPt =
el->pt();
179 float absEta = fabs(
el->caloCluster()->etaBE(2));
181 ATH_MSG_DEBUG (
"(isGoodProbeElectron) Electron Eta inside LAr crack region...");
192 ATH_MSG_DEBUG (
"(isGoodProbeElectron) Electron is a good probe!");
206 if (
cell->caloDDE()->is_tile())
return 0;
207 else if (
cell->caloDDE()->is_lar_em_barrel())
return 1;
208 else if (
cell->caloDDE()->is_lar_em_endcap_inner())
return 2;
209 else if (
cell->caloDDE()->is_lar_em_endcap_outer())
return 3;
210 else if (
cell->caloDDE()->is_lar_hec())
return 4;
211 else if (
cell->caloDDE()->is_lar_fcal())
return 5;
213 ATH_MSG_ERROR (
" #### Region not found for cell offline ID "<<
cell->ID() <<
" ! Returning -999.");
std::vector< double > * m_c711_clusterPt
double fixPhi(double phi)
virtual StatusCode initialize() override
Gaudi::Property< bool > m_isMC
std::vector< double > * m_zee_E
std::vector< float > * m_el_Phi
virtual double pt() const override final
The transverse momentum ( ) of the particle.
std::vector< float > * m_el_deltae
std::vector< std::vector< float > > * m_c711_channelDigits
std::vector< bool > * m_c711_channelBad
std::vector< float > * m_el_eoverp
Gaudi::Property< bool > m_noBadCells
std::vector< double > * m_zee_pz
virtual StatusCode execute() override
std::vector< std::vector< double > > * m_c_channelShapeDer
void bookBranches(TTree *tree)
std::vector< float > * m_ph_eta
std::vector< double > * m_c_clusterPhi
std::vector< int > * m_c_cellRegion
Scalar phi() const
phi method
bool trackSelectionElectrons(const xAOD::Electron *electron, SG::ReadHandle< xAOD::VertexContainer > &primVertexCnt, SG::ReadHandle< xAOD::EventInfo > &ei)
std::vector< float > * m_c711_channelADC2MEV0
std::vector< float > * m_mc_part_m
std::vector< int > * m_c_clusterIndex_chLvl
std::vector< float > * m_mc_part_energy
std::vector< float > * m_c_rawChannelAmplitude
std::vector< unsigned int > * m_hits_hash
std::vector< float > * m_c711_clusterRawChannelIndex
std::vector< float > * m_c_channelPed
std::vector< double > * m_c711_clusterEta
bool isEtaOutsideLArCrack(float absEta)
std::vector< float > * m_mc_vert_z
std::vector< double > * m_c711_clusterEnergy
std::vector< float > * m_c_rawChannelProv
std::vector< std::vector< int > > * m_c_channelChInfo
std::vector< int > * m_c711_rawChannelLayer
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
std::vector< bool > * m_c_channelBad
std::vector< float > * m_c711_channelOfflHVScale
std::vector< float > * m_el_fracs1
std::vector< float > * m_c_channelMinBiasAvg
float vz() const
The z origin for the parameters.
std::vector< float > * m_c711_rawChannelDSPThreshold
Gaudi::Property< bool > m_doLArEMBHitsDump
std::vector< double > * m_c711_cellTime
std::vector< unsigned int > * m_c711_channelChannelIdMap
std::vector< int > * m_c711_clusterIndex_rawChLvl
double d0significance(const xAOD::TrackParticle *tp, double d0_uncert_beam_spot_2)
std::vector< float > * m_c_channelOfflHVScale
virtual StatusCode finalize() override
std::vector< double > * m_c_cellToClusterDPhi
std::vector< std::vector< double > > * m_c_channelOFCa
std::vector< double > * m_hits_cellPhi
float z0() const
Returns the parameter.
std::vector< float > * m_c711_rawChannelAmplitude
int m_c_clusterIndexCounter
std::vector< float > * m_c711_rawChannelTime
float beamPosSigmaX() const
The width of the beam spot in the X direction.
std::vector< int > * m_mc_vert_status
const uint32_t BADCLUSELECTRON
std::vector< int > * m_c_electronIndex_clusterLvl
Gaudi::Property< bool > m_doPhotonDump
std::vector< float > * m_el_weta2
std::vector< double > * m_c_cellPhi
double deltaR(double eta, double phi)
Gaudi::Property< bool > m_doTruthPartDump
std::vector< int > * m_c711_cellRegion
std::vector< double > * m_c_channelTime
std::vector< int > * m_hits_clusterChannelIndex
std::vector< double > * m_c_clusterPt
std::vector< double > * m_c711_cellDPhi
std::vector< double > * m_c_cellEta
std::vector< float > * m_el_m
std::vector< float > * m_mc_vert_phi
std::vector< int > * m_hits_clusterIndex_chLvl
std::vector< float > * m_el_f3
std::vector< float > * m_c711_rawChannelPed
Gaudi::Property< bool > m_doAssocTopoCluster711Dump
std::vector< int > * m_c711_clusterChannelIndex
float m_e_outOfTimePileUp
std::vector< double > * m_c711_cellToClusterDPhi
std::vector< int > * m_c711_electronIndex_clusterLvl
std::vector< float > * m_c_channelDSPThreshold
std::vector< double > * m_c_cellEnergy
std::vector< float > * m_hits_sampFrac
std::vector< double > * m_hits_time
std::vector< float > * m_mc_part_eta
std::vector< float > * m_c711_rawChannelProv
bool eOverPElectron(const xAOD::Electron *electron)
Description of a calorimeter cluster.
std::vector< int > * m_c711_channelLayer
std::vector< int > * m_mc_part_status
std::vector< float > * m_c_channelADC2MEV0
std::vector< int > * m_c_channelLayer
std::vector< float > * m_el_eratio
std::vector< float > * m_el_reta
std::vector< int > * m_c_rawChannelLayer
std::vector< float > * m_c711_channelMinBiasAvg
std::vector< float > * m_el_f1
std::vector< double > * m_c_cellDPhi
std::vector< float > * m_el_weta1
std::vector< int > * m_hits_sampling
std::vector< double > * m_c_clusterEnergy
std::vector< float > * m_mc_vert_time
std::vector< float > * m_vtx_delta_z0_sin
std::vector< unsigned int > * m_c_channelChannelIdMap
std::vector< int > * m_c711_clusterIndex_cellLvl
std::vector< double > * m_vtx_d0sig
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< double > * m_c_cellToClusterDEta
std::vector< double > * m_c711_channelEnergy
Gaudi::Property< bool > m_doTagAndProbe
std::vector< unsigned int > * m_c_channelHashMap
std::vector< float > * m_c_channelNoise
std::vector< double > * m_c_cellTime
std::vector< float > * m_ph_pt
std::vector< float > * m_c_rawChannelTime
std::vector< unsigned int > * m_c_rawChannelIdMap
std::vector< double > * m_hits_energy
std::vector< float > * m_el_rphi
std::vector< float > * m_mc_vert_perp
std::vector< double > * m_c_channelEnergy
Gaudi::Property< std::string > m_offProbeTightness
Define the PID for tag electron.
EventReaderBaseAlg(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< int > * m_c711_clusterIndex_chLvl
std::vector< float > * m_mc_vert_y
std::vector< float > * m_mc_vert_x
float beamPosSigmaY() const
The width of the beam spot in the Y direction.
std::vector< double > * m_c711_cellToClusterDEta
Gaudi::Property< float > m_etMinTag
std::vector< double > * m_c711_cellEnergy
void bookDatabaseBranches(TTree *tree)
std::vector< double > * m_zee_T
std::vector< int > * m_c_cellLayer
std::vector< std::vector< int > > * m_c_rawChannelChInfo
std::vector< std::vector< double > > * m_c711_channelShapeDer
std::vector< int > * m_c_clusterIndex_cellLvl
std::vector< int > * m_mc_vert_barcode
std::vector< float > * m_mc_vert_eta
unsigned int m_e_runNumber
std::vector< std::vector< int > > * m_c711_channelChInfo
std::vector< float > * m_c_rawChannelDSPThreshold
std::vector< float > * m_mc_part_phi
std::vector< float > * m_c711_channelOfflEneRescaler
std::vector< std::vector< double > > * m_c_channelShape
std::vector< std::vector< double > > * m_c711_channelShape
std::vector< double > * m_c_channelOFCTimeOffset
std::vector< double > * m_c_cellDEta
bool isTagElectron(const xAOD::Electron *electron)
Gaudi::Property< float > m_d0TagSig
double deltaPhi(double phi1, double phi2)
std::vector< double > * m_zee_M
std::vector< float > * m_el_wtots1
std::vector< float > * m_ph_phi
std::vector< std::vector< int > > * m_c711_rawChannelChInfo
std::vector< float > * m_vtx_z
std::vector< std::vector< double > > * m_c711_channelOFCa
std::vector< float > * m_el_et
std::vector< double > * m_zee_pt
std::vector< float > * m_c_channelOfflEneRescaler
std::vector< float > * m_c711_channelADC2MEV1
std::vector< float > * m_c711_rawChannelQuality
std::vector< unsigned int > * m_c711_channelHashMap
std::vector< float > * m_c711_channelDSPThreshold
Gaudi::Property< std::string > m_offTagTightness
std::vector< float > * m_ph_energy
Gaudi::Property< float > m_z0Tag
std::vector< int > * m_c711_cellLayer
float beamPosSigmaXY() const
The beam spot shape's X-Y correlation.
std::vector< float > * m_el_Pt
std::vector< float > * m_c711_channelEffectiveSigma
std::vector< int > * m_c_cellGain
Class describing a Vertex.
Data object for each calorimeter readout cell.
bool isGoodProbeElectron(const xAOD::Electron *el)
std::vector< double > * m_c711_cellEta
std::vector< double > * m_c711_cellDEta
int * m_c711_cellIndexCounter
std::vector< float > * m_c_rawChannelQuality
std::vector< int > * m_c_clusterChannelIndex
#define ATH_MSG_WARNING(x)
std::vector< double > * m_c711_clusterTime
std::vector< double > * m_c_clusterTime
std::vector< int > * m_el_index
std::vector< int > * m_c_clusterIndex
std::vector< float > * m_el_e277
std::vector< float > * m_vtx_y
std::vector< int > * m_mc_part_pdgId
std::vector< double > * m_c711_channelTime
std::vector< int > * m_c711_cellGain
bool absEta(const xAOD::TauJet &tau, double &out)
Gaudi::Property< bool > m_doElecSelectByTrackOnly
std::vector< double > * m_c711_clusterPhi
std::vector< float > * m_vtx_x
std::vector< int > * m_c_clusterIndex_rawChLvl
std::vector< float > * m_ph_m
std::vector< int > * m_lb_lumiblock
std::vector< float > * m_el_rhad1
virtual ~EventReaderBaseAlg() override
std::vector< double > * m_c711_channelOFCTimeOffset
std::vector< std::vector< float > > * m_c_channelDigits
std::vector< float > * m_el_Eta
std::vector< float > * m_vtx_deltaZ0
std::vector< float > * m_c_clusterRawChannelIndex
int getCaloRegionIndex(const CaloCell *cell)
Class describing a TrackParticle.
unsigned long long m_e_eventNumber
std::vector< double > * m_hits_cellEta
std::vector< double > * m_c_clusterEta
std::vector< int > * m_c711_clusterIndex
std::vector< float > * m_el_rhad
std::vector< float > * m_mc_part_pt
std::vector< std::vector< double > > * m_c711_channelOFCb
std::vector< float > * m_c711_channelNoise
std::vector< float > * m_c_channelEffectiveSigma
Gaudi::Property< bool > m_doTruthEventDump
std::vector< int > * m_c711_clusterCellIndex
float theta() const
Returns the parameter, which has range 0 to .
std::vector< unsigned int > * m_c711_rawChannelIdMap
std::vector< float > * m_c_rawChannelPed
std::vector< double > * m_zee_px
std::vector< std::vector< double > > * m_c_channelOFCb
int * m_c711_clusterIndexCounter
std::vector< std::vector< float > > * m_lb_bcidLuminosity
std::vector< double > * m_hits_energyConv
std::vector< double > * m_zee_py
std::vector< int > * m_mc_part_barcode
std::vector< double > * m_c711_cellPhi
std::vector< float > * m_c711_channelPed
Gaudi::Property< float > m_etMinProbe
define the Pid of Probe from the user
Gaudi::Property< bool > m_getLArCalibConstants
std::vector< float > * m_c_channelADC2MEV1
std::vector< double > * m_zee_deltaR
std::vector< int > * m_c_clusterCellIndex