CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
ErsatzMEt Class Reference

#include <ElectroWeakAnalysis/ErsatzMEt/src/ErsatzMEt.cc>

Inheritance diagram for ErsatzMEt:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 ErsatzMEt (const edm::ParameterSet &)
 
 ~ErsatzMEt () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

enum  cut_index_t {
  EtCut_, EB_sIhIh_, EB_dEtaIn_, EB_dPhiIn_,
  EB_TrckIso_, EB_EcalIso_, EB_HcalIso_, EE_sIhIh_,
  EE_dEtaIn_, EE_dPhiIn_, EE_TrckIso_, EE_EcalIso_,
  EE_HcalIso_
}
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void endJob () override
 
reco::MET ersatzFabrik (const reco::GsfElectronRef &, const reco::SuperCluster &, const reco::MET &, const int)
 
reco::MET ersatzFabrik (const reco::GsfElectronRef &, const reco::GsfElectronRef &, const reco::MET &)
 
bool isInBarrel (double)
 
bool isInEndCap (double)
 
bool isInFiducial (double)
 
std::map< reco::GsfElectronRef, reco::GsfElectronRefprobeFinder (const std::vector< reco::GsfElectronRef > &, const edm::Handle< reco::GsfElectronCollection >)
 

Private Attributes

double BarrelEtaMax_
 
double CaloMEt_
 
edm::EDGetTokenT< reco::CaloMETCollectionCaloMEtCollection_
 
double CaloMEtphi_
 
std::vector< double > CutVector_
 
edm::EDGetTokenT< reco::GsfElectronCollectionElectronCollection_
 
double EndCapEtaMax_
 
double EndCapEtaMin_
 
double ErsatzV1_Mesc_ [4]
 
double ErsatzV1_rescMesc_ [4]
 
double ErsatzV1CaloMEt_ [4]
 
double ErsatzV1CaloMEtPhi_ [4]
 
double ErsatzV1CaloMt_ [4]
 
double ErsatzV1PfMEt_ [4]
 
double ErsatzV1PfMEtPhi_ [4]
 
double ErsatzV1PfMt_ [4]
 
double ErsatzV1T1MEt_ [4]
 
double ErsatzV1T1MEtPhi_ [4]
 
double ErsatzV1T1Mt_ [4]
 
double ErsatzV1TcMEt_ [4]
 
double ErsatzV1TcMEtPhi_ [4]
 
double ErsatzV1TcMt_ [4]
 
double ErsatzV2_Mesc_ [4]
 
double ErsatzV2_rescMesc_ [4]
 
double ErsatzV2CaloMEt_ [4]
 
double ErsatzV2CaloMEtPhi_ [4]
 
double ErsatzV2CaloMt_ [4]
 
double ErsatzV3_Mesc_ [4]
 
double ErsatzV3_rescMesc_ [4]
 
double ErsatzV3CaloMEt_ [4]
 
double ErsatzV3CaloMEtPhi_ [4]
 
double ErsatzV3CaloMt_ [4]
 
double ErsatzV4_Mesc_ [4]
 
double ErsatzV4_rescMesc_ [4]
 
double ErsatzV4CaloMEt_ [4]
 
double ErsatzV4CaloMEtPhi_ [4]
 
double ErsatzV4CaloMt_ [4]
 
int etaWidth_
 
edm::EDGetTokenT< reco::GenMETCollectionGenMEtCollection_
 
edm::ESHandle< CaloGeometrygeoHandle_
 
HLTConfigProvider hltConfig_
 
bool HLTPathCheck_
 
edm::ParameterSet hyb_fCorrPSet_
 
edm::EDGetTokenT< reco::SuperClusterCollectionHybridScCollection_
 
int iComb_
 
edm::ParameterSet m5x5_fCorrPSet_
 
edm::EDGetTokenT< reco::SuperClusterCollectionM5x5ScCollection_
 
double McElec_eta_ [4]
 
int McElec_nFinal_
 
int McElec_nZmum_
 
double McElec_phi_ [4]
 
double McElec_pt_ [4]
 
double McElec_rescEta_ [4]
 
double McElec_rescPhi_ [4]
 
double McElec_rescPt_ [4]
 
double McElecProbe_dEta_ [4]
 
double McElecProbe_dPhi_ [4]
 
double McElecProbe_dR_ [4]
 
double McProbe_eta_ [4]
 
double McProbe_phi_ [4]
 
double McProbe_pt_ [4]
 
double McProbe_rescEta_ [4]
 
double McProbe_rescPhi_ [4]
 
double McProbe_rescPt_ [4]
 
edm::EDGetTokenT< reco::GenParticleCollectionMCTruthCollection_
 
double McZ_eta_
 
double McZ_m_
 
double McZ_phi_
 
double McZ_pt_
 
double McZ_rescEta_
 
double McZ_rescM_
 
double McZ_rescPhi_
 
double McZ_rescPt_
 
double McZ_rescY_
 
double McZ_y_
 
double mTPmax_
 
double mTPmin_
 
double mW_
 
double mZ_
 
int nProbes_
 
int nTags_
 
double PfMEt_
 
edm::EDGetTokenT< reco::PFMETCollectionPfMEtCollection_
 
double PfMEtphi_
 
int phiWidth_
 
double probe_d_MCE_SCE_ [4]
 
double probe_dEtaIn_ [4]
 
double probe_dPhiIn_ [4]
 
double probe_e1x5Max_ [4]
 
double probe_e2x5Max_ [4]
 
double probe_e5x5_ [4]
 
double probe_ecalIso_ [4]
 
double probe_eop_ [4]
 
double probe_eta_ [4]
 
double probe_hcalIso_ [4]
 
double probe_hoe_ [4]
 
int probe_nClus_ [4]
 
double probe_phi_ [4]
 
double probe_pin_ [4]
 
double probe_pout_ [4]
 
double probe_pt_ [4]
 
int probe_q_ [4]
 
double probe_rescEta_ [4]
 
double probe_rescPhi_ [4]
 
double probe_rescPt_ [4]
 
double probe_sc_E_ [4]
 
double probe_sc_eta_ [4]
 
double probe_sc_nClus_ [4]
 
double probe_sc_phi_ [4]
 
double probe_sc_pt_ [4]
 
double probe_sc_rawE_ [4]
 
double probe_scV2_E_ [4]
 
double probe_scV3_E_ [4]
 
double probe_scV4_E_ [4]
 
double probe_sIhIh_ [4]
 
double probe_trckIso_ [4]
 
std::string ProcessName_
 
edm::ESHandle< CaloTopologypTopology_
 
double T1MEt_
 
edm::EDGetTokenT< reco::METCollectionT1MEtCollection_
 
double T1MEtphi_
 
TTree * t_
 
double tag_dEtaIn_ [4]
 
double tag_dPhiIn_ [4]
 
double tag_e1x5Max_ [4]
 
double tag_e2x5Max_ [4]
 
double tag_e5x5_ [4]
 
double tag_ecalIso_ [4]
 
double tag_eop_ [4]
 
double tag_eta_ [4]
 
double tag_hcalIso_ [4]
 
double tag_hoe_ [4]
 
double tag_phi_ [4]
 
double tag_pin_ [4]
 
double tag_pout_ [4]
 
double tag_pt_ [4]
 
int tag_q_ [4]
 
double tag_rescEta_ [4]
 
double tag_rescPhi_ [4]
 
double tag_rescPt_ [4]
 
double tag_sIhIh_ [4]
 
double tag_trckIso_ [4]
 
double TcMEt_
 
edm::EDGetTokenT< reco::METCollectionTcMEtCollection_
 
double TcMEtphi_
 
edm::EDGetTokenT< trigger::TriggerEventTriggerEvent_
 
std::string TriggerName_
 
edm::InputTag TriggerPath_
 
edm::EDGetTokenT< edm::TriggerResultsTriggerResults_
 
double Z_eta_ [4]
 
double Z_m_ [4]
 
double Z_phi_ [4]
 
double Z_probe_dPhi_ [4]
 
double Z_pt_ [4]
 
double Z_rescEta_ [4]
 
double Z_rescM_ [4]
 
double Z_rescPhi_ [4]
 
double Z_rescPt_ [4]
 
double Z_rescY_ [4]
 
double Z_y_ [4]
 
bool Zevent_
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 91 of file ErsatzMEt.h.

Member Enumeration Documentation

enum ErsatzMEt::cut_index_t
private
Enumerator
EtCut_ 
EB_sIhIh_ 
EB_dEtaIn_ 
EB_dPhiIn_ 
EB_TrckIso_ 
EB_EcalIso_ 
EB_HcalIso_ 
EE_sIhIh_ 
EE_dEtaIn_ 
EE_dPhiIn_ 
EE_TrckIso_ 
EE_EcalIso_ 
EE_HcalIso_ 

Definition at line 133 of file ErsatzMEt.h.

Constructor & Destructor Documentation

ErsatzMEt::ErsatzMEt ( const edm::ParameterSet ps)
explicit

Definition at line 4 of file ErsatzMEt.cc.

References BarrelEtaMax_, CaloMEtCollection_, CutVector_, EB_dEtaIn_, EB_dPhiIn_, EB_EcalIso_, EB_HcalIso_, EB_sIhIh_, EB_TrckIso_, EE_dEtaIn_, EE_dPhiIn_, EE_EcalIso_, EE_HcalIso_, EE_sIhIh_, EE_TrckIso_, ElectronCollection_, EndCapEtaMax_, EndCapEtaMin_, EtCut_, GenMEtCollection_, edm::ParameterSet::getParameter(), HLTPathCheck_, hyb_fCorrPSet_, HybridScCollection_, m5x5_fCorrPSet_, M5x5ScCollection_, MCTruthCollection_, mTPmax_, mTPmin_, mW_, mZ_, PfMEtCollection_, AlCaHLTBitMon_QueryRunRegistry::string, TcMEtCollection_, TriggerEvent_, TriggerName_, TriggerPath_, TriggerResults_, and Zevent_.

5 {
6  MCTruthCollection_ = consumes<reco::GenParticleCollection>(ps.getParameter<edm::InputTag>("MCTruthCollection"));
7  ElectronCollection_ = consumes<reco::GsfElectronCollection>(ps.getParameter<edm::InputTag>("ElectronCollection"));
8  HybridScCollection_ = consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("HybridScCollection"));
9  M5x5ScCollection_ = consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("M5x5ScCollection"));
10  GenMEtCollection_ = consumes<reco::GenMETCollection>(ps.getParameter<edm::InputTag>("GenMEtCollection"));
11  CaloMEtCollection_ = consumes<reco::CaloMETCollection>(ps.getParameter<edm::InputTag>("CaloMEtCollection"));
12  //T1MEtCollection_ = consumes<reco::METCollection>(ps.getParameter<edm::InputTag>("T1MEtCollection"));
13  PfMEtCollection_ = consumes<reco::PFMETCollection>(ps.getParameter<edm::InputTag>("PfMEtCollection"));
14  TcMEtCollection_ = consumes<reco::METCollection>(ps.getParameter<edm::InputTag>("TcMEtCollection"));
15  TriggerEvent_ = consumes<trigger::TriggerEvent>(ps.getParameter<edm::InputTag>("TriggerEvent"));
16  TriggerPath_ = ps.getParameter<edm::InputTag>("TriggerPath");
17  TriggerResults_ = consumes<edm::TriggerResults>(ps.getParameter<edm::InputTag>("TriggerResults"));
18  TriggerName_ = ps.getParameter<std::string>("TriggerName");
19  HLTPathCheck_ = ps.getParameter<bool>("HLTPathCheck");
20 
21  Zevent_ = ps.getParameter<bool>("Zevent");
22  mW_ = ps.getParameter<double>("mW");
23  mZ_ = ps.getParameter<double>("mZ");
24  mTPmin_ = ps.getParameter<double>("mTPmin");
25  mTPmax_ = ps.getParameter<double>("mTPmax");
26  BarrelEtaMax_ = ps.getParameter<double>("BarrelEtaMax");
27  EndCapEtaMin_ = ps.getParameter<double>("EndCapEtaMin");
28  EndCapEtaMax_ = ps.getParameter<double>("EndCapEtaMax");
29 
30  hyb_fCorrPSet_ = ps.getParameter<edm::ParameterSet>("hyb_fCorrPSet");
31  m5x5_fCorrPSet_ = ps.getParameter<edm::ParameterSet>("m5x5_fCorrPSet");
32 
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");
46 
47  CutVector_.resize(13);
48  CutVector_[EtCut_] = CElecPtMin;
49  CutVector_[EB_sIhIh_] = CEB_siEiE;
50  CutVector_[EB_dPhiIn_] = CEB_dPhiIn;
51  CutVector_[EB_dEtaIn_] = CEB_dEtaIn;
52  CutVector_[EB_TrckIso_] = CEB_TrckIso;
53  CutVector_[EB_EcalIso_] = CEB_EcalIso;
54  CutVector_[EB_HcalIso_] = CEB_HcalIso;
55  CutVector_[EE_sIhIh_] = CEE_siEiE;
56  CutVector_[EE_dPhiIn_] = CEE_dPhiIn;
57  CutVector_[EE_dEtaIn_] = CEE_dEtaIn;
58  CutVector_[EE_TrckIso_] = CEE_TrckIso;
59  CutVector_[EE_EcalIso_] = CEE_EcalIso;
60  CutVector_[EE_HcalIso_] = CEE_HcalIso;
61 
62  for(std::vector<double>::const_iterator it = CutVector_.begin(); it != CutVector_.end(); ++it)
63  {
64  edm::LogDebug_("","",101)<<"CutVector_ = "<< *it;
65  }
66 }
std::vector< double > CutVector_
Definition: ErsatzMEt.h:136
T getParameter(std::string const &) const
double mZ_
Definition: ErsatzMEt.h:130
edm::EDGetTokenT< trigger::TriggerEvent > TriggerEvent_
Definition: ErsatzMEt.h:125
bool HLTPathCheck_
Definition: ErsatzMEt.h:139
edm::ParameterSet hyb_fCorrPSet_
Definition: ErsatzMEt.h:129
double BarrelEtaMax_
Definition: ErsatzMEt.h:131
edm::InputTag TriggerPath_
Definition: ErsatzMEt.h:127
edm::EDGetTokenT< reco::GenMETCollection > GenMEtCollection_
Definition: ErsatzMEt.h:120
bool Zevent_
Definition: ErsatzMEt.h:139
double mTPmin_
Definition: ErsatzMEt.h:130
double mTPmax_
Definition: ErsatzMEt.h:130
double EndCapEtaMin_
Definition: ErsatzMEt.h:131
edm::ParameterSet m5x5_fCorrPSet_
Definition: ErsatzMEt.h:129
edm::EDGetTokenT< reco::PFMETCollection > PfMEtCollection_
Definition: ErsatzMEt.h:123
edm::EDGetTokenT< edm::TriggerResults > TriggerResults_
Definition: ErsatzMEt.h:126
edm::EDGetTokenT< reco::SuperClusterCollection > HybridScCollection_
Definition: ErsatzMEt.h:118
edm::EDGetTokenT< reco::GsfElectronCollection > ElectronCollection_
Definition: ErsatzMEt.h:117
edm::EDGetTokenT< reco::GenParticleCollection > MCTruthCollection_
Definition: ErsatzMEt.h:116
edm::EDGetTokenT< reco::CaloMETCollection > CaloMEtCollection_
Definition: ErsatzMEt.h:121
edm::EDGetTokenT< reco::SuperClusterCollection > M5x5ScCollection_
Definition: ErsatzMEt.h:119
double EndCapEtaMax_
Definition: ErsatzMEt.h:131
edm::EDGetTokenT< reco::METCollection > TcMEtCollection_
Definition: ErsatzMEt.h:124
double mW_
Definition: ErsatzMEt.h:130
std::string TriggerName_
Definition: ErsatzMEt.h:128
ErsatzMEt::~ErsatzMEt ( )
override

