1744 std::cout <<
"analyzing new event " << std::endl;
1749 edm::LogInfo(
"")<<
"\n\n =================> Treating event "<<
iEvent.id()<<
" Number of electrons "<<gsfElectrons.
product()->size();
1754 histNum_->Fill((*gsfElectrons).size());
1757 for (reco::GsfElectronCollection::const_iterator gsfIter=gsfElectrons->begin();
1758 gsfIter!=gsfElectrons->end(); gsfIter++){
1770 double d = gsfIter->vertex().x()*gsfIter->vertex().x()+gsfIter->vertex().y()*gsfIter->vertex().y();
1774 h_ele_Et_all ->
Fill( gsfIter->superCluster()->energy()/cosh(gsfIter->superCluster()->eta()));
1775 float enrj1=gsfIter->superCluster()->energy();
1777 for (reco::GsfElectronCollection::const_iterator gsfIter2=gsfIter+1;
1778 gsfIter2!=gsfElectrons->end(); gsfIter2++){
1780 float mee2 = p12.Dot(p12);
1781 float enrj2=gsfIter2->superCluster()->energy();
1785 if (gsfIter->charge()*gsfIter2->charge()<0.) {
1788 if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB()))
h_ele_mee_os_ebee ->
Fill(
sqrt(mee2));
1790 if ((gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::GOLDEN) ||
1791 (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::BIGBREM) ||
1793 (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::GOLDEN) ||
1794 (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::BIGBREM)
1801 (gsfIter->classification()==GsfElectron::SHOWERING && gsfIter2->classification()==GsfElectron::SHOWERING) ||
1802 (gsfIter->classification()==GsfElectron::SHOWERING && gsfIter2->isGap()) ||
1803 (gsfIter->isGap() && gsfIter2->classification()==GsfElectron::SHOWERING) ||
1804 (gsfIter->isGap() && gsfIter2->isGap()))
1812 int mcNum=0, gamNum=0, eleNum=0;
1813 bool matchingID, matchingMotherID;
1816 for (reco::GenParticleCollection::const_iterator mcIter=genParticles->begin(); mcIter != genParticles->end(); mcIter++ ) {
1828 matchingMotherID=
false;
1830 if ((mother ==
nullptr) || ((mother !=
nullptr) && mother->
pdgId() ==
matchingMotherIDs_[
i]) ) matchingMotherID=
true;
1832 if (matchingMotherID) {
1842 bool okGsfFound =
false;
1843 double gsfOkRatio = 999999.;
1847 for (reco::GsfElectronCollection::const_iterator gsfIter=gsfElectrons->begin();
1848 gsfIter!=gsfElectrons->end(); gsfIter++){
1850 double dphi = gsfIter->
phi()-mcIter->phi();
1852 dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
1855 double mc_charge = mcIter->pdgId() == 11 ? -1. : 1. ;
1858 if ( ( (mcIter->pdgId() == 11) && (gsfIter->charge() > 0.) ) ||
1859 ( (mcIter->pdgId() == -11) && (gsfIter->charge() < 0.) ) )
1861 double tmpGsfRatio = gsfIter->p()/mcIter->p();
1863 gsfOkRatio = tmpGsfRatio;
1864 bestGsfElectron=*gsfIter;
1889 for (reco::GenParticleCollection::const_iterator mcIter=genParticles->begin(); mcIter != genParticles->end(); mcIter++ ) {
1895 if (mcIter->pdgId() == 22 ){ gamNum++; }
1907 matchingMotherID=
false;
1909 if ((mother ==
nullptr) || ((mother !=
nullptr) && mother->
pdgId() ==
matchingMotherIDs_[
i]) ) matchingMotherID=
true;
1911 if (matchingMotherID) {
1930 bool okGsfFound =
false;
1931 double gsfOkRatio = 999999.;
1935 for (reco::GsfElectronCollection::const_iterator gsfIter=gsfElectrons->begin();
1936 gsfIter!=gsfElectrons->end(); gsfIter++){
1938 double dphi = gsfIter->
phi()-mcIter->phi();
1940 dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
1943 if ( ( (mcIter->pdgId() == 11) && (gsfIter->charge() < 0.) ) ||
1944 ( (mcIter->pdgId() == -11) && (gsfIter->charge() > 0.) ) )
1946 double tmpGsfRatio = gsfIter->p()/mcIter->p();
1948 gsfOkRatio = tmpGsfRatio;
1949 bestGsfElectron=*gsfIter;
1982 double d = (bestGsfElectron.
vertex().x()-mcIter->vx())
1983 *(bestGsfElectron.
vertex().x()-mcIter->vx())+
1984 (bestGsfElectron.
vertex().y()-mcIter->vy())
1985 *(bestGsfElectron.
vertex().y()-mcIter->vy());
2022 double R=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y() +sclRef->z()*sclRef->z());
2023 double Rt=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y());
2077 float pfEnergy=0., egEnergy=0.;
2244 if (bestGsfElectron.
isEE()) eleClass+=10;
2260 double fbrem_mean=0.;
2262 fbrem_mean = 1. - bestGsfElectron.
gsfTrack()->outerMomentum().R()/bestGsfElectron.
gsfTrack()->innerMomentum().R();
2263 double fbrem_mode = bestGsfElectron.
fbrem();
TH2F * h_ele_PoPtrueVsPhi
TH2F * h_ele_dPhiEleClVsPt_propOut
TH2F * h_ele_dPhiScVsEta_propVtx
TH2F * h_ele_ambiguousTracksVsPt
TH1F * h_ele_PoPtrue_barrel
TH1F * h_ele_dPhiCl_propOut_eg_endcaps
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
TH1F * h_ele_PtoPttrue_endcaps
TH2F * h_ele_PinMnPoutVsPhi_mode
TH2F * h_ele_dPhiClVsEta_propOut
TH1F * h_ele_PhiMnPhiTrue_endcaps
TH1F * h_ele_PoPtrue_golden_endcaps
TH2F * h_ele_E2mnE1vsMee_egeg_all
TH1F * histSclEoEtrue_barrel_new
TH1F * h_ele_foundHits_endcaps
TH1F * h_ele_dEtaCl_propOut_eg_barrel
TH1F * h_ele_simZ_matched
TH1F * h_ele_EoP_eg_barrel
TH1F * h_ele_PhiMnPhiTrue2
TH1F * histSclEoEtrue_ebeegap_new
TH2F * h_ele_EseedOPVsEta
TH1F * h_ele_dEtaCl_propOut_all
TH2F * h_ele_foundHitsVsPt
double eta() const final
momentum pseudorapidity
TH1F * h_ele_simPhi_matched
float scSigmaEtaEta() const
TH1F * h_ele_EeleOPout_endcaps
TH1F * histSclE2x5max_endcaps_
TH1F * h_ele_EseedOP_eg_endcaps
virtual SuperClusterRef parentSuperCluster() const
TH2F * h_ele_EtaMnEtaTrueVsEta
TH1F * h_ele_EeleOPout_eg_barrel
TH1F * h_ele_EeleOPout_all
TH2F * h_ele_EseedOPVsPhi
float eSuperClusterOverP() const
TH1F * h_ele_ecalRecHitSumEt_dr03
TH1F * h_ele_EseedOP_eg_barrel
TH1F * h_ele_dPhiEleCl_propOut_barrel
TH1F * h_ele_dEtaSc_propVtx_eg_barrel
TH1F * h_ele_simEta_matched_qmisid
float dr04HcalDepth1TowerSumEt() const
TH1F * histSclEoEtrueGolden_barrel
TH2F * h_ele_seed_dphi2VsEta_
TH1F * h_ele_hcalDepth1TowerSumEt_dr04
TH2F * h_ele_dPhiClVsPhi_propOut
TH1F * h_ele_dEtaCl_propOut_barrel
TH2F * h_ele_dEtaClVsPhi_propOut
TH1F * histSclEoEtrue_endcaps
TH2F * h_ele_dPhiEleClVsPhi_propOut
TH1F * h_ele_dEtaCl_propOut_eg_endcaps
TH2F * h_ele_PtinVsPtoutShowering_mode
TH1F * h_ele_dPhiSc_propVtx_barrel
TH1F * h_ele_dEtaCl_propOut
TH1F * h_ele_dEtaSc_propVtx_barrel
math::XYZVectorF trackMomentumAtVtx() const
TH2F * h_ele_ambiguousTracksVsPhi
TH1F * histSclEoEtrue_barrel
TH1F * h_ele_PtoPttrue_barrel
TH2F * h_ele_outerPVsEta_mode
TH1F * h_ele_PoPtrue_showering_barrel
TH1F * histSclEoEtrue_endcaps_ringgap_new
TH1F * h_ele_dPhiCl_propOut_eg_barrel
TH1F * h_ele_EoPout_eg_endcaps
TH1F * h_ele_EseedOP_barrel
edm::InputTag electronCollection_
TH2F * h_ele_seed_dphi2VsPt_
float dr04TkSumPt() const
double pt() const final
transverse momentum
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
int charge() const final
electric charge
TH2F * h_ele_outerPtVsPt_mode
TH1F * h_ele_lostHits_endcaps
TH1F * h_ele_dPhiEleCl_propOut_eg_barrel
TH1F * h_ele_ChargeMnChargeTrue
TH2F * h_ele_EtaMnEtaTrueVsPt
float dr03HcalDepth2TowerSumEt() const
TH1F * h_ele_dEtaEleCl_propOut
TH1F * histSclSigIEtaIEta_
TH2F * h_ele_lostHitsVsPt
TH1F * h_ele_ambiguousTracks
TH2F * h_ele_simPtEta_matched
TH2F * h_ele_PinVsPoutShowering_mode
TH1F * histSclE2x5max_barrel_
TH1F * h_ele_simAbsEta_matched
TH2F * h_ele_dPhiEleClVsEta_propOut
TH1F * h_ele_dEtaSc_propVtx_all
TH1F * h_ele_dPhiSc_propVtx_eg_endcaps
TH2F * h_ele_lostHitsVsPhi
TH2F * h_ele_EeleOPoutVsPhi
TH1F * h_ele_seed_subdet2_
TH1F * histSclE1x5_eg_endcaps_
TH2F * h_ele_dEtaScVsPhi_propVtx
TH1F * histSclEoEtrue_endcaps_ringgap
TH1F * h_ele_EoPout_eg_barrel
TH1F * histSclSigIEtaIEta_eg_
TH1F * h_ele_EseedOP_endcaps
TH2F * h_ele_PhiMnPhiTrueVsPt
TH1F * histSclEoEtrue_barrel_phigap_new
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
TH1F * h_ele_dEtaEleCl_propOut_eg_endcaps
float dr04HcalDepth2TowerSumEt() const
TH2F * h_ele_dEtaClVsPt_propOut
TH1F * histSclE2x5max_eg_endcaps_
float deltaEtaSuperClusterTrackAtVtx() const
TH1F * histSclEoEtrue_barrel_etagap_new
TH2F * h_ele_EtaMnEtaTrueVsPhi
TH1F * h_ele_vertexPt_all
float hadronicOverEm() const
TH1F * h_ele_lostHits_barrel
TH2F * h_ele_vertexTIPVsPt
float eSeedClusterOverP() const
TH1F * histSclEoEtrue_endcaps_eg_new
TH1F * histSclEoEtrue_endcaps_eg
TH1F * h_ele_PoPtrue_golden_barrel
TH2F * h_ele_vertexPtVsPhi
float dr04EcalRecHitSumEt() const
TH1F * histSclSigEtaEta_barrel_
TH1F * h_ele_dEtaEleCl_propOut_endcaps
float deltaPhiSeedClusterTrackAtCalo() const
TH1F * h_ele_outerPt_mode
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
TH2F * h_ele_dEtaEleClVsEta_propOut
TH2F * h_ele_dEtaEleClVsPhi_propOut
virtual int pdgId() const =0
PDG identifier.
TH1F * histSclE5x5_barrel_
TH2F * h_ele_dEtaScVsPt_propVtx
std::vector< int > matchingMotherIDs_
TH1F * histSclEoEtrue_barrel_eg_new
math::XYZVectorF trackMomentumOut() const
float deltaPhiSuperClusterTrackAtVtx() const
TH1F * h_ele_chi2_endcaps
TH1F * h_ele_dPhiSc_propVtx
const Point & vertex() const override
vertex position (overwritten by PF...)
TH2F * h_ele_dEtaEleClVsPt_propOut
TH1F * h_ele_dEtaEleCl_propOut_eg
TH1F * histSclEoEtrue_endcaps_deegap
TH1F * histSclEoEtrue_ebeegap
TH2F * h_ele_lostHitsVsEta
TH2F * h_ele_PhiMnPhiTrueVsEta
TH1F * histSclSigIEtaIEta_eg_endcaps_
TH1F * h_ele_EeleOPout_eg_endcaps
TH2F * h_ele_seed_drz2VsPt_
TH1F * h_ele_dPhiEleCl_propOut_endcaps
float dr03TkSumPt() const
TH1F * histSclEoEtrue_barrel_phigap
Abs< T >::type abs(const T &t)
TH2F * h_ele_outerPtVsEta_mode
float dr03HcalDepth1TowerSumEt() const
TH1F * histSclEoEtrueGolden_endcaps
float eEleClusterOverPout() const
TH1F * h_ele_HoE_eg_endcaps
TH2F * h_ele_PoPtrueVsEta
TH1F * h_ele_EtaMnEtaTrue_endcaps
float eSeedClusterOverPout() const
TH1F * h_ele_HoE_eg_barrel
TH1F * histSclSigIEtaIEta_barrel_
TH1F * h_ele_dEtaSc_propVtx_eg
TH2F * h_ele_PtinVsPtoutShowering_mean
TH1F * h_ele_dEtaSc_propVtx_eg_endcaps
TH1F * h_ele_dEtaCl_propOut_endcaps
float scSigmaIEtaIEta() const
TH1F * histSclE2x5max_eg_barrel_
bool isNull() const
Checks for null.
TH1F * h_ele_EeleOPout_barrel
float deltaPhiEleClusterTrackAtCalo() const
TH1F * histSclEoEtrue_barrel_eg
TH2F * h_ele_EeleOPoutVsE
TH1F * h_ele_hcalDepth2TowerSumEt_dr03
TH1F * h_ele_ecalRecHitSumEt_dr04
TH2F * h_ele_ambiguousTracksVsEta
TH1F * h_ele_simEta_matched
TH1F * h_ele_HoE_fiducial
TH1F * h_ele_dPhiCl_propOut_endcaps
TH1F * histSclE5x5_endcaps_
TH1F * histSclE2x5max_eg_
TH1F * h_ele_hcalDepth2TowerSumEt_dr04
TH1F * h_ele_dPhiEleCl_propOut
TH1F * h_ele_dPhiEleCl_propOut_eg_endcaps
TH1F * h_ele_PhiMnPhiTrue_barrel
TH2F * h_ele_PhiMnPhiTrueVsPhi
TH1F * h_ele_EtaMnEtaTrue
double p() const final
magnitude of momentum vector
TH2F * h_ele_PinVsPoutShowering_mean
TH1F * h_ele_tkSumPt_dr04
TH1F * histSclEoEtrueShowering_barrel
TH2F * histSclEoEtruePfVsEg
TH1F * h_ele_foundHits_barrel
TH2F * h_ele_PtinVsPtoutGolden_mode
TH1F * h_ele_dPhiCl_propOut_eg
TH2F * h_ele_foundHitsVsPhi
TH1F * h_ele_dEtaSc_propVtx
TH1F * h_ele_dEtaEleCl_propOut_barrel
TH2F * h_ele_EeleOPoutVsEta
TH1F * h_ele_EoP_eg_endcaps
TH1F * h_ele_EeleOPout_eg
TH1F * h_ele_dPhiSc_propVtx_eg_barrel
T const * product() const
float deltaEtaEleClusterTrackAtCalo() const
TH1F * h_ele_dPhiCl_propOut_all
TH2F * h_ele_PinMnPoutVsEta_mode
TH1F * histSclSigIEtaIEta_endcaps_
Classification classification() const
TH1F * h_ele_PoPtrue_showering_endcaps
TH1F * h_ele_PinMnPout_mode
GsfTrackRefVector::size_type ambiguousGsfTracksSize() const
TH2F * h_ele_PinMnPoutVsPt_mode
TH1F * h_ele_simPhi_matched_qmisid
double py() const final
y coordinate of momentum vector
TH1F * h_ele_vertexEta_all
TH2F * h_ele_vertexTIPVsPhi
TH1F * h_ele_dPhiSc_propVtx_endcaps
TH2F * h_ele_PinVsPoutGolden_mode
TH1F * histSclE1x5_eg_barrel_
TH1F * histSclE1x5_barrel_
TH1F * histSclE1x5_endcaps_
float dr03EcalRecHitSumEt() const
TH2F * h_ele_foundHitsVsEta
TH1F * h_ele_simAbsEta_matched_qmisid
TH2F * h_ele_vertexPtVsEta
float deltaEtaSeedClusterTrackAtCalo() const
TH1F * h_ele_EoPout_endcaps
TH1F * histSclEoEtrue_barrel_etagap
TH1F * h_ele_PhiMnPhiTrue
TH1F * h_ele_dPhiCl_propOut_barrel
TH1F * h_ele_simZ_matched_qmisid
TH2F * h_ele_PinMnPoutVsChi2_mode
TH2F * h_ele_dEtaScVsEta_propVtx
TH2F * h_ele_vertexTIPVsEta
TProfile * h_ele_fbremVsEta_mode
edm::InputTag mcTruthCollection_
TH1F * h_ele_dPhiEleCl_propOut_eg
TH1F * histSclE5x5_eg_barrel_
TH1F * histSclE5x5_eg_endcaps_
SuperClusterRef superCluster() const override
reference to a SuperCluster
bool trackerDrivenSeed() const
TH1F * h_ele_PoPtrue_endcaps
TH1F * h_ele_hcalDepth1TowerSumEt_dr03
TH2F * h_ele_dPhiClVsPt_propOut
TH1F * h_ele_dEtaCl_propOut_eg
std::vector< int > matchingIDs_
TH1F * h_ele_dEtaEleCl_propOut_eg_barrel
TProfile * h_ele_fbremVsEta_mean
TH1F * h_ele_simPt_matched_qmisid
TH1F * h_ele_dPhiSc_propVtx_all
TH1F * h_ele_EoPout_barrel
TH1F * histSclSigEtaEta_endcaps_
TH1F * h_ele_dPhiCl_propOut
TH1F * h_ele_EtaMnEtaTrue_barrel
TH1F * histSclEoEtrue_endcaps_deegap_new
TH1F * h_ele_dEtaSc_propVtx_endcaps
double phi() const final
momentum azimuthal angle
TH2F * h_ele_dPhiScVsPt_propVtx
TH1F * h_ele_tkSumPt_dr03
TH2F * h_ele_outerPtVsPhi_mode
TH1F * h_ele_dPhiSc_propVtx_eg
TH1F * histSclEoEtrue_endcaps_new
TH2F * h_ele_PinVsPoutGolden_mean
TH2F * h_ele_PtinVsPtoutGolden_mean
TH2F * h_ele_seed_drz2VsEta_
Power< A, B >::type pow(const A &a, const B &b)
TH2F * h_ele_dEtaClVsEta_propOut
TH2F * h_ele_E2mnE1vsMee_all
TH1F * h_ele_simPt_matched
TH1F * histSclEoEtrueShowering_endcaps
TH2F * h_ele_vertexEtaVsPhi
bool ecalDrivenSeed() const
TH1F * histSclSigIEtaIEta_eg_barrel_
TH2F * h_ele_PinMnPoutVsE_mode
TH2F * h_ele_dPhiScVsPhi_propVtx