33 double CElecPtMin = ps.
getParameter<
double>(
"CElecPtMin");
34 double CEB_siEiE = ps.
getParameter<
double>(
"CEB_sigmaIEtaIEta");
35 double CEB_dPhiIn = ps.
getParameter<
double>(
"CEB_deltaPhiIn");
36 double CEB_dEtaIn = ps.
getParameter<
double>(
"CEB_deltaEtaIn");
37 double CEB_EcalIso = ps.
getParameter<
double>(
"CEB_EcalIso");
38 double CEB_HcalIso = ps.
getParameter<
double>(
"CEB_HcalIso");
39 double CEB_TrckIso = ps.
getParameter<
double>(
"CEB_TrckIso");
40 double CEE_siEiE = ps.
getParameter<
double>(
"CEE_sigmaIEtaIEta");
41 double CEE_dPhiIn = ps.
getParameter<
double>(
"CEE_deltaPhiIn");
42 double CEE_dEtaIn = ps.
getParameter<
double>(
"CEE_deltaEtaIn");
43 double CEE_EcalIso = ps.
getParameter<
double>(
"CEE_EcalIso");
44 double CEE_HcalIso = ps.
getParameter<
double>(
"CEE_HcalIso");
45 double CEE_TrckIso = ps.
getParameter<
double>(
"CEE_TrckIso");
77 t_ = fs->
make<TTree>(
"ErsatzMEt",
"Data on ErsatzMEt");
81 t_->Branch(
"nTags", &
nTags_,
"nTags/I");
106 t_->Branch(
"CaloMEt", &
CaloMEt_,
"CaloMEt/D");
108 t_->Branch(
"T1MEt", &
T1MEt_,
"T1MEt/D");
110 t_->Branch(
"PfMEt", &
PfMEt_,
"PfMEt/D");
112 t_->Branch(
"TcMEt", &
TcMEt_,
"TcMEt/D");
116 t_->Branch(
"tag_q",
tag_q_,
"tag_q[4]/I");
117 t_->Branch(
"tag_pt",
tag_pt_,
"tag_pt[4]/D");
118 t_->Branch(
"tag_eta",
tag_eta_,
"tag_eta[4]/D");
119 t_->Branch(
"tag_phi",
tag_phi_,
"tag_phi[4]/D");
129 t_->Branch(
"tag_hoe",
tag_hoe_,
"tag_hoe[4]/D");
130 t_->Branch(
"tag_eop",
tag_eop_,
"tag_eop[4]/D");
131 t_->Branch(
"tag_pin",
tag_pin_,
"tag_pin[4]/D");
138 t_->Branch(
"probe_q",
probe_q_,
"probe_q[4]/I");
159 t_->Branch(
"Z_m",
Z_m_,
"Z_m[4]/D");
160 t_->Branch(
"Z_pt",
Z_pt_,
"Z_pt[4]/D");
161 t_->Branch(
"Z_eta",
Z_eta_,
"Z_eta[4]/D");
162 t_->Branch(
"Z_y",
Z_y_,
"Z_y[4]/D");
163 t_->Branch(
"Z_phi",
Z_phi_,
"Z_phi[4]/D");
164 t_->Branch(
"Z_rescM",
Z_rescM_,
"Z_rescM[4]/D");
165 t_->Branch(
"Z_rescPt",
Z_rescPt_,
"Z_rescPt[4]/D");
167 t_->Branch(
"Z_rescY",
Z_rescY_,
"Z_rescY[4]/D");
188 t_->Branch(
"McZ_m", &
McZ_m_,
"McZ_m/D");
190 t_->Branch(
"McZ_Pt", &
McZ_pt_,
"McZ_Pt/D");
191 t_->Branch(
"McZ_y", &
McZ_y_,
"McZ_y/D");
192 t_->Branch(
"McZ_Eta", &
McZ_eta_,
"McZ_Eta/D");
193 t_->Branch(
"McZ_Phi", &
McZ_phi_,
"McZ_Phi/D");
285 edm::LogDebug_(
"",
"",180)<<
"Initialisation of array index "<<
i <<
" completed.";
377 std::vector<math::XYZTLorentzVector>McElecs,McElecsFinalState;
378 std::vector<math::XYZTLorentzVector> McElecsResc;
384 for(reco::GenParticleCollection::const_iterator McP = McCand->begin(); McP != McCand->end(); ++McP)
387 if(
abs(McP->pdgId())==11 &&
abs(mum->
pdgId()) == 23)
389 McElecs.push_back(McP->p4());
390 if(
abs(mum->
pdgId() == 23)) Zboson = mum->
p4();
392 std::cout <<
"Found electron, ID = "<< McP->pdgId() <<
"\t status = "<< McP->status()<<std::endl;
393 if(McP->status() != 1)
397 while(McPD->
status() != 1)
401 <<
"\tNumber of Daughters = "<< n <<std::endl;
402 for(
int j = 0;
j <
n; ++
j)
414 McElecsFinalState.push_back(McPD->
p4());
415 }
else McElecsFinalState.push_back(McP->p4());
424 McElecsResc.resize(2);
429 ROOT::Math::Boost CoMBoost(Zboson.BoostToCM());
436 double E_W = RescZboson.E();
437 ROOT::Math::Boost BackToLab(RescZboson.Px()/E_W, RescZboson.Py()/E_W, RescZboson.Pz()/E_W);
439 RescMcElec0 = BackToLab(RescMcElec0);
444 RescMcElec1 = BackToLab(RescMcElec1);
448 McElecsResc[0] = RescMcElec0;
449 McElecsResc[1] = RescMcElec1;
451 edm::LogDebug_(
"",
"", 307)<<
"McElecsResc[0] + McElecsResc[1] = ("<<sum.Px()<<
", "<<sum.Py()<<
", "
452 <<sum.Pz()<<
", "<<sum.E()<<
")";
459 for(
unsigned int itrig = 0; itrig < HltRes->
size(); ++itrig)
462 edm::LogInfo(
"")<< itrig <<
" : Name = "<< nom <<
"\t Accepted = "<< HltRes->
accept(itrig);
466 if(HltRes->
accept(34) !=0)
468 std::vector<reco::GsfElectronRef> UniqueElectrons;
470 edm::LogDebug_(
"",
"ErsatzMEt",192)<<
"Unique electron size = "<<UniqueElectrons.size();
471 std::vector<reco::GsfElectronRef> SelectedElectrons;
472 const unsigned int fId = pHLT->filterIndex(
TriggerPath_);
473 std::cout <<
"Filter Id = " << fId << std::endl;
475 nTags_ = SelectedElectrons.size();
483 for(std::vector<reco::GsfElectronRef>::const_iterator elec = SelectedElectrons.begin();
484 elec != SelectedElectrons.end(); ++elec)
486 for(
int m = 0;
m < 2; ++
m)
488 double dRLimit = 99.;
502 std::map<reco::GsfElectronRef, reco::GsfElectronRef>
TagProbePairs;
503 TagProbePairs =
probeFinder(SelectedElectrons, pElectrons);
505 edm::LogDebug_(
"",
"ErsatzMEt", 209)<<
"Number of tag-probe pairs = "<< TagProbePairs.size();
507 if(!TagProbePairs.empty())
510 const reco::MET calomet = *(caloMEtCollection->begin());
520 const reco::MET pfmet = *(pfMEtCollection->begin());
525 const reco::MET tcmet = *(tcMEtCollection->begin());
531 for(std::map<reco::GsfElectronRef, reco::GsfElectronRef>::const_iterator it = TagProbePairs.begin();
532 it != TagProbePairs.end(); ++it)
545 + it->first->isolationVariables04().hcalDepth2TowerSumEt;
574 + it->second->isolationVariables04().hcalDepth2TowerSumEt;
594 double dRLimit = 0.2;
595 for(
unsigned int mcEId = 0; mcEId < McElecs.size(); ++mcEId)
598 double dR =
reco::deltaR(McElecs[mcEId], it->second->p4());
691 std::map<reco::GsfElectronRef, reco::GsfElectronRef> TagProbes;
692 for(std::vector<reco::GsfElectronRef>::const_iterator tagelec = tags.begin(); tagelec != tags.end(); ++tagelec)
695 std::pair<reco::GsfElectronRef, reco::GsfElectronRef> TagProbePair;
696 int nProbesPerTag = 0;
698 for(reco::GsfElectronCollection::const_iterator probeelec = probeCands->begin(); probeelec != probeCands->end(); ++probeelec)
701 double probeScEta = probe->superCluster()->eta();
702 if(probe->superCluster() != tag->superCluster() && fabs(probeScEta) < 2.5)
704 if(fabs(probeScEta) < 1.4442 || fabs(probeScEta) > 1.560)
709 TagProbePair = std::make_pair(tag, probe);
717 if(nProbesPerTag == 1) TagProbes.insert(TagProbePair);
727 const math::XYZPoint ZVertex(elec->TrackPositionAtVtx().X(), elec->TrackPositionAtVtx().Y(),elec->TrackPositionAtVtx().Z());
737 edm::LogDebug_(
"ersatzFabrikV1",
"", 569)<<
"elec = ("<< elec->p4().Px() <<
", "<< elec->p4().Py()<<
", "<< elec->p4().Pz() <<
", "<< elec->p4().E()<<
")";
739 edm::LogDebug_(
"ersatzFabrikV1",
"", 569)<<
"Z pt = "<< Zboson.Pt() <<
"Z boson mass = " << Zboson.M();
740 edm::LogDebug_(
"ersatzFabrikV1",
"", 570)<<
"Z boson in lab frame = ("<<Zboson.Px()<<
", "<<Zboson.Py()<<
", "
741 <<Zboson.Pz()<<
", "<<Zboson.E()<<
")";
743 edm::LogDebug_(
"ersatzFabrikV1",
"", 573)<<
"W boson in lab frame = ("<<RescZboson.Px()<<
", "<<RescZboson.Py()<<
", "
744 <<RescZboson.Pz()<<
", "<<RescZboson.E()<<
")";
745 ROOT::Math::Boost BoostToZRestFrame(Zboson.BoostToCM());
746 edm::LogDebug_(
"ersatzFabrikV1",
"", 576)<<
"Electron in lab frame = ("<< boost_ele.Px()<<
", "<< boost_ele.Py()<<
", "
747 << boost_ele.Pz()<<
", "<< boost_ele.E()<<
")";
748 edm::LogDebug_(
"ersatzFabrikV1",
"", 578)<<
"Ersatz Neutrino in lab frame = ("<< boost_nu.Px()<<
", "<< boost_nu.Py()<<
", "
749 << boost_nu.Pz()<<
", "<< boost_nu.E()<<
")";
750 boost_ele = BoostToZRestFrame(boost_ele);
751 boost_nu = BoostToZRestFrame(boost_nu);
752 edm::LogDebug_(
"ersatzFabrikV1",
"", 582)<<
"Electron in Z rest frame = ("<<boost_ele.Px()<<
", "<<boost_ele.Py()<<
", "
753 <<boost_ele.Pz()<<
", "<<boost_ele.E()<<
")";
754 edm::LogDebug_(
"ersatzFabrikV1",
"", 584)<<
"Ersatz Neutrino in Z rest frame = ("<<boost_nu.Px()<<
", "<<boost_nu.Py()<<
", "
755 <<boost_nu.Pz()<<
", "<<boost_nu.E()<<
")";
759 double E_W = RescZboson.E();
760 ROOT::Math::Boost BackToLab(RescZboson.Px()/E_W, RescZboson.Py()/E_W, RescZboson.Pz()/E_W);
762 boost_ele = BackToLab(boost_ele);
764 boost_nu = BackToLab(boost_nu);
766 edm::LogDebug_(
"ersatzFabrikV1",
"", 597)<<
"Electron back in lab frame = ("<<boost_ele.Px()<<
", "<<boost_ele.Py()<<
", "
767 <<boost_ele.Pz()<<
", "<<boost_ele.E()<<
")";
768 edm::LogDebug_(
"ersatzFabrikV1",
"", 599)<<
"Ersatz Neutrino back in lab frame = ("<<boost_nu.Px()<<
", "<<boost_nu.Py()<<
", "
769 <<boost_nu.Pz()<<
", "<<boost_nu.E()<<
")";
770 edm::LogDebug_(
"ersatzFabrikV1",
"", 601)<<
"boost_ele + boost_nu = ("<<sum.Px()<<
", "<<sum.Py()<<
", "
771 <<sum.Pz()<<
", "<<sum.E()<<
")";
773 nu.SetXYZT(nu.X(), nu.Y(), 0., nu.T());
774 ele.SetXYZT(ele.X(), ele.Y(), 0., ele.T());
775 boost_ele.SetXYZT(boost_ele.X(), boost_ele.Y(), 0., boost_ele.T());
776 metVec = met.
p4() + nu + ele - boost_ele;
883 boost_elec = tag->p4();
884 edm::LogDebug_(
"ersatzFabrikV1",
"", 858)<<
"boost_elec = ("<< boost_elec.Px() <<
", "<< boost_elec.Py()<<
", "<< boost_elec.Pz() <<
", "<< boost_elec.E()<<
")";
885 boost_nu = probe->p4();
886 edm::LogDebug_(
"ersatzFabrikV1",
"", 860)<<
"boost_nu = ("<< boost_nu.Px() <<
", "<< boost_nu.Py()<<
", "<< boost_nu.Pz() <<
", "<< boost_nu.E()<<
")";
888 edm::LogDebug_(
"ersatzFabrikV1",
"", 862)<<
"Zboson = ("<< Zboson.Px() <<
", "<< Zboson.Py()<<
", "<< Zboson.Pz() <<
", "<< Zboson.E()<<
")";
890 edm::LogDebug_(
"ersatzFabrikV1",
"", 864)<<
"RescZboson = ("<< RescZboson.Px() <<
", "<< RescZboson.Py()<<
", "<< RescZboson.Pz() <<
", "<< RescZboson.E()<<
")";
891 ROOT::Math::Boost BoostToZRestFrame(Zboson.BoostToCM());
892 elec = BoostToZRestFrame(boost_elec);
893 edm::LogDebug_(
"ersatzFabrikV1",
"", 867)<<
"boost_elec (in Z rest frame) = ("<< elec.Px() <<
", "<< elec.Py()<<
", "<< elec.Pz() <<
", "<< elec.E()<<
")";
894 nu = BoostToZRestFrame(boost_nu);
895 edm::LogDebug_(
"ersatzFabrikV1",
"", 869)<<
"boost_nu (in Z rest frame) = ("<< nu.Px() <<
", "<< nu.Py()<<
", "<< nu.Pz() <<
", "<< nu.E()<<
")";
897 edm::LogDebug_(
"ersatzFabrikV1",
"", 871)<<
"elec (in Z rest frame) = ("<< elec.Px() <<
", "<< elec.Py()<<
", "<< elec.Pz() <<
", "<< elec.E()<<
")";
899 edm::LogDebug_(
"ersatzFabrikV1",
"", 873)<<
"nu (in Z rest frame) = ("<< nu.Px() <<
", "<< nu.Py()<<
", "<< nu.Pz() <<
", "<< nu.E()<<
")";
900 ROOT::Math::Boost BoostBackToLab(RescZboson.Px()/RescZboson.E(), RescZboson.Py()/RescZboson.E(), RescZboson.Pz()/RescZboson.E());
902 elec = BoostBackToLab(elec);
903 edm::LogDebug_(
"ersatzFabrikV1",
"", 877)<<
"elec = ("<< elec.Px() <<
", "<< elec.Py()<<
", "<< elec.Pz() <<
", "<< elec.E()<<
")";
904 nu = BoostBackToLab(nu);
905 edm::LogDebug_(
"ersatzFabrikV1",
"", 879)<<
"nu = ("<< nu.Px() <<
", "<< nu.Py()<<
", "<< nu.Pz() <<
", "<< nu.E()<<
")";
923 elec.SetXYZT(elec.X(), elec.Y(), 0., elec.T());
924 nu.SetXYZT(nu.X(), nu.Y(), 0., nu.T());
925 boost_elec.SetXYZT(boost_elec.X(), boost_elec.Y(), 0., boost_elec.T());
926 metVec = met.
p4() + nu + elec - boost_elec;
double tag_ecalIso_[nEntries_arr_]
double McProbe_eta_[nEntries_arr_]
double probe_sIhIh_[nEntries_arr_]
double McProbe_rescEta_[nEntries_arr_]
double McElec_rescEta_[nEntries_arr_]
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
double tag_rescEta_[nEntries_arr_]
std::vector< double > CutVector_
T getParameter(std::string const &) const
double tag_dPhiIn_[nEntries_arr_]
double ErsatzV3CaloMt_[nEntries_arr_]
ErsatzMEt(const edm::ParameterSet &)
double probe_trckIso_[nEntries_arr_]
double probe_sc_nClus_[nEntries_arr_]
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
double ErsatzV1TcMt_[nEntries_arr_]
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
edm::InputTag TriggerEvent_
std::vector< reco::GsfElectronRef > uniqueElectronFinder(edm::Handle< reco::GsfElectronCollection > &pElectrons)
double probe_ecalIso_[nEntries_arr_]
double McElec_rescPhi_[nEntries_arr_]
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
double probe_eta_[nEntries_arr_]
std::vector< TagProbePair > TagProbePairs
edm::ParameterSet hyb_fCorrPSet_
double ErsatzV2CaloMEt_[nEntries_arr_]
double ErsatzV1CaloMt_[nEntries_arr_]
double ErsatzV4CaloMEtPhi_[nEntries_arr_]
double ErsatzV4CaloMt_[nEntries_arr_]
virtual const Point & vertex() const
vertex position
edm::InputTag TriggerResults_
#define DEFINE_FWK_MODULE(type)
double probe_sc_eta_[nEntries_arr_]
edm::InputTag M5x5ScCollection_
virtual int status() const =0
status word
double McElec_pt_[nEntries_arr_]
double probe_hoe_[nEntries_arr_]
bool accept() const
Has at least one path accepted the event?
double probe_hcalIso_[nEntries_arr_]
edm::InputTag TriggerPath_
double ErsatzV4_Mesc_[nEntries_arr_]
double tag_e2x5Max_[nEntries_arr_]
double McProbe_pt_[nEntries_arr_]
math::XYZTLorentzVector DetectorVector(const reco::SuperClusterRef &sc)
reco::SuperCluster fEtaScCorr(const reco::SuperCluster &sc)
double probe_pt_[nEntries_arr_]
double McElecProbe_dR_[nEntries_arr_]
double Z_pt_[nEntries_arr_]
double ErsatzV1T1MEtPhi_[nEntries_arr_]
double Z_m_[nEntries_arr_]
edm::InputTag GenMEtCollection_
double tag_hcalIso_[nEntries_arr_]
double ErsatzV1_rescMesc_[nEntries_arr_]
edm::InputTag MCTruthCollection_
double probe_eop_[nEntries_arr_]
double Z_rescM_[nEntries_arr_]
std::vector< reco::MET > METCollection
collection of MET objects
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
double probe_e2x5Max_[nEntries_arr_]
double tag_trckIso_[nEntries_arr_]
double ErsatzV2_rescMesc_[nEntries_arr_]
double ErsatzV1_Mesc_[nEntries_arr_]
double probe_pin_[nEntries_arr_]
double eta() const
pseudorapidity of cluster centroid
VDouble InvariantMass(Tau)
double deltaR(double eta1, double phi1, double eta2, double phi2)
double probe_sc_pt_[nEntries_arr_]
double Z_rescY_[nEntries_arr_]
double ErsatzV1T1Mt_[nEntries_arr_]
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
double tag_hoe_[nEntries_arr_]
double McElec_rescPt_[nEntries_arr_]
edm::InputTag CaloMEtCollection_
double Z_y_[nEntries_arr_]
virtual size_type numberOfDaughters() const =0
number of daughters
double probe_scV3_E_[nEntries_arr_]
double probe_e5x5_[nEntries_arr_]
edm::ParameterSet m5x5_fCorrPSet_
int tag_q_[nEntries_arr_]
double probe_sc_rawE_[nEntries_arr_]
double ErsatzV3CaloMEt_[nEntries_arr_]
double ErsatzV1PfMt_[nEntries_arr_]
double Z_rescEta_[nEntries_arr_]
unsigned int size() const
Get number of paths stored.
double ErsatzV3CaloMEtPhi_[nEntries_arr_]
reco::SuperCluster fBremScCorr(const reco::SuperCluster &sc, const edm::ParameterSet &ps)
double McElec_phi_[nEntries_arr_]
Cos< T >::type cos(const T &t)
double probe_e1x5Max_[nEntries_arr_]
double ErsatzV3_rescMesc_[nEntries_arr_]
double Z_phi_[nEntries_arr_]
double probe_rescPt_[nEntries_arr_]
double energy() const
cluster energy
edm::InputTag HybridScCollection_
double ErsatzV1T1MEt_[nEntries_arr_]
double McProbe_rescPt_[nEntries_arr_]
double probe_d_MCE_SCE_[nEntries_arr_]
double ErsatzV1CaloMEtPhi_[nEntries_arr_]
double McElec_eta_[nEntries_arr_]
double probe_dPhiIn_[nEntries_arr_]
double ErsatzV2_Mesc_[nEntries_arr_]
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::InputTag PfMEtCollection_
math::XYZTLorentzVector PhysicsVectorRaw(const math::XYZPoint &vertex, const reco::SuperCluster &sc)
double probe_phi_[nEntries_arr_]
double probe_scV2_E_[nEntries_arr_]
double probe_rescPhi_[nEntries_arr_]
double tag_rescPhi_[nEntries_arr_]
edm::ESHandle< CaloGeometry > geoHandle_
virtual int pdgId() const =0
PDG identifier.
double tag_dEtaIn_[nEntries_arr_]
double ErsatzV1CaloMEt_[nEntries_arr_]
double deltaPhi(double phi1, double phi2)
double rawEnergy() const
raw uncorrected energy (sum of energies of component BasicClusters)
bool isInFiducial(double)
double ErsatzV3_Mesc_[nEntries_arr_]
std::vector< reco::CaloMET > CaloMETCollection
collection of CaloMET objects
double ErsatzV1PfMEtPhi_[nEntries_arr_]
double tag_phi_[nEntries_arr_]
double tag_sIhIh_[nEntries_arr_]
std::vector< reco::GsfElectronRef > electronSelector(const std::vector< reco::GsfElectronRef > &electrons, const edm::Handle< trigger::TriggerEvent > &pHLT, const int filterId, const std::vector< double > &Cuts)
double probe_dEtaIn_[nEntries_arr_]
virtual double pt() const
transverse momentum
std::string const & triggerName(unsigned int index) const
double tag_rescPt_[nEntries_arr_]
double tag_pt_[nEntries_arr_]
XYZPointD XYZPoint
point in space with cartesian internal representation
size_t clustersSize() const
number of BasicCluster constituents
double Z_eta_[nEntries_arr_]
double McProbe_rescPhi_[nEntries_arr_]
double ErsatzV1TcMEt_[nEntries_arr_]
double probe_sc_E_[nEntries_arr_]
T const * product() const
edm::InputTag TcMEtCollection_
double ErsatzV4_rescMesc_[nEntries_arr_]
double ErsatzV1PfMEt_[nEntries_arr_]
int probe_q_[nEntries_arr_]
double tag_pin_[nEntries_arr_]
std::vector< reco::PFMET > PFMETCollection
collection of PFMET objects
double Z_rescPhi_[nEntries_arr_]
T * make() const
make new ROOT object
double ErsatzV1TcMEtPhi_[nEntries_arr_]
double ErsatzV2CaloMt_[nEntries_arr_]
reco::MET ersatzFabrik(const reco::GsfElectronRef &, const reco::SuperCluster &, const reco::MET &, const int)
double probe_sc_phi_[nEntries_arr_]
double McElecProbe_dEta_[nEntries_arr_]
double tag_e5x5_[nEntries_arr_]
double probe_pout_[nEntries_arr_]
edm::InputTag ElectronCollection_
double ErsatzV4CaloMEt_[nEntries_arr_]
double tag_eop_[nEntries_arr_]
virtual void analyze(const edm::Event &, const edm::EventSetup &)
double phi() const
azimuthal angle of cluster centroid
std::map< reco::GsfElectronRef, reco::GsfElectronRef > probeFinder(const std::vector< reco::GsfElectronRef > &, const edm::Handle< reco::GsfElectronCollection >)
double Z_rescPt_[nEntries_arr_]
double tag_eta_[nEntries_arr_]
double Z_probe_dPhi_[nEntries_arr_]
virtual double phi() const
momentum azimuthal angle
virtual const LorentzVector & p4() const
four-momentum Lorentz vector
double McProbe_phi_[nEntries_arr_]
double probe_rescEta_[nEntries_arr_]
edm::ESHandle< CaloTopology > pTopology_
double ErsatzV2CaloMEtPhi_[nEntries_arr_]
double McElecProbe_dPhi_[nEntries_arr_]
double probe_scV4_E_[nEntries_arr_]
double tag_pout_[nEntries_arr_]
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
double tag_e1x5Max_[nEntries_arr_]