Definition at line 68 of file ErsatzMEt.cc.

69 {
70 }

Member Function Documentation

void ErsatzMEt::analyze ( const edm::Event evt,
const edm::EventSetup es 
)
overrideprivate

Definition at line 218 of file ErsatzMEt.cc.

References funct::abs(), edm::HLTGlobalStatus::accept(), CaloMEt_, CaloMEtCollection_, CaloMEtphi_, reco::SuperCluster::clustersSize(), gather_cfg::cout, CutVector_, edmIntegrityCheck::d, reco::Candidate::daughter(), reco::deltaPhi(), reco::deltaR(), DetectorVector(), PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, ElectronCollection_, electronSelector(), reco::CaloCluster::energy(), ersatzFabrik(), ErsatzV1_Mesc_, ErsatzV1_rescMesc_, ErsatzV1CaloMEt_, ErsatzV1CaloMEtPhi_, ErsatzV1CaloMt_, ErsatzV1PfMEt_, ErsatzV1PfMEtPhi_, ErsatzV1PfMt_, ErsatzV1T1MEt_, ErsatzV1T1MEtPhi_, ErsatzV1T1Mt_, ErsatzV1TcMEt_, ErsatzV1TcMEtPhi_, ErsatzV1TcMt_, ErsatzV2_Mesc_, ErsatzV2_rescMesc_, ErsatzV2CaloMEt_, ErsatzV2CaloMEtPhi_, ErsatzV2CaloMt_, ErsatzV3_Mesc_, ErsatzV3_rescMesc_, ErsatzV3CaloMEt_, ErsatzV3CaloMEtPhi_, ErsatzV3CaloMt_, ErsatzV4_Mesc_, ErsatzV4_rescMesc_, ErsatzV4CaloMEt_, ErsatzV4CaloMEtPhi_, ErsatzV4CaloMt_, PVValHelper::eta, reco::CaloCluster::eta(), fBremScCorr(), fEtaScCorr(), trigger::TriggerEvent::filterIndex(), GenMEtCollection_, geoHandle_, edm::EventSetup::get(), edm::Event::getByToken(), HLTPathCheck_, hyb_fCorrPSet_, HybridScCollection_, mps_fire::i, iComb_, funct::m, m5x5_fCorrPSet_, M5x5ScCollection_, McElec_eta_, McElec_nFinal_, McElec_nZmum_, McElec_phi_, McElec_pt_, McElec_rescEta_, McElec_rescPhi_, McElec_rescPt_, McElecProbe_dEta_, McElecProbe_dPhi_, McElecProbe_dR_, McProbe_eta_, McProbe_phi_, McProbe_pt_, McProbe_rescEta_, McProbe_rescPhi_, McProbe_rescPt_, MCTruthCollection_, McZ_eta_, McZ_m_, McZ_phi_, McZ_pt_, McZ_rescEta_, McZ_rescM_, McZ_rescPhi_, McZ_rescPt_, McZ_rescY_, McZ_y_, reco::Candidate::mother(), mW_, mZ_, gen::n, nEntries_arr_, nProbes_, nTags_, reco::Candidate::numberOfDaughters(), reco::Candidate::p4(), reco::Candidate::pdgId(), PfMEt_, PfMEtCollection_, PfMEtphi_, phi, reco::LeafCandidate::phi(), reco::CaloCluster::phi(), probe_d_MCE_SCE_, probe_dEtaIn_, probe_dPhiIn_, probe_e1x5Max_, probe_e2x5Max_, probe_e5x5_, probe_ecalIso_, probe_eop_, probe_eta_, probe_hcalIso_, probe_hoe_, probe_phi_, probe_pin_, probe_pout_, probe_pt_, probe_q_, probe_rescEta_, probe_rescPhi_, probe_rescPt_, probe_sc_E_, probe_sc_eta_, probe_sc_nClus_, probe_sc_phi_, probe_sc_pt_, probe_sc_rawE_, probe_scV2_E_, probe_scV3_E_, probe_scV4_E_, probe_sIhIh_, probe_trckIso_, probeFinder(), edm::Handle< T >::product(), reco::LeafCandidate::pt(), pTopology_, reco::SuperCluster::rawEnergy(), edm::HLTGlobalStatus::size(), reco::Candidate::status(), AlCaHLTBitMon_QueryRunRegistry::string, T1MEt_, T1MEtphi_, t_, tag_dEtaIn_, tag_dPhiIn_, tag_e1x5Max_, tag_e2x5Max_, tag_e5x5_, tag_ecalIso_, tag_eop_, tag_eta_, tag_hcalIso_, tag_hoe_, tag_phi_, tag_pin_, tag_pout_, tag_pt_, tag_q_, tag_rescEta_, tag_rescPhi_, tag_rescPt_, tag_sIhIh_, tag_trckIso_, TcMEt_, TcMEtCollection_, TcMEtphi_, TriggerEvent_, edm::TriggerNames::triggerName(), edm::Event::triggerNames(), TriggerPath_, TriggerResults_, uniqueElectronFinder(), Z_eta_, Z_m_, Z_phi_, Z_probe_dPhi_, Z_pt_, Z_rescEta_, Z_rescM_, Z_rescPhi_, Z_rescPt_, Z_rescY_, Z_y_, and Zevent_.

