42 bool is_B (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) < 1.3;}
43 bool is_E (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) >= 1.3 && fabs (fJet.
eta()) < 3.;}
44 bool is_F (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) >= 3.;}
48 : mInputCollection (iConfig.getParameter<edm::
InputTag>(
"src" )),
49 mInputGenCollection (iConfig.getParameter<edm::
InputTag>(
"srcGen" )),
50 mOutputFile (iConfig.getUntrackedParameter<std::string>(
"outputFile",
"")),
51 mMatchGenPtThreshold (iConfig.getParameter<double>(
"genPtThreshold")),
52 mGenEnergyFractionThreshold (iConfig.getParameter<double>(
"genEnergyFractionThreshold")),
53 mReverseEnergyFractionThreshold (iConfig.getParameter<double>(
"reverseEnergyFractionThreshold")),
54 mRThreshold (iConfig.getParameter<double>(
"RThreshold")),
55 mTurnOnEverything (iConfig.getUntrackedParameter<std::string>(
"TurnOnEverything",
""))
115 mPhi = dbe->
book1D(
"Phi",
"Phi", 70, -3.5, 3.5);
118 mE = dbe->
book1D(
"E",
"E", 100, 0, 500);
122 mP = dbe->
book1D(
"P",
"P", 100, 0, 500);
126 mPt = dbe->
book1D(
"Pt",
"Pt", 100, 0, 50);
146 mMjj = dbe->
book1D(
"Mjj",
"Mjj", 100, 0, 2000);
235 mHBEne = dbe->
book1D(
"HBEne",
"HBEne", 1000, -20, 100 );
237 mHEEne = dbe->
book1D(
"HEEne",
"HEEne", 1000, -20, 100 );
239 mHOEne = dbe->
book1D(
"HOEne",
"HOEne", 1000, -20, 100 );
241 mHFEne = dbe->
book1D(
"HFEne",
"HFEne", 1000, -20, 100 );
243 mEBEne = dbe->
book1D(
"EBEne",
"EBEne", 1000, -20, 100 );
245 mEEEne = dbe->
book1D(
"EEEne",
"EEEne", 1000, -20, 100 );
251 double log10PtMin = 0.5;
252 double log10PtMax = 3.75;
253 int log10PtBins = 26;
259 double linPtMax = 155;
262 int log10PtFineBins = 50;
265 log10PtBins, log10PtMin, log10PtMax);
267 log10PtBins, log10PtMin, log10PtMax);
269 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
271 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
274 mHadEnergyProfile = dbe->
bookProfile2D(
"HadEnergyProfile",
"HadEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000,
"s");
275 mEmEnergyProfile = dbe->
bookProfile2D(
"EmEnergyProfile",
"EmEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000,
"s");
277 mJetEnergyProfile = dbe->
bookProfile2D(
"JetEnergyProfile",
"JetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000,
"s");
283 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
285 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
286 mRMatch = dbe->
book3D(
"RMatch",
"delta(R)(Gen-Calo) vs LOG(pT_gen) vs eta",
287 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 60, 0, 3);
289 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
291 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
292 mEScale = dbe->
book3D(
"EScale",
"EnergyScale vs LOG(pT_gen) vs eta",
293 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
295 linPtBins, linPtMin, linPtMax, etaBins, etaMin, etaMax, 100, 0, 2);
296 mDeltaE = dbe->
book3D(
"DeltaE",
"DeltaE vs LOG(pT_gen) vs eta",
297 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 2000, -200, 200);
300 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
302 log10PtFineBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
306 log10PtBins, log10PtMin, log10PtMax, 0, 2,
"s");
308 log10PtBins, log10PtMin, log10PtMax, 0, 2,
"s");
310 log10PtBins, log10PtMin, log10PtMax, 0, 2,
"s");
312 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
314 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
316 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
319 etaBins, etaMin, etaMax, 0., 2.,
"s");
321 etaBins, etaMin, etaMax, 0., 2.,
"s");
323 etaBins, etaMin, etaMax, 0., 2.,
"s");
325 etaBins, etaMin, etaMax, 0., 2.,
"s");
327 etaBins, etaMin, etaMax, 0., 2.,
" ");
329 etaBins, etaMin, etaMax, 0., 2.,
" ");
331 etaBins, etaMin, etaMax, 0., 2.,
" ");
333 etaBins, etaMin, etaMax, 0., 2.,
" ");
375 LogInfo(
"OutputInfo") <<
" PFJet histograms will NOT be saved";
396 double countsfornumberofevents = 1;
405 HepMC::GenEvent * myGenEvent =
new HepMC::GenEvent(*(evt->GetEvent()));
407 double pthat = myGenEvent->event_scale();
423 edm::LogInfo(
"OutputInfo") <<
" failed to retrieve data required by MET Task";
424 edm::LogInfo(
"OutputInfo") <<
" MET Task cannot continue...!";
427 calomet = &(calometcol->front());
429 double caloSumET = calomet->
sumEt();
430 double caloMETSig = calomet->
mEtSig();
431 double caloMET = calomet->
pt();
432 double caloMEx = calomet->
px();
433 double caloMEy = calomet->
py();
434 double caloMETPhi = calomet->
phi();
453 mEvent.
getByLabel(
"towerMaker", caloTowers );
474 std::vector<edm::Handle<HBHERecHitCollection> > colls;
476 std::vector<edm::Handle<HBHERecHitCollection> >::iterator
i;
477 for (i=colls.begin(); i!=colls.end(); i++) {
496 std::vector<edm::Handle<HFRecHitCollection> > colls;
498 std::vector<edm::Handle<HFRecHitCollection> >::iterator
i;
499 for (i=colls.begin(); i!=colls.end(); i++) {
513 std::vector<edm::Handle<HORecHitCollection> > colls;
515 std::vector<edm::Handle<HORecHitCollection> >::iterator
i;
516 for (i=colls.begin(); i!=colls.end(); i++) {
528 std::vector<edm::Handle<EBRecHitCollection> > colls;
530 std::vector<edm::Handle<EBRecHitCollection> >::iterator
i;
531 for (i=colls.begin(); i!=colls.end(); i++) {
546 std::vector<edm::Handle<EERecHitCollection> > colls;
548 std::vector<edm::Handle<EERecHitCollection> >::iterator
i;
549 for (i=colls.begin(); i!=colls.end(); i++) {
570 PFJetCollection::const_iterator
jet = pfJets->begin ();
575 for (; jet != pfJets->end (); jet++, jetIndex++) {
578 if (jet->pt() > 10.) {
579 if (fabs(jet->eta()) > 1.3)
584 if (jet->pt() > 10.) {
609 if (jet == pfJets->begin ()) {
621 p4tmp[0] = jet->p4();
625 p4tmp[1] = jet->p4();
693 for (
int istep = 0; istep < 100; ++istep) {
695 float ptStep = (istep * (200./100.));
697 for ( PFJetCollection::const_iterator cal = pfJets->begin(); cal != pfJets->end(); ++ cal ) {
698 if ( cal->pt() > ptStep ) njet++;
703 for (
int istep = 0; istep < 100; ++istep) {
705 float ptStep = (istep * (4000./100.));
706 for ( PFJetCollection::const_iterator cal = pfJets->begin(); cal != pfJets->end(); ++ cal ) {
707 if ( cal->pt() > ptStep ) njet++;
715 if (!genJets.
isValid())
return;
716 GenJetCollection::const_iterator gjet = genJets->begin ();
718 for (; gjet != genJets->end (); gjet++, gjetIndex++) {
724 if (gjet == genJets->begin ()) {
737 std::vector <std::vector <const reco::GenParticle*> > genJetConstituents (genJets->size());
738 std::vector <std::vector <const reco::GenParticle*> > pfJetConstituents (pfJets->size());
753 for (
unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) {
755 const GenJet& genJet = (*genJets) [iGenJet];
756 double genJetPt = genJet.
pt();
760 if (fabs(genJet.
eta()) > 5.)
continue;
762 double logPtGen = log10 (genJetPt);
765 if (pfJets->size() <= 0)
continue;
767 unsigned iPFJetBest = 0;
768 double deltaRBest = 999.;
769 for (
unsigned iPFJet = 0; iPFJet < pfJets->size(); ++iPFJet) {
770 double dR =
deltaR (genJet.
eta(), genJet.
phi(), (*pfJets) [iPFJet].eta(), (*pfJets) [iPFJet].phi());
779 if (dR < deltaRBest) {
824 double logPtGen = log10 (fGenJet.
pt());
825 double PtGen = fGenJet.
pt();
826 double PtPF = fPFJet.
pt();
830 double PtThreshold = 10.;
841 if (fGenJet.
pt()>PtThreshold) {
847 if (fPFJet.
pt() > PtThreshold) {
853 if (fabs(fGenJet.
eta())<1.3) {
857 if (PtGen>60.0 && PtGen<120.0) {
860 if (PtGen>200.0 && PtGen<300.0) {
863 if (PtGen>600.0 && PtGen<900.0) {
866 if (PtGen>2700.0 && PtGen<3500.0) {
871 if (fabs(fGenJet.
eta())>1.3 && fabs(fGenJet.
eta())<3.0) {
875 if (PtGen>60.0 && PtGen<120.0) {
878 if (PtGen>200.0 && PtGen<300.0) {
881 if (PtGen>600.0 && PtGen<900.0) {
884 if (PtGen>2700.0 && PtGen<3500.0) {
889 if (fabs(fGenJet.
eta())>3.0 && fabs(fGenJet.
eta())<5.0) {
893 if (PtGen>60.0 && PtGen<120.0) {
896 if (PtGen>200.0 && PtGen<300.0) {
899 if (PtGen>600.0 && PtGen<900.0) {
902 if (PtGen>2700.0 && PtGen<3500.0) {
907 if (fGenJet.
pt()>60.0 && fGenJet.
pt()<120.0) {
913 if (fGenJet.
pt()>200.0 && fGenJet.
pt()<300.0) {
919 if (fGenJet.
pt()>600.0 && fGenJet.
pt()<900.0) {
925 if (fGenJet.
pt()>2700.0 && fGenJet.
pt()<3500.0) {
MonitorElement * mpTScale_600_900_s
MonitorElement * mPhiFineBin
MonitorElement * mCaloMEx_3000
MonitorElement * mChargedHadronEnergy_80
void getManyByType(std::vector< Handle< PROD > > &results) const
MonitorElement * mDeltaEta
MonitorElement * mpTScale1DE_2700_3500
MonitorElement * mNeutralEmEnergyFraction
MonitorElement * mEtaFineBin2m
MonitorElement * mpTScaleB_d
MonitorElement * mChargedEmEnergy_80
MonitorElement * mGenPt_3000
MonitorElement * mpTScale1DB_2700_3500
edm::InputTag mInputCollection
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * mNeutralEmEnergy_80
MonitorElement * mpTScale1D_60_120
MonitorElement * book3D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ)
Book 3D histogram.
MonitorElement * mpTScale_2700_3500_s
Base class for all types of Jets.
MonitorElement * mChargedEmEnergy_3000
PFJetTester(const edm::ParameterSet &)
MonitorElement * mNJetsEtaC
MonitorElement * numberofevents
MonitorElement * mlinEScale
MonitorElement * mpTScaleE_d
std::vector< CaloTower >::const_iterator const_iterator
MonitorElement * mConstituents
MonitorElement * mNeutralHadronEnergy_80
MonitorElement * mChargedHadronEnergyFraction
MonitorElement * mGenJetMatchEnergyFraction
MonitorElement * mpTScaleF_s
MonitorElement * mPthat_3000
MonitorElement * mpTScale_60_120_d
MonitorElement * mMjj_3000
MonitorElement * mPtFirst_80
Jets made from PFObjects.
virtual double eta() const
momentum pseudorapidity
MonitorElement * mpTScale1D_2700_3500
MonitorElement * mCaloSumET_3000
MonitorElement * mpTScale_2700_3500_d
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
MonitorElement * mCaloMETSig
virtual double energy() const
energy
MonitorElement * mpTScale1DE_600_900
MonitorElement * mChargedEmEnergyFraction
MonitorElement * mAllGenJetsPt
MonitorElement * mPtFirst
MonitorElement * mCaloMET
MonitorElement * mpTScaleB_s
MonitorElement * mPtFirst_3000
MonitorElement * mMass_80
MonitorElement * mpTScale1DB_600_900
MonitorElement * mMatchedGenJetsEta
MonitorElement * mEmEnergyProfile
MonitorElement * mpTScale_200_300_d
MonitorElement * mEScale_pt10
MonitorElement * mEmTiming
MonitorElement * mEtaFirst
MonitorElement * mNeutralEmEnergy_3000
Jets made from MC generator particles.
MonitorElement * mpTScaleF_d
MonitorElement * mCaloMETPhi
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
void fillMatchHists(const reco::GenJet &fGenJet, const reco::PFJet &fPFJet)
MonitorElement * mpTScale1DB_200_300
virtual void analyze(const edm::Event &, const edm::EventSetup &)
double mMatchGenPtThreshold
MonitorElement * mConstituents_80
MonitorElement * mpTScale1DF_200_300
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * mpTScale1DB_60_120
MonitorElement * mHadEnergyProfile
MonitorElement * mCaloMEx
MonitorElement * mNeutralHadronEnergyFraction
double deltaR(double eta1, double eta2, double phi1, double phi2)
MonitorElement * mGenPt_80
MonitorElement * mEtaFineBin1m
virtual double px() const
x coordinate of momentum vector
MonitorElement * mGenEtaFirst
virtual double pt() const
transverse momentum
edm::InputTag mInputGenCollection
MonitorElement * mPt_3000
MonitorElement * mEFirst_3000
MonitorElement * mEFirst_80
MonitorElement * mpTScale1DE_60_120
MonitorElement * mCaloMETSig_3000
T const * product() const
MonitorElement * mNeutralHadronEnergy_3000
MonitorElement * mEtaFineBin2p
MonitorElement * mCaloSumET
MonitorElement * mAllGenJetsEta
MonitorElement * mCaloMEy
MonitorElement * mCaloMEy_3000
MonitorElement * mEtaFineBin3p
MonitorElement * mEScaleFineBin
MonitorElement * mpTScale1D_200_300
MonitorElement * mpTScale1D_600_900
MonitorElement * mpTScale_600_900_d
MonitorElement * mpTScale1DF_60_120
MonitorElement * mHadTiming
MonitorElement * mChargedHadronEnergy_3000
MonitorElement * mpTScaleE_s
std::string mTurnOnEverything
MonitorElement * mEtaFineBin
MonitorElement * mPhiFirst
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
MonitorElement * mCaloMET_3000
MonitorElement * mpTScale_60_120_s
MonitorElement * mGenPhiFirst
MonitorElement * mJetEnergyProfile
virtual double phi() const
momentum azimuthal angle
MonitorElement * mMatchedGenJetsPt
MonitorElement * mpTScale1DE_200_300
MonitorElement * mReverseMatchEnergyFraction
MonitorElement * mMass_3000
virtual double py() const
y coordinate of momentum vector
MonitorElement * mEtaFineBin1p
void setCurrentFolder(const std::string &fullpath)
MonitorElement * mDeltaPhi
MonitorElement * mEtaFineBin3m
MonitorElement * mPthat_80
MonitorElement * mpTScale_200_300_s
MonitorElement * mpTScale1DF_600_900
MonitorElement * mNJetsEtaF
MonitorElement * mpTScale1DF_2700_3500
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")