219 {
220 
221  es.get<CaloGeometryRecord>().get(geoHandle_);
222  es.get<CaloTopologyRecord>().get(pTopology_);
223 
224  edm::LogDebug_("","", 151)<<"Initialising variables.";
225  nTags_ = -99; nProbes_ = -99;
226  CaloMEt_ = -99.; CaloMEtphi_ = -99.;
227  T1MEt_ = -99.; T1MEtphi_ = -99.;
228  PfMEt_ = -99.; PfMEtphi_ = -99.;
229  TcMEt_ = -99.; TcMEtphi_ = -99.;
230  if(Zevent_)
231  {
232  McZ_m_ = -99.; McZ_pt_ = -99.; McZ_y_ = -99.; McZ_eta_ = -99.; McZ_phi_ = -99.;
233  McZ_rescM_ = -99.; McZ_rescPt_ = -99.; McZ_rescY_ = -99.; McZ_rescEta_ = -99.; McZ_rescPhi_ = -99.;
234  McElec_nZmum_ = -99; McElec_nFinal_ = -99;
235  }
236 
237  for(int i = 0; i < nEntries_arr_; ++i)
238  {
239  tag_q_[i] = -99;
240  tag_pt_[i] = -99.; tag_eta_[i] = -99.; tag_phi_[i] = -99.;
241  tag_rescPt_[i] = -99.; tag_rescEta_[i] = -99.; tag_rescPhi_[i] = -99.;
242  tag_trckIso_[i] = -99.; tag_ecalIso_[i] = -99.; tag_hcalIso_[i] = -99.;
243  tag_sIhIh_[i] = -99.; tag_dPhiIn_[i] = -99.; tag_dEtaIn_[i] = -99.;
244  tag_e5x5_[i] = -99.; tag_e2x5Max_[i] = -99.; tag_e1x5Max_[i] = -99.;
245  tag_hoe_[i] = -99.; tag_eop_[i] = -99.; tag_pin_[i] = -99.; tag_pout_[i] = -99.;
246 
247  probe_q_[i] = -99;
248  probe_pt_[i] = -99.; probe_eta_[i] = -99.; probe_phi_[i] = -99.;
249  probe_rescPt_[i] = -99.; probe_rescEta_[i] = -99.; probe_rescPhi_[i] = -99.;
250  probe_trckIso_[i] = -99.; probe_ecalIso_[i] = -99.; probe_hcalIso_[i] = -99.;
251  probe_sIhIh_[i] = -99.; probe_dPhiIn_[i] = -99.; probe_dEtaIn_[i] = -99.;
252  probe_e5x5_[i] = -99.; probe_e2x5Max_[i] = -99.; probe_e1x5Max_[i] = -99.;
253  probe_hoe_[i] = -99.; probe_eop_[i] = -99.; probe_pin_[i] = -99.; probe_pout_[i] = -99.;
254 
255  Z_pt_[i] = -99.; Z_y_[i] = -99.; Z_eta_[i] = -99.; Z_phi_[i] = -99.; Z_m_[i] = -99.;
256  Z_rescPt_[i] = -99.; Z_rescY_[i] = -99.; Z_rescEta_[i] = -99.; Z_rescPhi_[i] = -99.; Z_rescM_[i] = -99.; Z_probe_dPhi_[i] = -99.;
257 
258  ErsatzV1_Mesc_[i] = -99.; ErsatzV1_rescMesc_[i] = -99.;
259  ErsatzV2_Mesc_[i] = -99.; ErsatzV2_rescMesc_[i] = -99.;
260  ErsatzV3_Mesc_[i] = -99.; ErsatzV3_rescMesc_[i] = -99.;
261  ErsatzV4_Mesc_[i] = -99.; ErsatzV4_rescMesc_[i] = -99.;
262  ErsatzV1CaloMEt_[i] = -99.; ErsatzV1CaloMt_[i] = -99.; ErsatzV1CaloMEtPhi_[i] = -99.;
263  ErsatzV2CaloMEt_[i] = -99.; ErsatzV2CaloMt_[i] = -99.; ErsatzV2CaloMEtPhi_[i] = -99.;
264  ErsatzV3CaloMEt_[i] = -99.; ErsatzV3CaloMt_[i] = -99.; ErsatzV3CaloMEtPhi_[i] = -99.;
265  ErsatzV4CaloMEt_[i] = -99.; ErsatzV4CaloMt_[i] = -99.; ErsatzV4CaloMEtPhi_[i] = -99.;
266  ErsatzV1T1MEt_[i] = -99.; ErsatzV1T1Mt_[i] = -99.; ErsatzV1T1MEtPhi_[i] = -99.;
267  ErsatzV1PfMEt_[i] = -99.; ErsatzV1PfMt_[i] = -99.; ErsatzV1PfMEtPhi_[i] = -99.;
268  ErsatzV1TcMEt_[i] = -99.; ErsatzV1TcMt_[i] = -99.; ErsatzV1TcMEtPhi_[i] = -99.;
269 
270  probe_sc_pt_[i] = -99.; probe_sc_eta_[i] = -99.; probe_sc_phi_[i] = -99.;
271  probe_sc_E_[i] = -99.; probe_sc_rawE_[i] = -99.;
272  probe_scV2_E_[i] = -99.;
273  probe_scV3_E_[i] = -99.;
274  probe_scV4_E_[i] = -99.;
275 
276  if(Zevent_)
277  {
278  McElec_pt_[i] = -99.; McElec_eta_[i] = -99.; McElec_phi_[i] = -99.;
279  McElec_rescPt_[i] = -99.; McElec_rescEta_[i] = -99.; McElec_rescPhi_[i] = -99.;
280  McProbe_pt_[i] = -99.; McProbe_eta_[i] = -99.; McProbe_phi_[i] = -99.;
281  McProbe_rescPt_[i] = -99.; McProbe_rescEta_[i] = -99.; McProbe_rescPhi_[i] = -99.;
282  McElecProbe_dPhi_[i] = -99.; McElecProbe_dEta_[i] = -99.; McElecProbe_dR_[i] = -99.;
283  }
284 
285  edm::LogDebug_("","",180)<<"Initialisation of array index "<< i <<" completed.";
286  }
287  //Get Collections
289  evt.getByToken(MCTruthCollection_, pGenPart);
291  evt.getByToken(ElectronCollection_, pElectrons);
293  evt.getByToken(HybridScCollection_, pHybrid);
295  evt.getByToken(M5x5ScCollection_, pM5x5);
297  evt.getByToken(CaloMEtCollection_, pCaloMEt);
299 // evt.getByToken(T1MEtCollection_, pT1MEt);
301  evt.getByToken(PfMEtCollection_, pPfMEt);
303  evt.getByToken(TcMEtCollection_, pTcMEt);
305  evt.getByToken(GenMEtCollection_, pGenMEt);
306  edm::Handle<edm::TriggerResults> pTriggerResults;
307  evt.getByToken(TriggerResults_, pTriggerResults);
309  evt.getByToken(TriggerEvent_, pHLT);
310 
311  std::vector<math::XYZTLorentzVector>McElecs,McElecsFinalState;
312  std::vector<math::XYZTLorentzVector> McElecsResc;
313  if(Zevent_)
314  {
315  edm::LogDebug_("","",289)<<"Analysing MC properties.";
316  const reco::GenParticleCollection *McCand = pGenPart.product();
317  math::XYZTLorentzVector Zboson, RescZboson, McElec1, McElec2;
318  for(reco::GenParticleCollection::const_iterator McP = McCand->begin(); McP != McCand->end(); ++McP)
319  {
320  const reco::Candidate* mum = McP->mother();
321  if(std::abs(McP->pdgId())==11 && abs(mum->pdgId()) == 23)
322  {
323  McElecs.push_back(McP->p4());
324  if(std::abs(mum->pdgId()) == 23) Zboson = mum->p4();
325 
326  std::cout <<"Found electron, ID = "<< McP->pdgId() <<"\t status = "<< McP->status()<<std::endl;
327  if(McP->status() != 1)
328  {
329  const reco::Candidate* McPD = McP->daughter(0);
330  McPD = McPD->mother();
331  while(McPD->status() != 1)
332  {
333  int n = McPD->numberOfDaughters();
334  std::cout<< McPD->pdgId() << " : status = "<<McPD->status()
335  <<"\tNumber of Daughters = "<< n <<std::endl;
336  for(int j = 0; j < n; ++ j)
337  {
338  const reco::Candidate *d = McPD->daughter( j );
339  std::cout <<"Daughter "<< j <<"\t id = "<< d->pdgId() << std::endl;
340  if(std::abs(d->pdgId()) == 11)
341  {
342  McPD = d;
343  break;
344  }
345  }
346  }
347  std::cout<< McPD->pdgId() << " : status = "<<McPD->status()<<"\tAdding to vector!"<<std::endl;
348  McElecsFinalState.push_back(McPD->p4());
349  }else McElecsFinalState.push_back(McP->p4());
350  }
351  }
352  McZ_m_ = Zboson.M(); McZ_pt_ = Zboson.Pt(); McZ_phi_ = Zboson.Phi(); McZ_eta_ = Zboson.Eta(); McZ_y_ = Zboson.Rapidity();
353  McElec_nZmum_ =McElecs.size();
354  McElec_nFinal_ =McElecsFinalState.size();
355  edm::LogDebug_("","",309)<<"MC electrons with Z mother = "<< McElec_nZmum_
356  <<"\tFinal state MC electrons = "<< McElec_nFinal_;
357 
358  McElecsResc.resize(2);
359 // RescZboson.SetCoordinates(Zboson.Px(), Zboson.Py(), Zboson.Pz(), sqrt(Zboson.P2()+(mW_*mW_*Zboson.M2())/(mZ_*mZ_)));
360  RescZboson.SetCoordinates(Zboson.Px()*mW_/mZ_, Zboson.Py()*mW_/mZ_, Zboson.Pz()*mW_/mZ_, Zboson.E()*mW_/mZ_);
361  McZ_rescM_ = RescZboson.M(); McZ_rescPt_ = RescZboson.Pt(); McZ_rescEta_ = RescZboson.Eta(); McZ_rescPhi_ = RescZboson.Phi();
362  McZ_rescY_ = RescZboson.Rapidity();
363  ROOT::Math::Boost CoMBoost(Zboson.BoostToCM());
364 
365  math::XYZTLorentzVector RescMcElec0 = CoMBoost(McElecsFinalState[0]);
366  math::XYZTLorentzVector RescMcElec1 = CoMBoost(McElecsFinalState[1]);
367  RescMcElec0 *= mW_/mZ_;
368  RescMcElec1 *= mW_/mZ_;
369 
370  double E_W = RescZboson.E();
371  ROOT::Math::Boost BackToLab(RescZboson.Px()/E_W, RescZboson.Py()/E_W, RescZboson.Pz()/E_W);
372 
373  RescMcElec0 = BackToLab(RescMcElec0);
374 // RndmMcElec_Rescaled_pt_ = RescMcElec0.Pt();
375 // RndmMcElec_Rescaled_eta_ = RescMcElec0.Eta();
376 // RndmMcElec_Rescaled_phi_ = RescMcElec0.Phi();
377 
378  RescMcElec1 = BackToLab(RescMcElec1);
379 // OthrMcElec_Rescaled_pt_ = RescMcElec1.Pt();
380 // OthrMcElec_Rescaled_eta_ = RescMcElec1.Eta();
381 // OthrMcElec_Rescaled_phi_ = RescMcElec1.Phi();
382  McElecsResc[0] = RescMcElec0;
383  McElecsResc[1] = RescMcElec1;
384  math::XYZTLorentzVector sum = RescMcElec1+RescMcElec0;
385  edm::LogDebug_("","", 307)<<"McElecsResc[0] + McElecsResc[1] = ("<<sum.Px()<<", "<<sum.Py()<<", "
386  <<sum.Pz()<<", "<<sum.E()<<")";
387  }
388 
389  const edm::TriggerResults* HltRes = pTriggerResults.product();
390  const edm::TriggerNames & triggerNames = evt.triggerNames(*HltRes);
391  if(HLTPathCheck_)
392  {
393  for(unsigned int itrig = 0; itrig < HltRes->size(); ++itrig)
394  {
395  const std::string& nom = triggerNames.triggerName(itrig);
396  edm::LogInfo("")<< itrig <<" : Name = "<< nom <<"\t Accepted = "<< HltRes->accept(itrig);
397  }
398  }
399  if(HltRes->accept(34) ==0) edm::LogError("")<<"Event did not pass "<< triggerNames.triggerName(34)<<"!";
400  if(HltRes->accept(34) !=0)
401  {
402  std::vector<reco::GsfElectronRef> UniqueElectrons;
403  UniqueElectrons = uniqueElectronFinder(pElectrons);
404  edm::LogDebug_("","ErsatzMEt",192)<<"Unique electron size = "<<UniqueElectrons.size();
405  std::vector<reco::GsfElectronRef> SelectedElectrons;
406  const unsigned int fId = pHLT->filterIndex(TriggerPath_);
407  std::cout << "Filter Id = " << fId << std::endl;
408  SelectedElectrons = electronSelector(UniqueElectrons, pHLT, fId, CutVector_);
409  nTags_ = SelectedElectrons.size();
410  edm::LogDebug_("","ErsatzMEt",197)<<"Selected electron size = "<<nTags_;
411 
412  iComb_ = 0;
413  if(Zevent_)
414  {
415  //Match MC electrons to the selected electrons and store some of their properties in the tree.
416  //The properties of the other MC electron (i.e. that not selected) are also stored.
417  for(std::vector<reco::GsfElectronRef>::const_iterator elec = SelectedElectrons.begin();
418  elec != SelectedElectrons.end(); ++elec)
419  {
420  for(int m = 0; m < 2; ++m)
421  {
422  double dRLimit = 99.;
423  double dR = reco::deltaR(McElecs[m], *(*elec));
424  if(dR < dRLimit)
425  {
426  dRLimit = dR;
427  McElec_pt_[iComb_] = McElecs[m].pt();
428  McElec_eta_[iComb_] = McElecs[m].eta();
429  McElec_rescPt_[iComb_] = McElecsResc[m].pt();
430  McElec_rescEta_[iComb_] = McElecsResc[m].eta();
431  }
432  }
433  }
434  }
435 
436  std::map<reco::GsfElectronRef, reco::GsfElectronRef> TagProbePairs;
437  TagProbePairs = probeFinder(SelectedElectrons, pElectrons);
438  nProbes_ = TagProbePairs.size();
439  edm::LogDebug_("", "ErsatzMEt", 209)<<"Number of tag-probe pairs = "<< TagProbePairs.size();
440 
441  if(!TagProbePairs.empty())
442  {
443  const reco::CaloMETCollection* caloMEtCollection = pCaloMEt.product();
444  const reco::MET calomet = *(caloMEtCollection->begin());
445  CaloMEt_ = calomet.pt();
446  CaloMEtphi_ = calomet.phi();
447 
448  //const reco::METCollection* t1MEtCollection = pT1MEt.product();
449  //const reco::MET t1met = *(t1MEtCollection->begin());
450  //T1MEt_ = t1met.pt();
451  //T1MEtphi_ = t1met.phi();
452 
453  const reco::PFMETCollection* pfMEtCollection = pPfMEt.product();
454  const reco::MET pfmet = *(pfMEtCollection->begin());
455  PfMEt_ = pfmet.pt();
456  PfMEtphi_ = pfmet.phi();
457 
458  const reco::METCollection* tcMEtCollection = pTcMEt.product();
459  const reco::MET tcmet = *(tcMEtCollection->begin());
460  TcMEt_ = tcmet.pt();
461  TcMEtphi_ = tcmet.phi();
462 
463  reco::MET ersatzMEt;
464 
465  for(std::map<reco::GsfElectronRef, reco::GsfElectronRef>::const_iterator it = TagProbePairs.begin();
466  it != TagProbePairs.end(); ++it)
467  {
468  edm::LogDebug_("","DelendumLoop", 293)<<"iComb_ = "<< iComb_;
469  tag_q_[iComb_] = it->first->charge();
470  edm::LogDebug_("","",360)<<"tag charge = "<< tag_q_[iComb_];
471  tag_pt_[iComb_] = it->first->pt();
472  tag_eta_[iComb_] = it->first->eta();
473  tag_phi_[iComb_] = it->first->phi();
474  edm::LogDebug_("","ErsatzMEt", 364)<<"tag pt = "<< tag_pt_[iComb_]
475  <<"\teta = "<< tag_eta_[iComb_]<<"\tphi = "<< tag_phi_[iComb_];
476  tag_trckIso_[iComb_] = it->first->isolationVariables03().tkSumPt;
477  tag_ecalIso_[iComb_] = it->first->isolationVariables04().ecalRecHitSumEt;
478  tag_hcalIso_[iComb_] = it->first->isolationVariables04().hcalDepth1TowerSumEt
479  + it->first->isolationVariables04().hcalDepth2TowerSumEt;
480  edm::LogDebug_("","ErsatzMEt", 370)<<"tag trackiso = "<< tag_trckIso_[iComb_]
481  <<"\tecaliso = "<< tag_ecalIso_[iComb_]<<"\thcaliso = "<< tag_hcalIso_[iComb_];
482  tag_sIhIh_[iComb_] = it->first->scSigmaIEtaIEta();
483  tag_dPhiIn_[iComb_] = it->first->deltaPhiSuperClusterTrackAtVtx();
484  tag_dEtaIn_[iComb_] = it->first->deltaEtaSuperClusterTrackAtVtx();
485  edm::LogDebug_("","ErsatzMEt", 245)<<"tag sIhIh = "<< tag_sIhIh_[iComb_]
486  <<"\tdPhiIn = "<< tag_dPhiIn_[iComb_]<<"\tdEtaIn = "<< tag_dEtaIn_[iComb_];
487  tag_e5x5_[iComb_] = it->first->scE5x5();
488  tag_e2x5Max_[iComb_] = it->first->scE2x5Max();
489  tag_e2x5Max_[iComb_] = it->first->scE1x5();
490  edm::LogDebug_("","ErsatzMEt", 245)<<"tag e5x5 = "<< tag_e5x5_[iComb_]
491  <<"\te2x5Max = "<< tag_e2x5Max_[iComb_]<<"\te1x5Max = "<< tag_e1x5Max_[iComb_];
492  tag_hoe_[iComb_] = it->first->hadronicOverEm();
493  tag_eop_[iComb_] = it->first->eSuperClusterOverP();
494  tag_pin_[iComb_] = it->first->trackMomentumAtVtx().R();
495  tag_pout_[iComb_] = it->first->trackMomentumOut().R();
496  edm::LogDebug_("","ErsatzMEt", 245)<<"tag hoe = "<<tag_hoe_[iComb_]<<"\tpoe = "<<tag_eop_[iComb_]
497  <<"\tpin = "<< tag_pin_[iComb_]<<"\tpout = "<< tag_pout_[iComb_];
498  probe_q_[iComb_] = it->first->charge();
499  edm::LogDebug_("","",360)<<"probe charge = "<< probe_q_[iComb_];
500  probe_pt_[iComb_] = it->second->pt();
501  probe_eta_[iComb_] = it->second->eta();
502  probe_phi_[iComb_] = it->second->phi();
503  edm::LogDebug_("","ErsatzMEt", 245)<<"probe pt = "<< probe_pt_[iComb_]
504  <<"\teta = "<< probe_eta_[iComb_]<<"\tphi = "<< probe_phi_[iComb_];
505  probe_trckIso_[iComb_] = it->second->isolationVariables03().tkSumPt;
506  probe_ecalIso_[iComb_] = it->second->isolationVariables04().ecalRecHitSumEt;
507  probe_hcalIso_[iComb_] = it->second->isolationVariables04().hcalDepth1TowerSumEt
508  + it->second->isolationVariables04().hcalDepth2TowerSumEt;
509  edm::LogDebug_("","ErsatzMEt", 245)<<"probe trackiso = "<< probe_trckIso_[iComb_]
510  <<"\tecaliso = "<< probe_ecalIso_[iComb_]<<"\thcaliso = "<< probe_phi_[iComb_];
511  probe_sIhIh_[iComb_] = it->second->scSigmaIEtaIEta();
512  probe_dPhiIn_[iComb_] = it->second->deltaPhiSuperClusterTrackAtVtx();
513  probe_dEtaIn_[iComb_] = it->second->deltaEtaSuperClusterTrackAtVtx();
514  edm::LogDebug_("","ErsatzMEt", 245)<<"probe sIhIh = "<< probe_sIhIh_[iComb_]
515  <<"\tdPhiIn = "<< probe_dPhiIn_[iComb_]<<"\tdEtaIn = "<< probe_dEtaIn_[iComb_];
516  probe_e5x5_[iComb_] = it->second->scE5x5();
517  probe_e2x5Max_[iComb_] = it->second->scE2x5Max();
518  probe_e2x5Max_[iComb_] = it->second->scE1x5();
519  edm::LogDebug_("","ErsatzMEt", 245)<<"probe e5x5 = "<< probe_e5x5_[iComb_]
520  <<"\te2x5Max = "<< probe_e2x5Max_[iComb_]<<"\te1x5Max = "<< probe_e1x5Max_[iComb_];
521  probe_hoe_[iComb_] = it->second->hadronicOverEm();
522  probe_eop_[iComb_] = it->second->eSuperClusterOverP();
523  probe_pin_[iComb_] = it->second->trackMomentumAtVtx().R();
524  probe_pout_[iComb_] = it->second->trackMomentumOut().R();
525  edm::LogDebug_("","ErsatzMEt", 245)<<"probe hoe = "<<probe_hoe_[iComb_]<<"\tpoe = "<<probe_eop_[iComb_]
526  <<"\tpin = "<< probe_pin_[iComb_]<<"\tpout = "<< probe_pout_[iComb_];
527 
528  double dRLimit = 0.2;
529  for(unsigned int mcEId = 0; mcEId < McElecs.size(); ++mcEId)
530  {
531 // double dR = reco::deltaR((*(*mcEl)), probeVec);
532  double dR = reco::deltaR(McElecs[mcEId], it->second->p4());
533  if(dR < dRLimit)
534  {
535  dRLimit = dR;
536  McProbe_pt_[iComb_] = McElecs[mcEId].pt();
537  McProbe_eta_[iComb_] = McElecs[mcEId].eta();
538  McProbe_phi_[iComb_] = McElecs[mcEId].phi();
539  McProbe_rescPt_[iComb_] = McElecsResc[mcEId].pt();
540  McProbe_rescEta_[iComb_] = McElecsResc[mcEId].eta();
541  McProbe_rescPhi_[iComb_] = McElecsResc[mcEId].phi();
542  probe_d_MCE_SCE_[iComb_] = McElecs[mcEId].energy() - it->second->superCluster()->rawEnergy();
543  McElecProbe_dPhi_[iComb_] = reco::deltaPhi(McElecs[mcEId].phi(), McElecs[(mcEId+1)%2].phi());
544  McElecProbe_dEta_[iComb_] = fabs(McElecs[mcEId].eta() - McElecs[(mcEId+1)%2].eta());
545  McElecProbe_dR_[iComb_] = reco::deltaR(McElecs[mcEId], McElecs[(mcEId+1)%2]);
546  }
547  }
548 
549  // Uncorrected supercluster V1
550  reco::SuperCluster scV1 = *(it->second->superCluster());
551  math::XYZTLorentzVector probe_scV1_detVec = DetectorVector(scV1);
552  probe_sc_pt_[iComb_] = probe_scV1_detVec.pt();
553  probe_sc_eta_[iComb_] = scV1.eta();
554  probe_sc_phi_[iComb_] = scV1.phi();
556  probe_sc_E_[iComb_] = scV1.energy();
557  probe_sc_rawE_[iComb_] = scV1.rawEnergy();
558 
559  ersatzMEt = ersatzFabrik(it->first, scV1, calomet, 1);
560  ErsatzV1CaloMEt_[iComb_] = ersatzMEt.pt();
561  ErsatzV1CaloMEtPhi_[iComb_] = ersatzMEt.phi();
562  //ersatzMEt = ersatzFabrik(it->first, it->second, t1met);
563  //ErsatzV1T1MEt_[iComb_] = ersatzMEt.pt();
564  //ErsatzV1T1MEtPhi_[iComb_] = ersatzMEt.phi();
565  ersatzMEt = ersatzFabrik(it->first, it->second, pfmet);
566  ErsatzV1PfMEt_[iComb_] = ersatzMEt.pt();
567  ErsatzV1PfMEtPhi_[iComb_] = ersatzMEt.phi();
568  ersatzMEt = ersatzFabrik(it->first, it->second, tcmet);
569  ErsatzV1TcMEt_[iComb_] = ersatzMEt.pt();
570  ErsatzV1TcMEtPhi_[iComb_] = ersatzMEt.phi();
571 
572  // fEta corrected supercluster V2
573  reco::SuperCluster scV2;
574  if(fabs(probe_sc_eta_[iComb_]) < 1.479)
575  {
576  scV2 = fEtaScCorr(scV1);
577  }else{
578  scV2 = scV1;
579  }
580  probe_scV2_E_[iComb_] = scV2.energy();
581  ersatzMEt = ersatzFabrik(it->first, scV2, calomet, 2);
582  ErsatzV2CaloMEt_[iComb_] = ersatzMEt.pt();
583  ErsatzV2CaloMEtPhi_[iComb_] = ersatzMEt.phi();
584 
585  // fBrem corrected supercluster V3
586  reco::SuperCluster scV3;
587  if(fabs(probe_sc_eta_[iComb_]) < 1.479)
588  {
589  scV3 = fBremScCorr(scV1, hyb_fCorrPSet_);
590  }else{
591  scV3 = fBremScCorr(scV1, m5x5_fCorrPSet_);
592  }
593  probe_scV3_E_[iComb_] = scV3.energy();
594  ersatzMEt = ersatzFabrik(it->first, scV3, calomet, 3);
595  ErsatzV3CaloMEt_[iComb_] = ersatzMEt.pt();
596  ErsatzV3CaloMEtPhi_[iComb_] = ersatzMEt.phi();
597 
598  // Fully corrected supercluster V4
599  reco::SuperCluster scV4;
600  if(fabs(probe_sc_eta_[iComb_]) < 1.479)
601  {
602  scV4 = fBremScCorr(scV1, hyb_fCorrPSet_);
603  }else{
604  scV4 = fBremScCorr(scV1, m5x5_fCorrPSet_);
605  }
606  probe_scV4_E_[iComb_] = scV4.energy();
607  ersatzMEt = ersatzFabrik(it->first, scV4, calomet, 4);
608  ErsatzV4CaloMEt_[iComb_] = ersatzMEt.pt();
609  ErsatzV4CaloMEtPhi_[iComb_] = ersatzMEt.phi();
610 
611  ++iComb_;
612  }
613  t_->Fill();
614  }
615  }
616 }
double probe_trckIso_[4]
Definition: ErsatzMEt.h:170
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
std::vector< double > CutVector_
Definition: ErsatzMEt.h:136
double probe_d_MCE_SCE_[4]
Definition: ErsatzMEt.h:194
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 tag_rescEta_[4]
Definition: ErsatzMEt.h:161
double mZ_
Definition: ErsatzMEt.h:130
double McZ_pt_
Definition: ErsatzMEt.h:151
double McProbe_eta_[4]
Definition: ErsatzMEt.h:190
double probe_dPhiIn_[4]
Definition: ErsatzMEt.h:169
double probe_sc_rawE_[4]
Definition: ErsatzMEt.h:196
edm::EDGetTokenT< trigger::TriggerEvent > TriggerEvent_
Definition: ErsatzMEt.h:125
std::vector< reco::GsfElectronRef > uniqueElectronFinder(edm::Handle< reco::GsfElectronCollection > &pElectrons)
double tag_eta_[4]
Definition: ErsatzMEt.h:156
double tag_ecalIso_[4]
Definition: ErsatzMEt.h:163
double probe_rescEta_[4]
Definition: ErsatzMEt.h:168
double McElec_eta_[4]
Definition: ErsatzMEt.h:188
double ErsatzV3CaloMt_[4]
Definition: ErsatzMEt.h:178
double ErsatzV3_rescMesc_[4]
Definition: ErsatzMEt.h:185
double tag_hoe_[4]
Definition: ErsatzMEt.h:165
bool HLTPathCheck_
Definition: ErsatzMEt.h:139
double probe_sc_pt_[4]
Definition: ErsatzMEt.h:195
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
std::vector< TagProbePair > TagProbePairs
edm::ParameterSet hyb_fCorrPSet_
Definition: ErsatzMEt.h:129
double tag_e5x5_[4]
Definition: ErsatzMEt.h:164
double Z_rescPt_[4]
Definition: ErsatzMEt.h:174
double probe_scV2_E_[4]
Definition: ErsatzMEt.h:197
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double tag_dEtaIn_[4]
Definition: ErsatzMEt.h:162
double Z_pt_[4]
Definition: ErsatzMEt.h:173
double ErsatzV1PfMt_[4]
Definition: ErsatzMEt.h:181
bool accept() const
Has at least one path accepted the event?
double ErsatzV4_rescMesc_[4]
Definition: ErsatzMEt.h:186
edm::InputTag TriggerPath_
Definition: ErsatzMEt.h:127
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
Definition: TriggerEvent.h:123
double probe_sc_nClus_[4]
Definition: ErsatzMEt.h:196
double Z_rescY_[4]
Definition: ErsatzMEt.h:174
math::XYZTLorentzVector DetectorVector(const reco::SuperClusterRef &sc)
Definition: CaloVectors.h:6
reco::SuperCluster fEtaScCorr(const reco::SuperCluster &sc)
double ErsatzV1TcMt_[4]
Definition: ErsatzMEt.h:182
double tag_phi_[4]
Definition: ErsatzMEt.h:156
edm::EDGetTokenT< reco::GenMETCollection > GenMEtCollection_
Definition: ErsatzMEt.h:120
double pt() const final
transverse momentum
double McProbe_pt_[4]
Definition: ErsatzMEt.h:190
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
double Z_rescEta_[4]
Definition: ErsatzMEt.h:174
double McProbe_rescEta_[4]
Definition: ErsatzMEt.h:191
double McElecProbe_dEta_[4]
Definition: ErsatzMEt.h:192
double probe_e1x5Max_[4]
Definition: ErsatzMEt.h:171
double tag_pin_[4]
Definition: ErsatzMEt.h:165
double ErsatzV1PfMEt_[4]
Definition: ErsatzMEt.h:181
bool Zevent_
Definition: ErsatzMEt.h:139
double McZ_rescY_
Definition: ErsatzMEt.h:152
double Z_m_[4]
Definition: ErsatzMEt.h:173
double probe_sc_E_[4]
Definition: ErsatzMEt.h:196
std::vector< reco::MET > METCollection
collection of MET objects
Definition: METCollection.h:23
double ErsatzV4CaloMEt_[4]
Definition: ErsatzMEt.h:179
double Z_eta_[4]
Definition: ErsatzMEt.h:173
double T1MEt_
Definition: ErsatzMEt.h:148
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:168
double McElecProbe_dR_[4]
Definition: ErsatzMEt.h:192
double Z_y_[4]
Definition: ErsatzMEt.h:173
double ErsatzV2CaloMEt_[4]
Definition: ErsatzMEt.h:177
double TcMEt_
Definition: ErsatzMEt.h:148
double probe_phi_[4]
Definition: ErsatzMEt.h:167
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
virtual int status() const =0
status word
double probe_eta_[4]
Definition: ErsatzMEt.h:167
double probe_sc_eta_[4]
Definition: ErsatzMEt.h:195
int McElec_nZmum_
Definition: ErsatzMEt.h:150
int nProbes_
Definition: ErsatzMEt.h:147
double McZ_y_
Definition: ErsatzMEt.h:151
double T1MEtphi_
Definition: ErsatzMEt.h:149
double McElec_rescPt_[4]
Definition: ErsatzMEt.h:189
edm::ParameterSet m5x5_fCorrPSet_
Definition: ErsatzMEt.h:129
double ErsatzV2_rescMesc_[4]
Definition: ErsatzMEt.h:184
double ErsatzV1PfMEtPhi_[4]
Definition: ErsatzMEt.h:181
double PfMEt_
Definition: ErsatzMEt.h:148
double probe_ecalIso_[4]
Definition: ErsatzMEt.h:170
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
Definition: MET.h:42
virtual int pdgId() const =0
PDG identifier.
int nTags_
Definition: ErsatzMEt.h:147
unsigned int size() const
Get number of paths stored.
double McProbe_rescPt_[4]
Definition: ErsatzMEt.h:191
double probe_dEtaIn_[4]
Definition: ErsatzMEt.h:169
double tag_rescPhi_[4]
Definition: ErsatzMEt.h:161
double McZ_rescEta_
Definition: ErsatzMEt.h:152
reco::SuperCluster fBremScCorr(const reco::SuperCluster &sc, const edm::ParameterSet &ps)
double PfMEtphi_
Definition: ErsatzMEt.h:149
double probe_scV4_E_[4]
Definition: ErsatzMEt.h:199
double tag_hcalIso_[4]
Definition: ErsatzMEt.h:163
double tag_pt_[4]
Definition: ErsatzMEt.h:156
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double probe_pt_[4]
Definition: ErsatzMEt.h:167
double ErsatzV1CaloMEt_[4]
Definition: ErsatzMEt.h:176
double energy() const
cluster energy
Definition: CaloCluster.h:126
double Z_rescPhi_[4]
Definition: ErsatzMEt.h:174
double McElec_rescEta_[4]
Definition: ErsatzMEt.h:189
double McZ_rescM_
Definition: ErsatzMEt.h:152
double McZ_rescPhi_
Definition: ErsatzMEt.h:152
double CaloMEtphi_
Definition: ErsatzMEt.h:149
double ErsatzV3_Mesc_[4]
Definition: ErsatzMEt.h:185
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
double McZ_phi_
Definition: ErsatzMEt.h:151
edm::ESHandle< CaloGeometry > geoHandle_
Definition: ErsatzMEt.h:143
edm::EDGetTokenT< reco::PFMETCollection > PfMEtCollection_
Definition: ErsatzMEt.h:123
double probe_hoe_[4]
Definition: ErsatzMEt.h:172
#define nEntries_arr_
double ErsatzV1_Mesc_[4]
Definition: ErsatzMEt.h:183
double ErsatzV1TcMEt_[4]
Definition: ErsatzMEt.h:182
double ErsatzV3CaloMEt_[4]
Definition: ErsatzMEt.h:178
double McZ_eta_
Definition: ErsatzMEt.h:151
double tag_rescPt_[4]
Definition: ErsatzMEt.h:161
double rawEnergy() const
raw uncorrected energy (sum of energies of component BasicClusters)
Definition: SuperCluster.h:47
double probe_e2x5Max_[4]
Definition: ErsatzMEt.h:171
std::vector< reco::CaloMET > CaloMETCollection
collection of CaloMET objects
double tag_eop_[4]
Definition: ErsatzMEt.h:165
double probe_rescPt_[4]
Definition: ErsatzMEt.h:168
T const * product() const
Definition: Handle.h:74
edm::EDGetTokenT< edm::TriggerResults > TriggerResults_
Definition: ErsatzMEt.h:126
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:22
size_t clustersSize() const
number of BasicCluster constituents
Definition: SuperCluster.h:87
double tag_dPhiIn_[4]
Definition: ErsatzMEt.h:162
double ErsatzV4CaloMEtPhi_[4]
Definition: ErsatzMEt.h:179
int iComb_
Definition: ErsatzMEt.h:201
int McElec_nFinal_
Definition: ErsatzMEt.h:150
double tag_e2x5Max_[4]
Definition: ErsatzMEt.h:164
double Z_phi_[4]
Definition: ErsatzMEt.h:173
double probe_sc_phi_[4]
Definition: ErsatzMEt.h:195
double ErsatzV4CaloMt_[4]
Definition: ErsatzMEt.h:179
edm::EDGetTokenT< reco::SuperClusterCollection > HybridScCollection_
Definition: ErsatzMEt.h:118
double probe_sIhIh_[4]
Definition: ErsatzMEt.h:169
edm::EDGetTokenT< reco::GsfElectronCollection > ElectronCollection_
Definition: ErsatzMEt.h:117
double ErsatzV1T1MEtPhi_[4]
Definition: ErsatzMEt.h:180
double tag_sIhIh_[4]
Definition: ErsatzMEt.h:162
int tag_q_[4]
Definition: ErsatzMEt.h:155
edm::EDGetTokenT< reco::GenParticleCollection > MCTruthCollection_
Definition: ErsatzMEt.h:116
double ErsatzV4_Mesc_[4]
Definition: ErsatzMEt.h:186
double probe_pout_[4]
Definition: ErsatzMEt.h:172
edm::EDGetTokenT< reco::CaloMETCollection > CaloMEtCollection_
Definition: ErsatzMEt.h:121
double ErsatzV3CaloMEtPhi_[4]
Definition: ErsatzMEt.h:178
double ErsatzV2_Mesc_[4]
Definition: ErsatzMEt.h:184
double tag_trckIso_[4]
Definition: ErsatzMEt.h:163
std::vector< reco::PFMET > PFMETCollection
collection of PFMET objects
T get() const
Definition: EventSetup.h:71
edm::EDGetTokenT< reco::SuperClusterCollection > M5x5ScCollection_
Definition: ErsatzMEt.h:119
double McZ_rescPt_
Definition: ErsatzMEt.h:152
double probe_pin_[4]
Definition: ErsatzMEt.h:172
double McZ_m_
Definition: ErsatzMEt.h:151
double ErsatzV1TcMEtPhi_[4]
Definition: ErsatzMEt.h:182
reco::MET ersatzFabrik(const reco::GsfElectronRef &, const reco::SuperCluster &, const reco::MET &, const int)
Definition: ErsatzMEt.cc:653
double ErsatzV1T1MEt_[4]
Definition: ErsatzMEt.h:180
double McElecProbe_dPhi_[4]
Definition: ErsatzMEt.h:192
double probe_scV3_E_[4]
Definition: ErsatzMEt.h:198
double tag_e1x5Max_[4]
Definition: ErsatzMEt.h:164
double tag_pout_[4]
Definition: ErsatzMEt.h:165
double McElec_phi_[4]
Definition: ErsatzMEt.h:188
edm::EDGetTokenT< reco::METCollection > TcMEtCollection_
Definition: ErsatzMEt.h:124
double phi() const
azimuthal angle of cluster centroid
Definition: CaloCluster.h:171
double ErsatzV2CaloMEtPhi_[4]
Definition: ErsatzMEt.h:177
std::map< reco::GsfElectronRef, reco::GsfElectronRef > probeFinder(const std::vector< reco::GsfElectronRef > &, const edm::Handle< reco::GsfElectronCollection >)
Definition: ErsatzMEt.cc:618
TTree * t_
Definition: ErsatzMEt.h:146
double McElec_rescPhi_[4]
Definition: ErsatzMEt.h:189
virtual size_type numberOfDaughters() const =0
number of daughters
double Z_rescM_[4]
Definition: ErsatzMEt.h:174
double ErsatzV1CaloMt_[4]
Definition: ErsatzMEt.h:176
double McElec_pt_[4]
Definition: ErsatzMEt.h:188
double phi() const final
momentum azimuthal angle
double probe_e5x5_[4]
Definition: ErsatzMEt.h:171
double ErsatzV1CaloMEtPhi_[4]
Definition: ErsatzMEt.h:176
double ErsatzV2CaloMt_[4]
Definition: ErsatzMEt.h:177
double probe_rescPhi_[4]
Definition: ErsatzMEt.h:168
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:256
double mW_
Definition: ErsatzMEt.h:130
double ErsatzV1T1Mt_[4]
Definition: ErsatzMEt.h:180
double CaloMEt_
Definition: ErsatzMEt.h:148
edm::ESHandle< CaloTopology > pTopology_
Definition: ErsatzMEt.h:144
double McProbe_rescPhi_[4]
Definition: ErsatzMEt.h:191
double McProbe_phi_[4]
Definition: ErsatzMEt.h:190
double Z_probe_dPhi_[4]
Definition: ErsatzMEt.h:175
double probe_hcalIso_[4]
Definition: ErsatzMEt.h:170
double ErsatzV1_rescMesc_[4]
Definition: ErsatzMEt.h:183
int probe_q_[4]
Definition: ErsatzMEt.h:166
double probe_eop_[4]
Definition: ErsatzMEt.h:172
double TcMEtphi_
Definition: ErsatzMEt.h:149
void ErsatzMEt::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 73 of file ErsatzMEt.cc.

References CaloMEt_, CaloMEtphi_, ErsatzV1_Mesc_, ErsatzV1_rescMesc_, ErsatzV1CaloMEt_, ErsatzV1CaloMEtPhi_, ErsatzV1CaloMt_, ErsatzV1PfMEt_, ErsatzV1PfMt_, ErsatzV1T1MEt_, ErsatzV1T1MEtPhi_, ErsatzV1T1Mt_, ErsatzV1TcMEt_, ErsatzV1TcMEtPhi_, ErsatzV1TcMt_, ErsatzV2CaloMEt_, ErsatzV2CaloMEtPhi_, ErsatzV2CaloMt_, ErsatzV3CaloMEt_, ErsatzV3CaloMEtPhi_, ErsatzV3CaloMt_, ErsatzV4CaloMEt_, ErsatzV4CaloMEtPhi_, ErsatzV4CaloMt_, TFileService::make(), McElec_eta_, McElec_nFinal_, McElec_nZmum_, McElec_phi_, McElec_pt_, McElec_rescEta_, McElec_rescPhi_, McElec_rescPt_, McElecProbe_dEta_, McElecProbe_dPhi_, McElecProbe_dR_, McProbe_eta_, McProbe_phi_, McProbe_pt_, McProbe_rescEta_, McProbe_rescPhi_, McProbe_rescPt_, McZ_eta_, McZ_m_, McZ_phi_, McZ_pt_, McZ_rescEta_, McZ_rescM_, McZ_rescPhi_, McZ_rescPt_, McZ_rescY_, McZ_y_, nProbes_, nTags_, PfMEt_, PfMEtphi_, probe_d_MCE_SCE_, probe_dEtaIn_, probe_dPhiIn_, probe_e1x5Max_, probe_e2x5Max_, probe_e5x5_, probe_ecalIso_, probe_eop_, probe_eta_, probe_hcalIso_, probe_hoe_, probe_phi_, probe_pin_, probe_pout_, probe_pt_, probe_q_, probe_rescEta_, probe_rescPhi_, probe_rescPt_, probe_sc_E_, probe_sc_eta_, probe_sc_nClus_, probe_sc_phi_, probe_sc_pt_, probe_sc_rawE_, probe_scV2_E_, probe_scV3_E_, probe_scV4_E_, probe_sIhIh_, probe_trckIso_, T1MEt_, T1MEtphi_, t_, tag_dEtaIn_, tag_dPhiIn_, tag_e1x5Max_, tag_e2x5Max_, tag_e5x5_, tag_ecalIso_, tag_eop_, tag_eta_, tag_hcalIso_, tag_hoe_, tag_phi_, tag_pin_, tag_pout_, tag_pt_, tag_q_, tag_rescEta_, tag_rescPhi_, tag_rescPt_, tag_sIhIh_, tag_trckIso_, TcMEt_, TcMEtphi_, Z_eta_, Z_m_, Z_phi_, Z_probe_dPhi_, Z_pt_, Z_rescEta_, Z_rescM_, Z_rescPhi_, Z_rescPt_, Z_rescY_, Z_y_, and Zevent_.

74 {
76 
77  t_ = fs->make<TTree>("ErsatzMEt", "Data on ErsatzMEt");
78 
79  edm::LogDebug_("","", 75)<<"Creating Ersatz MEt branches.";
80 
81  t_->Branch("nTags", &nTags_, "nTags/I");
82  t_->Branch("nProbes", &nProbes_, "nProbes/I");
83 
84  t_->Branch("ErsatzV1CaloMEt", ErsatzV1CaloMEt_, "ErsatzV1CaloMEt[4]/D");
85  t_->Branch("ErsatzV1CaloMt", ErsatzV1CaloMt_, "ErsatzV1CaloMt[4]/D");
86  t_->Branch("ErsatzV1CaloMEtPhi", ErsatzV1CaloMEtPhi_, "ErsatzV1CaloMEtPhi[4]/D");
87  t_->Branch("ErsatzV2CaloMEt", ErsatzV2CaloMEt_, "ErsatzV2CaloMEt[4]/D");
88  t_->Branch("ErsatzV2CaloMEtPhi", ErsatzV2CaloMEtPhi_, "ErsatzV2CaloMEtPhi[4]/D");
89  t_->Branch("ErsatzV2CaloMt", ErsatzV2CaloMt_, "ErsatzV2CaloMt[4]/D");
90  t_->Branch("ErsatzV3CaloMEt", ErsatzV3CaloMEt_, "ErsatzV3CaloMEt[4]/D");
91  t_->Branch("ErsatzV3CaloMEtPhi", ErsatzV3CaloMEtPhi_, "ErsatzV3CaloMEtPhi[4]/D");
92  t_->Branch("ErsatzV3CaloMt", ErsatzV3CaloMt_, "ErsatzV3CaloMt[4]/D");
93  t_->Branch("ErsatzV4CaloMEt", ErsatzV4CaloMEt_, "ErsatzV4CaloMEt[4]/D");
94  t_->Branch("ErsatzV4CaloMEtPhi", ErsatzV4CaloMEtPhi_, "ErsatzV4CaloMEtPhi[4]/D");
95  t_->Branch("ErsatzV4CaloMt", ErsatzV4CaloMt_, "ErsatzV4CaloMt[4]/D");
96  t_->Branch("ErsatzV1T1MEt", ErsatzV1T1MEt_, "ErsatzV1T1MEt[4]/D");
97  t_->Branch("ErsatzV1T1Mt", ErsatzV1T1Mt_, "ErsatzV1T1Mt[4]/D");
98  t_->Branch("ErsatzV1T1MEtPhi", ErsatzV1T1MEtPhi_, "ErsatzV1T1MEtPhi[4]/D");
99  t_->Branch("ErsatzV1PfMEt", ErsatzV1PfMEt_, "ErsatzV1PfMEt[4]/D");
100  t_->Branch("ErsatzV1PfMt", ErsatzV1PfMt_, "ErsatzV1PfMt[4]/D");
101  t_->Branch("ErsatzV1PfMEtPhi", ErsatzV1TcMEtPhi_, "ErsatzV1PfMEtPhi[4]/D");
102  t_->Branch("ErsatzV1TcMEt", ErsatzV1TcMEt_, "ErsatzV1TcMEt[4]/D");
103  t_->Branch("ErsatzV1TcMt", ErsatzV1TcMt_, "ErsatzV1TcMt[4]/D");
104  t_->Branch("ErsatzV1TcMEtPhi", ErsatzV1TcMEtPhi_, "ErsatzV1TcMEtPhi[4]/D");
105 
106  t_->Branch("CaloMEt", &CaloMEt_, "CaloMEt/D");
107  t_->Branch("CaloMEtphi", &CaloMEtphi_, "CaloMEtphi/D");
108  t_->Branch("T1MEt", &T1MEt_, "T1MEt/D");
109  t_->Branch("T1MEtphi", &T1MEtphi_, "T1MEtphi/D");
110  t_->Branch("PfMEt", &PfMEt_, "PfMEt/D");
111  t_->Branch("PfMEtphi", &PfMEtphi_, "PfMEtphi/D");
112  t_->Branch("TcMEt", &TcMEt_, "TcMEt/D");
113  t_->Branch("TcMEtphi", &TcMEtphi_, "TcMEtphi/D");
114 
115  edm::LogDebug_("","", 91)<<"Creating electron branches.";
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");
120  t_->Branch("tag_sIhIh", tag_sIhIh_, "tag_sIhIh[4]/D");
121  t_->Branch("tag_dPhiIn", tag_dPhiIn_, "tag_dPhiIn[4]/D");
122  t_->Branch("tag_dEtaIn", tag_dEtaIn_, "tag_dEtaIn[4]/D");
123  t_->Branch("tag_trckIso", tag_trckIso_,"tag_trckIso[4]/D");
124  t_->Branch("tag_ecalIso", tag_ecalIso_,"tag_ecalIso[4]/D");
125  t_->Branch("tag_hcalIso", tag_hcalIso_,"tag_hcalIso[4]/D");
126  t_->Branch("tag_e2x5Max", tag_e2x5Max_,"tag_e2x5Max[4]/D");
127  t_->Branch("tag_e1x5Max", tag_e1x5Max_,"tag_e1x5Max[4]/D");
128  t_->Branch("tag_e5x5", tag_e5x5_,"tag_e5x5[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");
132  t_->Branch("tag_pout", tag_pout_,"tag_pout[4]/D");
133  t_->Branch("tag_rescPt", tag_rescPt_, "tag_rescPt[4]/D");
134  t_->Branch("tag_rescEta", tag_rescEta_, "tag_rescEta[4]/D");
135  t_->Branch("tag_rescPhi", tag_rescPhi_, "tag_rescPhi[4]/D");
136 
137  edm::LogDebug_("","", 103)<<"Creating ersatz neutrino branches.";
138  t_->Branch("probe_q", probe_q_,"probe_q[4]/I");
139  t_->Branch("probe_pt", probe_pt_,"probe_pt[4]/D");
140  t_->Branch("probe_eta", probe_eta_,"probe_eta[4]/D");
141  t_->Branch("probe_phi", probe_phi_,"probe_phi[4]/D");
142  t_->Branch("probe_sIhIh", probe_sIhIh_, "probe_sIhIh[4]/D");
143  t_->Branch("probe_dPhiIn", probe_dPhiIn_, "probe_dPhiIn[4]/D");
144  t_->Branch("probe_dEtaIn", probe_dEtaIn_, "probe_dEtaIn[4]/D");
145  t_->Branch("probe_trckIso", probe_trckIso_,"probe_trckIso[4]/D");
146  t_->Branch("probe_ecalIso", probe_ecalIso_,"probe_ecalIso[4]/D");
147  t_->Branch("probe_hcalIso", probe_hcalIso_,"probe_hcalIso[4]/D");
148  t_->Branch("probe_e2x5Max", probe_e2x5Max_,"probe_e2x5Max[4]/D");
149  t_->Branch("probe_e1x5Max", probe_e1x5Max_,"probe_e1x5Max[4]/D");
150  t_->Branch("probe_e5x5", probe_e5x5_,"probe_e5x5[4]/D");
151  t_->Branch("probe_hoe", probe_hoe_,"probe_hoe[4]/D");
152  t_->Branch("probe_eop", probe_eop_,"probe_eop[4]/D");
153  t_->Branch("probe_pin", probe_pin_,"probe_pin[4]/D");
154  t_->Branch("probe_pout", probe_pout_,"probe_pout[4]/D");
155  t_->Branch("probe_rescPt", probe_rescPt_, "probe_rescPt[4]/D");
156  t_->Branch("probe_rescEta", probe_rescEta_, "probe_rescEta[4]/D");
157  t_->Branch("probe_rescPhi", probe_rescPhi_, "probe_rescPhi[4]/D");
158 
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");
166  t_->Branch("Z_rescEta", Z_rescEta_, "Z_rescEta[4]/D");
167  t_->Branch("Z_rescY", Z_rescY_, "Z_rescY[4]/D");
168  t_->Branch("Z_rescPhi", Z_rescPhi_, "Z_rescPhi[4]/D");
169  t_->Branch("Z_probe_dPhi",Z_probe_dPhi_,"Z_probe_dPhi[4]/D");
170 
171  t_->Branch("probe_sc_pt",probe_sc_pt_, "probe_sc_pt[4]/D");
172  t_->Branch("probe_sc_eta",probe_sc_eta_, "probe_sc_eta[4]/D");
173  t_->Branch("probe_sc_phi", probe_sc_phi_, "probe_sc_phi[4]/D");
174  t_->Branch("probe_sc_E",probe_sc_E_, "probe_sc_E[4]/D");
175  t_->Branch("probe_sc_rawE",probe_sc_rawE_, "probe_sc_rawE[4]/D");
176  t_->Branch("probe_sc_nClus", probe_sc_nClus_, "probe_sc_nClus[4]/D");
177  t_->Branch("probe_scV2_E",probe_scV2_E_, "probe_scV2_E[4]/D");
178  t_->Branch("probe_scV3_E",probe_scV3_E_, "probe_scV3_E[4]/D");
179  t_->Branch("probe_scV4_E",probe_scV4_E_, "probe_scV4_E[4]/D");
180  t_->Branch("probe_d_MCE_SCE", probe_d_MCE_SCE_, "probe_d_MCE_SCE[4]/D");
181 
182  t_->Branch("ErsatzV1_Mesc", ErsatzV1_Mesc_, "ErsatzV1_Mesc[4]/D");
183  t_->Branch("ErsatzV1_rescMesc", ErsatzV1_rescMesc_, "ErsatzV1_rescMesc[4]/D");
184 
185  t_->Branch("McElec_nFinal", &McElec_nFinal_, "McElec_nFinal/I");
186 
187  if(Zevent_){
188  t_->Branch("McZ_m", &McZ_m_, "McZ_m/D");
189  t_->Branch("McZ_rescM", &McZ_rescM_, "McZ_rescM/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");
194  t_->Branch("McZ_rescPt", &McZ_rescPt_, "McZ_Pt/D");
195  t_->Branch("McZ_rescY", &McZ_rescY_, "McZ_rescY/D");
196  t_->Branch("McZ_rescEta", &McZ_rescEta_, "McZ_Eta/D");
197  t_->Branch("McZ_rescPhi", &McZ_rescPhi_, "McZ_Phi/D");
198  t_->Branch("McElec_nZmum", &McElec_nZmum_, "McElec_nZmum/I");
199  t_->Branch("McElec_eta", &McElec_eta_, "McElec_eta[4]/D");
200  t_->Branch("McElec_pt", &McElec_pt_, "McElec_pt[4]/D");
201  t_->Branch("McElec_phi", &McElec_phi_, "McElec_phi[4]/D");
202  t_->Branch("McElec_rescEta", &McElec_rescEta_, "McElec_rescEta[4]/D");
203  t_->Branch("McElec_rescPhi", &McElec_rescPhi_, "McElec_rescPhi[4]/D");
204  t_->Branch("McElec_rescPt", &McElec_rescPt_, "McElec_rescPt[4]/D");
205  t_->Branch("McProbe_eta", &McProbe_eta_, "McProbe_eta[4]/D");
206  t_->Branch("McProbe_pt", &McProbe_pt_, "McProbe_pt[4]/D");
207  t_->Branch("McProbe_phi", &McProbe_phi_, "McProbe_phi[4]/D");
208  t_->Branch("McProbe_rescEta", &McProbe_rescEta_, "McProbe_rescEta[4]/D");
209  t_->Branch("McProbe_rescPt", &McProbe_rescPt_, "McProbe_rescPt[4]/D");
210  t_->Branch("McProbe_rescPhi", &McProbe_rescPhi_, "McProbe_rescPhi[4]/D");
211  t_->Branch("McElecProbe_dPhi", &McElecProbe_dPhi_, "McElecProbe_dPhi/D");
212  t_->Branch("McElecProbe_dEta", &McElecProbe_dEta_, "McElecProbe_dEta/D");
213  t_->Branch("McElecProbe_dR", &McElecProbe_dR_, "McElecProbe_dR/D");
214  }
215 
216 }
double probe_trckIso_[4]
Definition: ErsatzMEt.h:170
double probe_d_MCE_SCE_[4]
Definition: ErsatzMEt.h:194
double tag_rescEta_[4]
Definition: ErsatzMEt.h:161
double McZ_pt_
Definition: ErsatzMEt.h:151
double McProbe_eta_[4]
Definition: ErsatzMEt.h:190
double probe_dPhiIn_[4]
Definition: ErsatzMEt.h:169
double probe_sc_rawE_[4]
Definition: ErsatzMEt.h:196
double tag_eta_[4]
Definition: ErsatzMEt.h:156
double tag_ecalIso_[4]
Definition: ErsatzMEt.h:163
double probe_rescEta_[4]
Definition: ErsatzMEt.h:168
double McElec_eta_[4]
Definition: ErsatzMEt.h:188
double ErsatzV3CaloMt_[4]
Definition: ErsatzMEt.h:178
double tag_hoe_[4]
Definition: ErsatzMEt.h:165
double probe_sc_pt_[4]
Definition: ErsatzMEt.h:195
double tag_e5x5_[4]
Definition: ErsatzMEt.h:164
double Z_rescPt_[4]
Definition: ErsatzMEt.h:174
double probe_scV2_E_[4]
Definition: ErsatzMEt.h:197
double tag_dEtaIn_[4]
Definition: ErsatzMEt.h:162
double Z_pt_[4]
Definition: ErsatzMEt.h:173
double ErsatzV1PfMt_[4]
Definition: ErsatzMEt.h:181
double probe_sc_nClus_[4]
Definition: ErsatzMEt.h:196
double Z_rescY_[4]
Definition: ErsatzMEt.h:174
double ErsatzV1TcMt_[4]
Definition: ErsatzMEt.h:182
double tag_phi_[4]
Definition: ErsatzMEt.h:156
double McProbe_pt_[4]
Definition: ErsatzMEt.h:190
double Z_rescEta_[4]
Definition: ErsatzMEt.h:174
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
double McProbe_rescEta_[4]
Definition: ErsatzMEt.h:191
double McElecProbe_dEta_[4]
Definition: ErsatzMEt.h:192
double probe_e1x5Max_[4]
Definition: ErsatzMEt.h:171
double tag_pin_[4]
Definition: ErsatzMEt.h:165
double ErsatzV1PfMEt_[4]
Definition: ErsatzMEt.h:181
bool Zevent_
Definition: ErsatzMEt.h:139
double McZ_rescY_
Definition: ErsatzMEt.h:152
double Z_m_[4]
Definition: ErsatzMEt.h:173
double probe_sc_E_[4]
Definition: ErsatzMEt.h:196
double ErsatzV4CaloMEt_[4]
Definition: ErsatzMEt.h:179
double Z_eta_[4]
Definition: ErsatzMEt.h:173
double T1MEt_
Definition: ErsatzMEt.h:148
double McElecProbe_dR_[4]
Definition: ErsatzMEt.h:192
double Z_y_[4]
Definition: ErsatzMEt.h:173
double ErsatzV2CaloMEt_[4]
Definition: ErsatzMEt.h:177
double TcMEt_
Definition: ErsatzMEt.h:148
double probe_phi_[4]
Definition: ErsatzMEt.h:167
double probe_eta_[4]
Definition: ErsatzMEt.h:167
double probe_sc_eta_[4]
Definition: ErsatzMEt.h:195
int McElec_nZmum_
Definition: ErsatzMEt.h:150
int nProbes_
Definition: ErsatzMEt.h:147
double McZ_y_
Definition: ErsatzMEt.h:151
double T1MEtphi_
Definition: ErsatzMEt.h:149
double McElec_rescPt_[4]
Definition: ErsatzMEt.h:189
double PfMEt_
Definition: ErsatzMEt.h:148
double probe_ecalIso_[4]
Definition: ErsatzMEt.h:170
int nTags_
Definition: ErsatzMEt.h:147
double McProbe_rescPt_[4]
Definition: ErsatzMEt.h:191
double probe_dEtaIn_[4]
Definition: ErsatzMEt.h:169
double tag_rescPhi_[4]
Definition: ErsatzMEt.h:161
double McZ_rescEta_
Definition: ErsatzMEt.h:152
double PfMEtphi_
Definition: ErsatzMEt.h:149
double probe_scV4_E_[4]
Definition: ErsatzMEt.h:199
double tag_hcalIso_[4]
Definition: ErsatzMEt.h:163
double tag_pt_[4]
Definition: ErsatzMEt.h:156
double probe_pt_[4]
Definition: ErsatzMEt.h:167
double ErsatzV1CaloMEt_[4]
Definition: ErsatzMEt.h:176
double Z_rescPhi_[4]
Definition: ErsatzMEt.h:174
double McElec_rescEta_[4]
Definition: ErsatzMEt.h:189
double McZ_rescM_
Definition: ErsatzMEt.h:152
double McZ_rescPhi_
Definition: ErsatzMEt.h:152
double CaloMEtphi_
Definition: ErsatzMEt.h:149
double McZ_phi_
Definition: ErsatzMEt.h:151
double probe_hoe_[4]
Definition: ErsatzMEt.h:172
double ErsatzV1_Mesc_[4]
Definition: ErsatzMEt.h:183
double ErsatzV1TcMEt_[4]
Definition: ErsatzMEt.h:182
double ErsatzV3CaloMEt_[4]
Definition: ErsatzMEt.h:178
double McZ_eta_
Definition: ErsatzMEt.h:151
double tag_rescPt_[4]
Definition: ErsatzMEt.h:161
double probe_e2x5Max_[4]
Definition: ErsatzMEt.h:171
double tag_eop_[4]
Definition: ErsatzMEt.h:165
double probe_rescPt_[4]
Definition: ErsatzMEt.h:168
double tag_dPhiIn_[4]
Definition: ErsatzMEt.h:162
double ErsatzV4CaloMEtPhi_[4]
Definition: ErsatzMEt.h:179
int McElec_nFinal_
Definition: ErsatzMEt.h:150
double tag_e2x5Max_[4]
Definition: ErsatzMEt.h:164
double Z_phi_[4]
Definition: ErsatzMEt.h:173
double probe_sc_phi_[4]
Definition: ErsatzMEt.h:195
double ErsatzV4CaloMt_[4]
Definition: ErsatzMEt.h:179
double probe_sIhIh_[4]
Definition: ErsatzMEt.h:169
double ErsatzV1T1MEtPhi_[4]
Definition: ErsatzMEt.h:180
double tag_sIhIh_[4]
Definition: ErsatzMEt.h:162
int tag_q_[4]
Definition: ErsatzMEt.h:155
double probe_pout_[4]
Definition: ErsatzMEt.h:172
double ErsatzV3CaloMEtPhi_[4]
Definition: ErsatzMEt.h:178
double tag_trckIso_[4]
Definition: ErsatzMEt.h:163
double McZ_rescPt_
Definition: ErsatzMEt.h:152
double probe_pin_[4]
Definition: ErsatzMEt.h:172
double McZ_m_
Definition: ErsatzMEt.h:151
double ErsatzV1TcMEtPhi_[4]
Definition: ErsatzMEt.h:182
double ErsatzV1T1MEt_[4]
Definition: ErsatzMEt.h:180
double McElecProbe_dPhi_[4]
Definition: ErsatzMEt.h:192
double probe_scV3_E_[4]
Definition: ErsatzMEt.h:198
double tag_e1x5Max_[4]
Definition: ErsatzMEt.h:164
double tag_pout_[4]
Definition: ErsatzMEt.h:165
double McElec_phi_[4]
Definition: ErsatzMEt.h:188
double ErsatzV2CaloMEtPhi_[4]
Definition: ErsatzMEt.h:177
TTree * t_
Definition: ErsatzMEt.h:146
double McElec_rescPhi_[4]
Definition: ErsatzMEt.h:189
double Z_rescM_[4]
Definition: ErsatzMEt.h:174
double ErsatzV1CaloMt_[4]
Definition: ErsatzMEt.h:176
double McElec_pt_[4]
Definition: ErsatzMEt.h:188
double probe_e5x5_[4]
Definition: ErsatzMEt.h:171
double ErsatzV1CaloMEtPhi_[4]
Definition: ErsatzMEt.h:176
double ErsatzV2CaloMt_[4]
Definition: ErsatzMEt.h:177
double probe_rescPhi_[4]
Definition: ErsatzMEt.h:168
double ErsatzV1T1Mt_[4]
Definition: ErsatzMEt.h:180
double CaloMEt_
Definition: ErsatzMEt.h:148
double McProbe_rescPhi_[4]
Definition: ErsatzMEt.h:191
double McProbe_phi_[4]
Definition: ErsatzMEt.h:190
double Z_probe_dPhi_[4]
Definition: ErsatzMEt.h:175
double probe_hcalIso_[4]
Definition: ErsatzMEt.h:170
double ErsatzV1_rescMesc_[4]
Definition: ErsatzMEt.h:183
int probe_q_[4]
Definition: ErsatzMEt.h:166
double probe_eop_[4]
Definition: ErsatzMEt.h:172
double TcMEtphi_
Definition: ErsatzMEt.h:149
void ErsatzMEt::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 878 of file ErsatzMEt.cc.

References DEFINE_FWK_MODULE.

878  {
879 }
reco::MET ErsatzMEt::ersatzFabrik ( const reco::GsfElectronRef elec,
const reco::SuperCluster sc,
const reco::MET met,
const int  corr 
)
private

Definition at line 653 of file ErsatzMEt.cc.

References funct::cos(), reco::deltaPhi(), ErsatzV1_Mesc_, ErsatzV1_rescMesc_, ErsatzV1CaloMt_, ErsatzV2_Mesc_, ErsatzV2_rescMesc_, ErsatzV2CaloMt_, ErsatzV3_Mesc_, ErsatzV3_rescMesc_, ErsatzV3CaloMt_, ErsatzV4_Mesc_, ErsatzV4_rescMesc_, ErsatzV4CaloMt_, iComb_, reco::tau::disc::InvariantMass(), mW_, mZ_, reco::LeafCandidate::p4(), PhysicsVectorRaw(), SimDataFormats::CaloAnalysis::sc, mathSSE::sqrt(), and reco::LeafCandidate::vertex().

Referenced by analyze().

657 {
658  const math::XYZPoint ZVertex(elec->TrackPositionAtVtx().X(), elec->TrackPositionAtVtx().Y(),elec->TrackPositionAtVtx().Z());
659 
660  math::XYZTLorentzVector nu, boost_nu, ele, boost_ele;
661  reco::SuperCluster elecSc = *(elec->superCluster());
662  nu = PhysicsVectorRaw(met.vertex(), sc);
663  boost_nu = PhysicsVectorRaw(ZVertex, sc);
664  ele = PhysicsVectorRaw(met.vertex(), elecSc);
665  boost_ele = ele;
666 
667  //Should use reco vertex for best Z->ee measurement.
668  edm::LogDebug_("ersatzFabrikV1", "", 569)<<"elec = ("<< elec->p4().Px() << ", "<< elec->p4().Py()<< ", "<< elec->p4().Pz() << ", "<< elec->p4().E()<<")";
669  math::XYZTLorentzVector Zboson = boost_nu + elec->p4();
670  edm::LogDebug_("ersatzFabrikV1", "", 569)<<"Z pt = "<< Zboson.Pt() << "Z boson mass = " << Zboson.M();
671  edm::LogDebug_("ersatzFabrikV1","", 570)<<"Z boson in lab frame = ("<<Zboson.Px()<<", "<<Zboson.Py()<<", "
672  <<Zboson.Pz()<<", "<<Zboson.E()<<")";
673  math::XYZTLorentzVector RescZboson(Zboson.Px(), Zboson.Py(), Zboson.Pz(), sqrt(Zboson.P2()+(mW_*mW_*Zboson.M2())/(mZ_*mZ_)));
674  edm::LogDebug_("ersatzFabrikV1","", 573)<<"W boson in lab frame = ("<<RescZboson.Px()<<", "<<RescZboson.Py()<<", "
675  <<RescZboson.Pz()<<", "<<RescZboson.E()<<")";
676  ROOT::Math::Boost BoostToZRestFrame(Zboson.BoostToCM());
677  edm::LogDebug_("ersatzFabrikV1","", 576)<<"Electron in lab frame = ("<< boost_ele.Px()<<", "<< boost_ele.Py()<<", "
678  << boost_ele.Pz()<<", "<< boost_ele.E()<<")";
679  edm::LogDebug_("ersatzFabrikV1","", 578)<<"Ersatz Neutrino in lab frame = ("<< boost_nu.Px()<<", "<< boost_nu.Py()<<", "
680  << boost_nu.Pz()<<", "<< boost_nu.E()<<")";
681  boost_ele = BoostToZRestFrame(boost_ele);
682  boost_nu = BoostToZRestFrame(boost_nu);
683  edm::LogDebug_("ersatzFabrikV1","", 582)<<"Electron in Z rest frame = ("<<boost_ele.Px()<<", "<<boost_ele.Py()<<", "
684  <<boost_ele.Pz()<<", "<<boost_ele.E()<<")";
685  edm::LogDebug_("ersatzFabrikV1","", 584)<<"Ersatz Neutrino in Z rest frame = ("<<boost_nu.Px()<<", "<<boost_nu.Py()<<", "
686  <<boost_nu.Pz()<<", "<<boost_nu.E()<<")";
687  boost_ele *= mW_/mZ_;
688  boost_nu *= mW_/mZ_;
689 
690  double E_W = RescZboson.E();
691  ROOT::Math::Boost BackToLab(RescZboson.Px()/E_W, RescZboson.Py()/E_W, RescZboson.Pz()/E_W);
692  math::XYZTLorentzVector metVec(-99999., -99999., -99., -99999.);
693  boost_ele = BackToLab(boost_ele);
694 
695  boost_nu = BackToLab(boost_nu);
696  math::XYZTLorentzVector sum = boost_nu+boost_ele;
697  edm::LogDebug_("ersatzFabrikV1","", 597)<<"Electron back in lab frame = ("<<boost_ele.Px()<<", "<<boost_ele.Py()<<", "
698  <<boost_ele.Pz()<<", "<<boost_ele.E()<<")";
699  edm::LogDebug_("ersatzFabrikV1","", 599)<<"Ersatz Neutrino back in lab frame = ("<<boost_nu.Px()<<", "<<boost_nu.Py()<<", "
700  <<boost_nu.Pz()<<", "<<boost_nu.E()<<")";
701  edm::LogDebug_("ersatzFabrikV1","", 601)<<"boost_ele + boost_nu = ("<<sum.Px()<<", "<<sum.Py()<<", "
702  <<sum.Pz()<<", "<<sum.E()<<")";
703 
704  nu.SetXYZT(nu.X(), nu.Y(), 0., nu.T());
705  ele.SetXYZT(ele.X(), ele.Y(), 0., ele.T());
706  boost_ele.SetXYZT(boost_ele.X(), boost_ele.Y(), 0., boost_ele.T());
707  metVec = met.p4() + nu + ele - boost_ele;
708 
709  reco::MET ersatzMEt(metVec, met.vertex());
710  if (corr == 1)
711  {
712  //Z_caloV1_m_[iComb_] = Zboson.M();
713  //Z_caloV1_pt_[iComb_] = Zboson.Pt();
714  //Z_caloV1_y_[iComb_] = Zboson.Y();
715  //Z_caloV1_eta_[iComb_] = Zboson.Eta();
716  //Z_caloV1_phi_[iComb_] = Zboson.Phi();
717  //Z_caloV1_rescM_[iComb_] = RescZboson.M();
718  //Z_caloV1_rescPt_[iComb_] = RescZboson.Pt();
719  //Z_caloV1_rescY_[iComb_] = RescZboson.Y();
720  //Z_caloV1_rescEta_[iComb_] = RescZboson.Eta();
721  //Z_caloV1_rescPhi_[iComb_] = RescZboson.Phi();
722  //Z_caloV1_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), elec->phi());
723  //tag_caloV1_rescPt_[iComb_] = boost_ele.Pt();
724  //tag_caloV1_rescEta_[iComb_] = boost_ele.Eta();
725  //tag_caloV1_rescPhi_[iComb_] = boost_ele.Phi();
726  //probe_caloV1_rescPt_[iComb_] = boost_nu.Pt();
727  //probe_caloV1_rescEta_[iComb_] = boost_nu.Eta();
728  //probe_caloV1_rescPhi_[iComb_] = boost_nu.Phi();
731  ErsatzV1CaloMt_[iComb_] = sqrt(2.*boost_ele.Pt()*ersatzMEt.pt()*
732  (1-cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi()))));
733  }
734  if (corr == 2)
735  {
736  //Z_caloV2_m_[iComb_] = Zboson.M();
737  //Z_caloV2_pt_[iComb_] = Zboson.Pt();
738  //Z_caloV2_y_[iComb_] = Zboson.Y();
739  //Z_caloV2_eta_[iComb_] = Zboson.Eta();
740  //Z_caloV2_phi_[iComb_] = Zboson.Phi();
741  //Z_caloV2_rescM_[iComb_] = RescZboson.M();
742  //Z_caloV2_rescPt_[iComb_] = RescZboson.Pt();
743  //Z_caloV2_rescY_[iComb_] = RescZboson.Y();
744  //Z_caloV2_rescEta_[iComb_] = RescZboson.Eta();
745  //Z_caloV2_rescPhi_[iComb_] = RescZboson.Phi();
746  //Z_caloV2_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec->phi());
747  //tag_caloV2_rescPt_[iComb_] = boost_ele.Pt();
748  //tag_caloV2_rescEta_[iComb_] = boost_ele.Eta();
749  //tag_caloV2_rescPhi_[iComb_] = boost_ele.Phi();
750  //probe_caloV2_rescPt_[iComb_] = boost_nu.Pt();
751  //probe_caloV2_rescEta_[iComb_] = boost_nu.Eta();
752  //probe_caloV2_rescPhi_[iComb_] = boost_nu.Phi();
755  ErsatzV2CaloMt_[iComb_] = sqrt(2.*boost_ele.Pt()*ersatzMEt.pt()*
756  (1-cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi()))));
757  }
758  if (corr == 3)
759  {
760  //Z_caloV3_m_[iComb_] = Zboson.M();
761  //Z_caloV3_pt_[iComb_] = Zboson.Pt();
762  //Z_caloV3_y_[iComb_] = Zboson.Y();
763  //Z_caloV3_eta_[iComb_] = Zboson.Eta();
764  //Z_caloV3_phi_[iComb_] = Zboson.Phi();
765  //Z_caloV3_rescM_[iComb_] = RescZboson.M();
766  //Z_caloV3_rescPt_[iComb_] = RescZboson.Pt();
767  //Z_caloV3_rescY_[iComb_] = RescZboson.Y();
768  //Z_caloV3_rescEta_[iComb_] = RescZboson.Eta();
769  //Z_caloV3_rescPhi_[iComb_] = RescZboson.Phi();
770  //Z_caloV3_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec->phi());
771  //tag_caloV3_rescPt_[iComb_] = boost_ele.Pt();
772  //tag_caloV3_rescEta_[iComb_] = boost_ele.Eta();
773  //tag_caloV3_rescPhi_[iComb_] = boost_ele.Phi();
774  //probe_caloV3_rescPt_[iComb_] = boost_nu.Pt();
775  //probe_caloV3_rescEta_[iComb_] = boost_nu.Eta();
776  //probe_caloV3_rescPhi_[iComb_] = boost_nu.Phi();
779  ErsatzV3CaloMt_[iComb_] = sqrt(2.*boost_ele.Pt()*ersatzMEt.pt()*
780  (1-cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi()))));
781  }
782  if (corr == 4)
783  {
784  //Z_caloV4_m_[iComb_] = Zboson.M();
785  //Z_caloV4_pt_[iComb_] = Zboson.Pt();
786  //Z_caloV4_y_[iComb_] = Zboson.Y();
787  //Z_caloV4_eta_[iComb_] = Zboson.Eta();
788  //Z_caloV4_phi_[iComb_] = Zboson.Phi();
789  //Z_caloV4_rescM_[iComb_] = RescZboson.M();
790  //Z_caloV4_rescPt_[iComb_] = RescZboson.Pt();
791  //Z_caloV4_rescY_[iComb_] = RescZboson.Y();
792  //Z_caloV4_rescEta_[iComb_] = RescZboson.Eta();
793  //Z_caloV4_rescPhi_[iComb_] = RescZboson.Phi();
794  //Z_caloV4_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec->phi());
795  //tag_caloV4_rescPt_[iComb_] = boost_ele.Pt();
796  //tag_caloV4_rescEta_[iComb_] = boost_ele.Eta();
797  //tag_caloV4_rescPhi_[iComb_] = boost_ele.Phi();
798  //probe_caloV4_rescPt_[iComb_] = boost_nu.Pt();
799  //probe_caloV4_rescEta_[iComb_] = boost_nu.Eta();
800  //probe_caloV4_rescPhi_[iComb_] = boost_nu.Phi();
803  ErsatzV4CaloMt_[iComb_] = sqrt(2.*boost_ele.Pt()*ersatzMEt.pt()*
804  (1-cos(reco::deltaPhi(boost_ele.Phi(), ersatzMEt.phi()))));
805  }
806  return ersatzMEt;
807 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
double mZ_
Definition: ErsatzMEt.h:130
double ErsatzV3CaloMt_[4]
Definition: ErsatzMEt.h:178
double ErsatzV3_rescMesc_[4]
Definition: ErsatzMEt.h:185
double ErsatzV4_rescMesc_[4]
Definition: ErsatzMEt.h:186
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double ErsatzV2_rescMesc_[4]
Definition: ErsatzMEt.h:184
Definition: MET.h:42
T sqrt(T t)
Definition: SSEVec.h:18
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
const Point & vertex() const override
vertex position (overwritten by PF...)
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
double ErsatzV3_Mesc_[4]
Definition: ErsatzMEt.h:185
math::XYZTLorentzVector PhysicsVectorRaw(const math::XYZPoint &vertex, const reco::SuperCluster &sc)
Definition: CaloVectors.h:37
JetCorrectorParameters corr
Definition: classes.h:5
double ErsatzV1_Mesc_[4]
Definition: ErsatzMEt.h:183
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
int iComb_
Definition: ErsatzMEt.h:201
double ErsatzV4CaloMt_[4]
Definition: ErsatzMEt.h:179
double ErsatzV4_Mesc_[4]
Definition: ErsatzMEt.h:186
double ErsatzV2_Mesc_[4]
Definition: ErsatzMEt.h:184
double ErsatzV1CaloMt_[4]
Definition: ErsatzMEt.h:176
double ErsatzV2CaloMt_[4]
Definition: ErsatzMEt.h:177
double mW_
Definition: ErsatzMEt.h:130
double ErsatzV1_rescMesc_[4]
Definition: ErsatzMEt.h:183
reco::MET ErsatzMEt::ersatzFabrik ( const reco::GsfElectronRef tag,
const reco::GsfElectronRef probe,
const reco::MET met 
)
private

Definition at line 809 of file ErsatzMEt.cc.

References reco::deltaPhi(), iComb_, mW_, mZ_, reco::LeafCandidate::p4(), probe_rescEta_, probe_rescPhi_, probe_rescPt_, mathSSE::sqrt(), tag_rescEta_, tag_rescPhi_, tag_rescPt_, reco::LeafCandidate::vertex(), Z_eta_, Z_m_, Z_phi_, Z_probe_dPhi_, Z_pt_, Z_rescEta_, Z_rescM_, Z_rescPhi_, Z_rescPt_, Z_rescY_, and Z_y_.

812 {
813  math::XYZTLorentzVector elec, nu, boost_elec, boost_nu;
814  boost_elec = tag->p4();
815  edm::LogDebug_("ersatzFabrikV1", "", 858)<<"boost_elec = ("<< boost_elec.Px() << ", "<< boost_elec.Py()<< ", "<< boost_elec.Pz() << ", "<< boost_elec.E()<<")";
816  boost_nu = probe->p4();
817  edm::LogDebug_("ersatzFabrikV1", "", 860)<<"boost_nu = ("<< boost_nu.Px() << ", "<< boost_nu.Py()<< ", "<< boost_nu.Pz() << ", "<< boost_nu.E()<<")";
818  math::XYZTLorentzVector Zboson = boost_elec + boost_nu;
819  edm::LogDebug_("ersatzFabrikV1", "", 862)<<"Zboson = ("<< Zboson.Px() << ", "<< Zboson.Py()<< ", "<< Zboson.Pz() << ", "<< Zboson.E()<<")";
820  math::XYZTLorentzVector RescZboson(Zboson.Px(), Zboson.Py(), Zboson.Pz(), sqrt(Zboson.P2()+(mW_*mW_*Zboson.M2())/(mZ_*mZ_)));
821  edm::LogDebug_("ersatzFabrikV1", "", 864)<<"RescZboson = ("<< RescZboson.Px() << ", "<< RescZboson.Py()<< ", "<< RescZboson.Pz() << ", "<< RescZboson.E()<<")";
822  ROOT::Math::Boost BoostToZRestFrame(Zboson.BoostToCM());
823  elec = BoostToZRestFrame(boost_elec);
824  edm::LogDebug_("ersatzFabrikV1", "", 867)<<"boost_elec (in Z rest frame) = ("<< elec.Px() << ", "<< elec.Py()<< ", "<< elec.Pz() << ", "<< elec.E()<<")";
825  nu = BoostToZRestFrame(boost_nu);
826  edm::LogDebug_("ersatzFabrikV1", "", 869)<<"boost_nu (in Z rest frame) = ("<< nu.Px() << ", "<< nu.Py()<< ", "<< nu.Pz() << ", "<< nu.E()<<")";
827  elec *= mW_/mZ_;
828  edm::LogDebug_("ersatzFabrikV1", "", 871)<<"elec (in Z rest frame) = ("<< elec.Px() << ", "<< elec.Py()<< ", "<< elec.Pz() << ", "<< elec.E()<<")";
829  nu *= mW_/mZ_;
830  edm::LogDebug_("ersatzFabrikV1", "", 873)<<"nu (in Z rest frame) = ("<< nu.Px() << ", "<< nu.Py()<< ", "<< nu.Pz() << ", "<< nu.E()<<")";
831  ROOT::Math::Boost BoostBackToLab(RescZboson.Px()/RescZboson.E(), RescZboson.Py()/RescZboson.E(), RescZboson.Pz()/RescZboson.E());
832  math::XYZTLorentzVector metVec(-99999., -99999., -99., -99999.);
833  elec = BoostBackToLab(elec);
834  edm::LogDebug_("ersatzFabrikV1", "", 877)<<"elec = ("<< elec.Px() << ", "<< elec.Py()<< ", "<< elec.Pz() << ", "<< elec.E()<<")";
835  nu = BoostBackToLab(nu);
836  edm::LogDebug_("ersatzFabrikV1", "", 879)<<"nu = ("<< nu.Px() << ", "<< nu.Py()<< ", "<< nu.Pz() << ", "<< nu.E()<<")";
837  Z_m_[iComb_] = Zboson.M();
838  Z_pt_[iComb_] = Zboson.Pt();
839  Z_y_[iComb_] = Zboson.Y();
840  Z_eta_[iComb_] = Zboson.Eta();
841  Z_phi_[iComb_] = Zboson.Phi();
842  Z_rescM_[iComb_] = RescZboson.M();
843  Z_rescPt_[iComb_] = RescZboson.Pt();
844  Z_rescY_[iComb_] = RescZboson.Y();
845  Z_rescEta_[iComb_] = RescZboson.Eta();
846  Z_rescPhi_[iComb_] = RescZboson.Phi();
847  Z_probe_dPhi_[iComb_] = reco::deltaPhi(Zboson.Phi(), boost_elec.phi());
848  tag_rescPt_[iComb_] = elec.Pt();
849  tag_rescEta_[iComb_] = elec.Eta();
850  tag_rescPhi_[iComb_] = elec.Phi();
851  probe_rescPt_[iComb_] = nu.Pt();
852  probe_rescEta_[iComb_] = nu.Eta();
853  probe_rescPhi_[iComb_] = nu.Phi();
854  elec.SetXYZT(elec.X(), elec.Y(), 0., elec.T());
855  nu.SetXYZT(nu.X(), nu.Y(), 0., nu.T());
856  boost_elec.SetXYZT(boost_elec.X(), boost_elec.Y(), 0., boost_elec.T());
857  metVec = met.p4() + nu + elec - boost_elec;
858  reco::MET ersatzMEt(metVec, met.vertex());
859  return ersatzMEt;
860 }
constexpr double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
double tag_rescEta_[4]
Definition: ErsatzMEt.h:161
double mZ_
Definition: ErsatzMEt.h:130
double probe_rescEta_[4]
Definition: ErsatzMEt.h:168
double Z_rescPt_[4]
Definition: ErsatzMEt.h:174
double Z_pt_[4]
Definition: ErsatzMEt.h:173
double Z_rescY_[4]
Definition: ErsatzMEt.h:174
double Z_rescEta_[4]
Definition: ErsatzMEt.h:174
double Z_m_[4]
Definition: ErsatzMEt.h:173
double Z_eta_[4]
Definition: ErsatzMEt.h:173
double Z_y_[4]
Definition: ErsatzMEt.h:173
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
Definition: MET.h:42
T sqrt(T t)
Definition: SSEVec.h:18
double tag_rescPhi_[4]
Definition: ErsatzMEt.h:161
const Point & vertex() const override
vertex position (overwritten by PF...)
const LorentzVector & p4() const final
four-momentum Lorentz vector
Definition: LeafCandidate.h:99
double Z_rescPhi_[4]
Definition: ErsatzMEt.h:174
double tag_rescPt_[4]
Definition: ErsatzMEt.h:161
double probe_rescPt_[4]
Definition: ErsatzMEt.h:168
int iComb_
Definition: ErsatzMEt.h:201
double Z_phi_[4]
Definition: ErsatzMEt.h:173
double Z_rescM_[4]
Definition: ErsatzMEt.h:174
double probe_rescPhi_[4]
Definition: ErsatzMEt.h:168
double mW_
Definition: ErsatzMEt.h:130
double Z_probe_dPhi_[4]
Definition: ErsatzMEt.h:175
bool ErsatzMEt::isInBarrel ( double  eta)
private

Definition at line 862 of file ErsatzMEt.cc.

References BarrelEtaMax_.

Referenced by isInFiducial().

863 {
864  return (fabs(eta) < BarrelEtaMax_);
865 }
double BarrelEtaMax_
Definition: ErsatzMEt.h:131
bool ErsatzMEt::isInEndCap ( double  eta)
private

Definition at line 867 of file ErsatzMEt.cc.

References EndCapEtaMax_, and EndCapEtaMin_.

Referenced by isInFiducial().

868 {
869  return (fabs(eta) < EndCapEtaMax_ && fabs(eta) > EndCapEtaMin_);
870 }
double EndCapEtaMin_
Definition: ErsatzMEt.h:131
double EndCapEtaMax_
Definition: ErsatzMEt.h:131
bool ErsatzMEt::isInFiducial ( double  eta)
private

Definition at line 872 of file ErsatzMEt.cc.

References isInBarrel(), and isInEndCap().

873 {
874  return isInBarrel(eta) || isInEndCap(eta);
875 }
bool isInBarrel(double)
Definition: ErsatzMEt.cc:862
bool isInEndCap(double)
Definition: ErsatzMEt.cc:867
std::map< reco::GsfElectronRef, reco::GsfElectronRef > ErsatzMEt::probeFinder ( const std::vector< reco::GsfElectronRef > &  tags,
const edm::Handle< reco::GsfElectronCollection pElectrons 
)
private

Definition at line 618 of file ErsatzMEt.cc.

References reco::tau::disc::InvariantMass(), mTPmax_, mTPmin_, edm::Handle< T >::product(), and GlobalPosition_Frontier_DevDB_cff::tag.

Referenced by analyze().

620 {
621  const reco::GsfElectronCollection *probeCands = pElectrons.product();
622  std::map<reco::GsfElectronRef, reco::GsfElectronRef> TagProbes;
623  for(std::vector<reco::GsfElectronRef>::const_iterator tagelec = tags.begin(); tagelec != tags.end(); ++tagelec)
624  {
625  reco::GsfElectronRef tag = *tagelec;
626  std::pair<reco::GsfElectronRef, reco::GsfElectronRef> TagProbePair;
627  int nProbesPerTag = 0;
628  int index = 0;
629  for(reco::GsfElectronCollection::const_iterator probeelec = probeCands->begin(); probeelec != probeCands->end(); ++probeelec)
630  {
631  reco::GsfElectronRef probe(pElectrons, index);
632  double probeScEta = probe->superCluster()->eta();
633  if(probe->superCluster() != tag->superCluster() && fabs(probeScEta) < 2.5)
634  {
635  if(fabs(probeScEta) < 1.4442 || fabs(probeScEta) > 1.560)
636  {
637  double invmass = ROOT::Math::VectorUtil::InvariantMass(tag->p4(), probe->p4());
638  if(mTPmin_ <= invmass && invmass <= mTPmax_)
639  {
640  TagProbePair = std::make_pair(tag, probe);
641  ++nProbesPerTag;
642  }
643  }
644  }
645  ++index;
646  }
647  //nGsfElectrons_ = index;
648  if(nProbesPerTag == 1) TagProbes.insert(TagProbePair);
649  }
650  return TagProbes;
651 }
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
double mTPmin_
Definition: ErsatzMEt.h:130
double mTPmax_
Definition: ErsatzMEt.h:130
T const * product() const
Definition: Handle.h:74

Member Data Documentation

double ErsatzMEt::BarrelEtaMax_
private

Definition at line 131 of file ErsatzMEt.h.

Referenced by ErsatzMEt(), and isInBarrel().

double ErsatzMEt::CaloMEt_
private

Definition at line 148 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

edm::EDGetTokenT<reco::CaloMETCollection> ErsatzMEt::CaloMEtCollection_
private

Definition at line 121 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

double ErsatzMEt::CaloMEtphi_
private

Definition at line 149 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

std::vector<double> ErsatzMEt::CutVector_
private

Definition at line 136 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

edm::EDGetTokenT<reco::GsfElectronCollection> ErsatzMEt::ElectronCollection_
private

Definition at line 117 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

double ErsatzMEt::EndCapEtaMax_
private

Definition at line 131 of file ErsatzMEt.h.

Referenced by ErsatzMEt(), and isInEndCap().

double ErsatzMEt::EndCapEtaMin_
private

Definition at line 131 of file ErsatzMEt.h.

Referenced by ErsatzMEt(), and isInEndCap().

double ErsatzMEt::ErsatzV1_Mesc_[4]
private

Definition at line 183 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::ErsatzV1_rescMesc_[4]
private

Definition at line 183 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::ErsatzV1CaloMEt_[4]
private

Definition at line 176 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1CaloMEtPhi_[4]
private

Definition at line 176 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1CaloMt_[4]
private

Definition at line 176 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::ErsatzV1PfMEt_[4]
private

Definition at line 181 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1PfMEtPhi_[4]
private

Definition at line 181 of file ErsatzMEt.h.

Referenced by analyze().

double ErsatzMEt::ErsatzV1PfMt_[4]
private

Definition at line 181 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1T1MEt_[4]
private

Definition at line 180 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1T1MEtPhi_[4]
private

Definition at line 180 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1T1Mt_[4]
private

Definition at line 180 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1TcMEt_[4]
private

Definition at line 182 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1TcMEtPhi_[4]
private

Definition at line 182 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV1TcMt_[4]
private

Definition at line 182 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV2_Mesc_[4]
private

Definition at line 184 of file ErsatzMEt.h.

Referenced by analyze(), and ersatzFabrik().

double ErsatzMEt::ErsatzV2_rescMesc_[4]
private

Definition at line 184 of file ErsatzMEt.h.

Referenced by analyze(), and ersatzFabrik().

double ErsatzMEt::ErsatzV2CaloMEt_[4]
private

Definition at line 177 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV2CaloMEtPhi_[4]
private

Definition at line 177 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV2CaloMt_[4]
private

Definition at line 177 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::ErsatzV3_Mesc_[4]
private

Definition at line 185 of file ErsatzMEt.h.

Referenced by analyze(), and ersatzFabrik().

double ErsatzMEt::ErsatzV3_rescMesc_[4]
private

Definition at line 185 of file ErsatzMEt.h.

Referenced by analyze(), and ersatzFabrik().

double ErsatzMEt::ErsatzV3CaloMEt_[4]
private

Definition at line 178 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV3CaloMEtPhi_[4]
private

Definition at line 178 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV3CaloMt_[4]
private

Definition at line 178 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::ErsatzV4_Mesc_[4]
private

Definition at line 186 of file ErsatzMEt.h.

Referenced by analyze(), and ersatzFabrik().

double ErsatzMEt::ErsatzV4_rescMesc_[4]
private

Definition at line 186 of file ErsatzMEt.h.

Referenced by analyze(), and ersatzFabrik().

double ErsatzMEt::ErsatzV4CaloMEt_[4]
private

Definition at line 179 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV4CaloMEtPhi_[4]
private

Definition at line 179 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::ErsatzV4CaloMt_[4]
private

Definition at line 179 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

int ErsatzMEt::etaWidth_
private

Definition at line 138 of file ErsatzMEt.h.

edm::EDGetTokenT<reco::GenMETCollection> ErsatzMEt::GenMEtCollection_
private

Definition at line 120 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

edm::ESHandle<CaloGeometry> ErsatzMEt::geoHandle_
private

Definition at line 143 of file ErsatzMEt.h.

Referenced by analyze().

HLTConfigProvider ErsatzMEt::hltConfig_
private

Definition at line 141 of file ErsatzMEt.h.

bool ErsatzMEt::HLTPathCheck_
private

Definition at line 139 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

edm::ParameterSet ErsatzMEt::hyb_fCorrPSet_
private

Definition at line 129 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

edm::EDGetTokenT<reco::SuperClusterCollection> ErsatzMEt::HybridScCollection_
private

Definition at line 118 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

int ErsatzMEt::iComb_
private

Definition at line 201 of file ErsatzMEt.h.

Referenced by analyze(), and ersatzFabrik().

edm::ParameterSet ErsatzMEt::m5x5_fCorrPSet_
private

Definition at line 129 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

edm::EDGetTokenT<reco::SuperClusterCollection> ErsatzMEt::M5x5ScCollection_
private

Definition at line 119 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

double ErsatzMEt::McElec_eta_[4]
private

Definition at line 188 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

int ErsatzMEt::McElec_nFinal_
private

Definition at line 150 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

int ErsatzMEt::McElec_nZmum_
private

Definition at line 150 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElec_phi_[4]
private

Definition at line 188 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElec_pt_[4]
private

Definition at line 188 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElec_rescEta_[4]
private

Definition at line 189 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElec_rescPhi_[4]
private

Definition at line 189 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElec_rescPt_[4]
private

Definition at line 189 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElecProbe_dEta_[4]
private

Definition at line 192 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElecProbe_dPhi_[4]
private

Definition at line 192 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McElecProbe_dR_[4]
private

Definition at line 192 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McProbe_eta_[4]
private

Definition at line 190 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McProbe_phi_[4]
private

Definition at line 190 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McProbe_pt_[4]
private

Definition at line 190 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McProbe_rescEta_[4]
private

Definition at line 191 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McProbe_rescPhi_[4]
private

Definition at line 191 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McProbe_rescPt_[4]
private

Definition at line 191 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

edm::EDGetTokenT<reco::GenParticleCollection> ErsatzMEt::MCTruthCollection_
private

Definition at line 116 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

double ErsatzMEt::McZ_eta_
private

Definition at line 151 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_m_
private

Definition at line 151 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_phi_
private

Definition at line 151 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_pt_
private

Definition at line 151 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_rescEta_
private

Definition at line 152 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_rescM_
private

Definition at line 152 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_rescPhi_
private

Definition at line 152 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_rescPt_
private

Definition at line 152 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_rescY_
private

Definition at line 152 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::McZ_y_
private

Definition at line 151 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::mTPmax_
private

Definition at line 130 of file ErsatzMEt.h.

Referenced by ErsatzMEt(), and probeFinder().

double ErsatzMEt::mTPmin_
private

Definition at line 130 of file ErsatzMEt.h.

Referenced by ErsatzMEt(), and probeFinder().

double ErsatzMEt::mW_
private

Definition at line 130 of file ErsatzMEt.h.

Referenced by analyze(), ersatzFabrik(), and ErsatzMEt().

double ErsatzMEt::mZ_
private

Definition at line 130 of file ErsatzMEt.h.

Referenced by analyze(), ersatzFabrik(), and ErsatzMEt().

int ErsatzMEt::nProbes_
private

Definition at line 147 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

int ErsatzMEt::nTags_
private

Definition at line 147 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::PfMEt_
private

Definition at line 148 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

edm::EDGetTokenT<reco::PFMETCollection> ErsatzMEt::PfMEtCollection_
private

Definition at line 123 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

double ErsatzMEt::PfMEtphi_
private

Definition at line 149 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

int ErsatzMEt::phiWidth_
private

Definition at line 138 of file ErsatzMEt.h.

double ErsatzMEt::probe_d_MCE_SCE_[4]
private

Definition at line 194 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_dEtaIn_[4]
private

Definition at line 169 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_dPhiIn_[4]
private

Definition at line 169 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_e1x5Max_[4]
private

Definition at line 171 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_e2x5Max_[4]
private

Definition at line 171 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_e5x5_[4]
private

Definition at line 171 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_ecalIso_[4]
private

Definition at line 170 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_eop_[4]
private

Definition at line 172 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_eta_[4]
private

Definition at line 167 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_hcalIso_[4]
private

Definition at line 170 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_hoe_[4]
private

Definition at line 172 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

int ErsatzMEt::probe_nClus_[4]
private

Definition at line 154 of file ErsatzMEt.h.

double ErsatzMEt::probe_phi_[4]
private

Definition at line 167 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_pin_[4]
private

Definition at line 172 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_pout_[4]
private

Definition at line 172 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_pt_[4]
private

Definition at line 167 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

int ErsatzMEt::probe_q_[4]
private

Definition at line 166 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_rescEta_[4]
private

Definition at line 168 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::probe_rescPhi_[4]
private

Definition at line 168 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::probe_rescPt_[4]
private

Definition at line 168 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::probe_sc_E_[4]
private

Definition at line 196 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_sc_eta_[4]
private

Definition at line 195 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_sc_nClus_[4]
private

Definition at line 196 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_sc_phi_[4]
private

Definition at line 195 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_sc_pt_[4]
private

Definition at line 195 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_sc_rawE_[4]
private

Definition at line 196 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_scV2_E_[4]
private

Definition at line 197 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_scV3_E_[4]
private

Definition at line 198 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_scV4_E_[4]
private

Definition at line 199 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_sIhIh_[4]
private

Definition at line 169 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::probe_trckIso_[4]
private

Definition at line 170 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

std::string ErsatzMEt::ProcessName_
private

Definition at line 128 of file ErsatzMEt.h.

edm::ESHandle<CaloTopology> ErsatzMEt::pTopology_
private

Definition at line 144 of file ErsatzMEt.h.

Referenced by analyze().

double ErsatzMEt::T1MEt_
private

Definition at line 148 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

edm::EDGetTokenT<reco::METCollection> ErsatzMEt::T1MEtCollection_
private

Definition at line 122 of file ErsatzMEt.h.

double ErsatzMEt::T1MEtphi_
private

Definition at line 149 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

TTree* ErsatzMEt::t_
private

Definition at line 146 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_dEtaIn_[4]
private

Definition at line 162 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_dPhiIn_[4]
private

Definition at line 162 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_e1x5Max_[4]
private

Definition at line 164 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_e2x5Max_[4]
private

Definition at line 164 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_e5x5_[4]
private

Definition at line 164 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_ecalIso_[4]
private

Definition at line 163 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_eop_[4]
private

Definition at line 165 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_eta_[4]
private

Definition at line 156 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_hcalIso_[4]
private

Definition at line 163 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_hoe_[4]
private

Definition at line 165 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_phi_[4]
private

Definition at line 156 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_pin_[4]
private

Definition at line 165 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_pout_[4]
private

Definition at line 165 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_pt_[4]
private

Definition at line 156 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

int ErsatzMEt::tag_q_[4]
private

Definition at line 155 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_rescEta_[4]
private

Definition at line 161 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::tag_rescPhi_[4]
private

Definition at line 161 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::tag_rescPt_[4]
private

Definition at line 161 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::tag_sIhIh_[4]
private

Definition at line 162 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::tag_trckIso_[4]
private

Definition at line 163 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

double ErsatzMEt::TcMEt_
private

Definition at line 148 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

edm::EDGetTokenT<reco::METCollection> ErsatzMEt::TcMEtCollection_
private

Definition at line 124 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

double ErsatzMEt::TcMEtphi_
private

Definition at line 149 of file ErsatzMEt.h.

Referenced by analyze(), and beginJob().

edm::EDGetTokenT<trigger::TriggerEvent> ErsatzMEt::TriggerEvent_
private

Definition at line 125 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

std::string ErsatzMEt::TriggerName_
private

Definition at line 128 of file ErsatzMEt.h.

Referenced by ErsatzMEt().

edm::InputTag ErsatzMEt::TriggerPath_
private

Definition at line 127 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

edm::EDGetTokenT<edm::TriggerResults> ErsatzMEt::TriggerResults_
private

Definition at line 126 of file ErsatzMEt.h.

Referenced by analyze(), and ErsatzMEt().

double ErsatzMEt::Z_eta_[4]
private

Definition at line 173 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_m_[4]
private

Definition at line 173 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_phi_[4]
private

Definition at line 173 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_probe_dPhi_[4]
private

Definition at line 175 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_pt_[4]
private

Definition at line 173 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_rescEta_[4]
private

Definition at line 174 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_rescM_[4]
private

Definition at line 174 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_rescPhi_[4]
private

Definition at line 174 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_rescPt_[4]
private

Definition at line 174 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_rescY_[4]
private

Definition at line 174 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

double ErsatzMEt::Z_y_[4]
private

Definition at line 173 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ersatzFabrik().

bool ErsatzMEt::Zevent_
private

Definition at line 139 of file ErsatzMEt.h.

Referenced by analyze(), beginJob(), and ErsatzMEt().