44 bool is_B (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) < 1.3;}
45 bool is_E (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) >= 1.3 && fabs (fJet.
eta()) < 3.;}
46 bool is_F (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) >= 3.;}
50 : mInputCollection (iConfig.getParameter<edm::
InputTag>(
"src" )),
51 mInputGenCollection (iConfig.getParameter<edm::
InputTag>(
"srcGen" )),
52 mOutputFile (iConfig.getUntrackedParameter<std::string>(
"outputFile",
"")),
53 mMatchGenPtThreshold (iConfig.getParameter<double>(
"genPtThreshold")),
54 mGenEnergyFractionThreshold (iConfig.getParameter<double>(
"genEnergyFractionThreshold")),
55 mReverseEnergyFractionThreshold (iConfig.getParameter<double>(
"reverseEnergyFractionThreshold")),
56 mRThreshold (iConfig.getParameter<double>(
"RThreshold")),
57 mTurnOnEverything (iConfig.getUntrackedParameter<std::string>(
"TurnOnEverything",
""))
126 mPhi = dbe->
book1D(
"Phi",
"Phi", 70, -3.5, 3.5);
129 mE = dbe->
book1D(
"E",
"E", 100, 0, 500);
133 mP = dbe->
book1D(
"P",
"P", 100, 0, 500);
137 mPt = dbe->
book1D(
"Pt",
"Pt", 100, 0, 50);
157 mMjj = dbe->
book1D(
"Mjj",
"Mjj", 100, 0, 2000);
254 mHBEne = dbe->
book1D(
"HBEne",
"HBEne", 1000, -20, 100 );
256 mHEEne = dbe->
book1D(
"HEEne",
"HEEne", 1000, -20, 100 );
258 mHOEne = dbe->
book1D(
"HOEne",
"HOEne", 1000, -20, 100 );
260 mHFEne = dbe->
book1D(
"HFEne",
"HFEne", 1000, -20, 100 );
262 mEBEne = dbe->
book1D(
"EBEne",
"EBEne", 1000, -20, 100 );
264 mEEEne = dbe->
book1D(
"EEEne",
"EEEne", 1000, -20, 100 );
270 double log10PtMin = 0.5;
271 double log10PtMax = 3.75;
272 int log10PtBins = 26;
278 double linPtMax = 155;
281 int log10PtFineBins = 50;
284 log10PtBins, log10PtMin, log10PtMax);
286 log10PtBins, log10PtMin, log10PtMax);
288 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
290 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
293 mHadEnergyProfile = dbe->
bookProfile2D(
"HadEnergyProfile",
"HadEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000,
"s");
294 mEmEnergyProfile = dbe->
bookProfile2D(
"EmEnergyProfile",
"EmEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000,
"s");
296 mJetEnergyProfile = dbe->
bookProfile2D(
"JetEnergyProfile",
"JetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000,
"s");
305 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
307 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
308 mRMatch = dbe->
book3D(
"RMatch",
"delta(R)(Gen-Calo) vs LOG(pT_gen) vs eta",
309 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 60, 0, 3);
311 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
313 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
314 mEScale = dbe->
book3D(
"EScale",
"EnergyScale vs LOG(pT_gen) vs eta",
315 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
317 linPtBins, linPtMin, linPtMax, etaBins, etaMin, etaMax, 100, 0, 2);
318 mDeltaE = dbe->
book3D(
"DeltaE",
"DeltaE vs LOG(pT_gen) vs eta",
319 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 2000, -200, 200);
322 log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
324 log10PtFineBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
328 log10PtBins, log10PtMin, log10PtMax, 0, 2,
"s");
330 log10PtBins, log10PtMin, log10PtMax, 0, 2,
"s");
332 log10PtBins, log10PtMin, log10PtMax, 0, 2,
"s");
334 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
336 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
338 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
341 etaBins, etaMin, etaMax, 0., 2.,
"s");
343 etaBins, etaMin, etaMax, 0., 2.,
"s");
345 etaBins, etaMin, etaMax, 0., 2.,
"s");
347 etaBins, etaMin, etaMax, 0., 2.,
"s");
349 etaBins, etaMin, etaMax, 0., 2.,
" ");
351 etaBins, etaMin, etaMax, 0., 2.,
" ");
353 etaBins, etaMin, etaMax, 0., 2.,
" ");
355 etaBins, etaMin, etaMax, 0., 2.,
" ");
396 LogInfo(
"OutputInfo") <<
" JPTJet histograms will NOT be saved";
417 double countsfornumberofevents = 1;
426 HepMC::GenEvent * myGenEvent =
new HepMC::GenEvent(*(evt->GetEvent()));
428 double pthat = myGenEvent->event_scale();
444 edm::LogInfo(
"OutputInfo") <<
" failed to retrieve data required by MET Task";
445 edm::LogInfo(
"OutputInfo") <<
" MET Task cannot continue...!";
448 calomet = &(calometcol->front());
450 double caloSumET = calomet->
sumEt();
451 double caloMETSig = calomet->
mEtSig();
452 double caloMET = calomet->
pt();
453 double caloMEx = calomet->
px();
454 double caloMEy = calomet->
py();
455 double caloMETPhi = calomet->
phi();
474 mEvent.
getByLabel(
"towerMaker", caloTowers );
495 std::vector<edm::Handle<HBHERecHitCollection> > colls;
497 std::vector<edm::Handle<HBHERecHitCollection> >::iterator
i;
498 for (i=colls.begin(); i!=colls.end(); i++) {
516 std::vector<edm::Handle<HFRecHitCollection> > colls;
518 std::vector<edm::Handle<HFRecHitCollection> >::iterator
i;
519 for (i=colls.begin(); i!=colls.end(); i++) {
533 std::vector<edm::Handle<HORecHitCollection> > colls;
535 std::vector<edm::Handle<HORecHitCollection> >::iterator
i;
536 for (i=colls.begin(); i!=colls.end(); i++) {
548 std::vector<edm::Handle<EBRecHitCollection> > colls;
550 std::vector<edm::Handle<EBRecHitCollection> >::iterator
i;
551 for (i=colls.begin(); i!=colls.end(); i++) {
566 std::vector<edm::Handle<EERecHitCollection> > colls;
568 std::vector<edm::Handle<EERecHitCollection> >::iterator
i;
569 for (i=colls.begin(); i!=colls.end(); i++) {
588 if (!jptJets.
isValid())
return;
589 JPTJetCollection::const_iterator
jet = jptJets->begin ();
594 for (; jet != jptJets->end (); jet++, jetIndex++) {
597 if (jet->pt() > 10.) {
598 if (fabs(jet->eta()) > 1.3)
603 if (jet->pt() > 10.) {
628 if (jet == jptJets->begin ()) {
640 p4tmp[0] = jet->p4();
644 p4tmp[1] = jet->p4();
647 double sumPtPionsInVertexInCalo =
getSumPt(jet->getPionsInVertexInCalo());
648 double sumPtPionsInVertexOutCalo =
getSumPt(jet->getPionsInVertexOutCalo());
649 double sumPtPionsOutVertexInCalo =
getSumPt(jet->getPionsOutVertexInCalo());
650 double sumPtMuonsInVertexInCalo =
getSumPt(jet->getMuonsInVertexInCalo());
651 double sumPtMuonsInVertexOutCalo =
getSumPt(jet->getMuonsInVertexOutCalo());
652 double sumPtMuonsOutVertexInCalo =
getSumPt(jet->getMuonsOutVertexInCalo());
653 double sumPtElecsInVertexInCalo =
getSumPt(jet->getElecsInVertexInCalo());
654 double sumPtElecsInVertexOutCalo =
getSumPt(jet->getElecsInVertexOutCalo());
655 double sumPtElecsOutVertexInCalo =
getSumPt(jet->getElecsOutVertexInCalo());
743 for (
int istep = 0; istep < 100; ++istep) {
745 float ptStep = (istep * (200./100.));
747 for ( JPTJetCollection::const_iterator jpt = jptJets->begin(); jpt != jptJets->end(); ++ jpt ) {
748 if ( jpt->pt() > ptStep ) njet++;
753 for (
int istep = 0; istep < 100; ++istep) {
755 float ptStep = (istep * (4000./100.));
756 for ( JPTJetCollection::const_iterator jpt = jptJets->begin(); jpt != jptJets->end(); ++ jpt ) {
757 if ( jpt->pt() > ptStep ) njet++;
765 if (!genJets.
isValid())
return;
766 GenJetCollection::const_iterator gjet = genJets->begin ();
768 for (; gjet != genJets->end (); gjet++, gjetIndex++) {
774 if (gjet == genJets->begin ()) {
787 std::vector <std::vector <const reco::GenParticle*> > genJetConstituents (genJets->size());
788 std::vector <std::vector <const reco::GenParticle*> > jptJetConstituents (jptJets->size());
801 for (
unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) {
803 const GenJet& genJet = (*genJets) [iGenJet];
804 double genJetPt = genJet.
pt();
808 if (fabs(genJet.
eta()) > 5.)
continue;
810 double logPtGen = log10 (genJetPt);
813 if (jptJets->size() <= 0)
continue;
815 unsigned iJPTJetBest = 0;
816 double deltaRBest = 999.;
817 for (
unsigned iJPTJet = 0; iJPTJet < jptJets->size(); ++iJPTJet) {
818 double dR =
deltaR (genJet.
eta(), genJet.
phi(), (*jptJets) [iJPTJet].eta(), (*jptJets) [iJPTJet].phi());
827 if (dR < deltaRBest) {
828 iJPTJetBest = iJPTJet;
870 double logPtGen = log10 (fGenJet.
pt());
871 double PtGen = fGenJet.
pt();
872 double PtJpt = fJPTJet.
pt();
876 double PtThreshold = 10.;
887 if (fGenJet.
pt()>PtThreshold) {
893 if (fJPTJet.
pt() > PtThreshold) {
899 if (fabs(fGenJet.
eta())<1.3) {
903 if (PtGen>60.0 && PtGen<120.0) {
906 if (PtGen>200.0 && PtGen<300.0) {
909 if (PtGen>600.0 && PtGen<900.0) {
912 if (PtGen>2700.0 && PtGen<3500.0) {
917 if (fabs(fGenJet.
eta())>1.3 && fabs(fGenJet.
eta())<3.0) {
921 if (PtGen>60.0 && PtGen<120.0) {
924 if (PtGen>200.0 && PtGen<300.0) {
927 if (PtGen>600.0 && PtGen<900.0) {
930 if (PtGen>2700.0 && PtGen<3500.0) {
935 if (fabs(fGenJet.
eta())>3.0 && fabs(fGenJet.
eta())<5.0) {
939 if (PtGen>60.0 && PtGen<120.0) {
942 if (PtGen>200.0 && PtGen<300.0) {
945 if (PtGen>600.0 && PtGen<900.0) {
948 if (PtGen>2700.0 && PtGen<3500.0) {
953 if (fGenJet.
pt()>60.0 && fGenJet.
pt()<120.0) {
959 if (fGenJet.
pt()>200.0 && fGenJet.
pt()<300.0) {
965 if (fGenJet.
pt()>600.0 && fGenJet.
pt()<900.0) {
971 if (fGenJet.
pt()>2700.0 && fGenJet.
pt()<3500.0) {
MonitorElement * mpTScale_600_900_d
void getManyByType(std::vector< Handle< PROD > > &results) const
MonitorElement * mPtFirst
MonitorElement * mEtaFineBin3m
MonitorElement * mpTScale1DB_600_900
MonitorElement * mMultiplicityPionInVertexOutCalo
MonitorElement * mMass_80
MonitorElement * mCaloMETSig_3000
MonitorElement * mPt_3000
double mMatchGenPtThreshold
MonitorElement * mpTScaleE_d
MonitorElement * mMultiplicityMuonInVertexOutCalo
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * mEScaleFineBin
MonitorElement * mPtFirst_80
MonitorElement * numberofevents
MonitorElement * mPthat_3000
MonitorElement * mPtFractionMuonInVertexInCalo
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_200_300_s
Base class for all types of Jets.
MonitorElement * mpTScaleE_s
MonitorElement * mMatchedGenJetsPt
std::vector< CaloTower >::const_iterator const_iterator
MonitorElement * mHadTiming
MonitorElement * mpTScale_200_300_d
MonitorElement * mGenJetMatchEnergyFraction
MonitorElement * mDeltaEta
MonitorElement * mCaloMEx_3000
MonitorElement * mpTScaleB_s
const_iterator end() const
Termination of iteration.
MonitorElement * mpTScale_2700_3500_d
std::string mTurnOnEverything
MonitorElement * mNJetsEtaC
virtual double eta() const
momentum pseudorapidity
const_iterator begin() const
Initialize an iterator over the RefVector.
MonitorElement * mMultiplicityElecOutVertexInCalo
MonitorElement * mPhiFirst
MonitorElement * mCaloSumET_3000
MonitorElement * mCaloMETSig
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
MonitorElement * mGenPt_3000
virtual double energy() const
energy
MonitorElement * mpTScale1DE_2700_3500
MonitorElement * mCaloMET_3000
MonitorElement * mReverseMatchEnergyFraction
MonitorElement * mAllGenJetsPt
MonitorElement * mPtFractionPionInVertexInCalo
MonitorElement * mpTScale1DF_200_300
MonitorElement * mGenPt_80
Jets made from CaloJets corrected for ZSP and tracks.
MonitorElement * mpTScale1DB_200_300
MonitorElement * mpTScale_60_120_s
double pt() const
track transverse momentum
MonitorElement * mCaloMEy
MonitorElement * mpTScaleB_d
MonitorElement * mPtFractionElecOutVertexInCalo
Jets made from MC generator particles.
MonitorElement * mpTScaleF_s
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
MonitorElement * mEScale_pt10
MonitorElement * mCaloMEy_3000
MonitorElement * mMultiplicityMuonInVertexInCalo
MonitorElement * mEtaFineBin
MonitorElement * mMatchedGenJetsEta
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * mPtFractionMuonOutVertexInCalo
MonitorElement * mpTScale_2700_3500_s
MonitorElement * mCaloSumET
MonitorElement * mPtFractionMuonInVertexOutCalo
MonitorElement * mpTScale1DF_2700_3500
double deltaR(double eta1, double eta2, double phi1, double phi2)
void fillMatchHists(const reco::GenJet &fGenJet, const reco::JPTJet &fJPTJet)
MonitorElement * mpTScale1D_600_900
double getSumPt(const reco::TrackRefVector &tracks)
MonitorElement * mJetEnergyProfile
MonitorElement * mMultiplicityMuonOutVertexInCalo
MonitorElement * mMultiplicityPionInVertexInCalo
MonitorElement * mEtaFineBin3p
MonitorElement * mPthat_80
virtual double px() const
x coordinate of momentum vector
edm::InputTag mInputCollection
virtual double pt() const
transverse momentum
MonitorElement * mNJetsEtaF
MonitorElement * mlinEScale
MonitorElement * mEtaFineBin2p
MonitorElement * mpTScale1DB_2700_3500
MonitorElement * mpTScale1DF_60_120
MonitorElement * mPtFirst_3000
MonitorElement * mCaloMEx
T const * product() const
MonitorElement * mpTScale1DE_200_300
MonitorElement * mEtaFineBin1m
MonitorElement * mEFirst_3000
MonitorElement * mpTScale1DF_600_900
MonitorElement * mpTScale1DE_60_120
MonitorElement * mPtFractionElecInVertexInCalo
MonitorElement * mGenEtaFirst
MonitorElement * mEtaFineBin1p
MonitorElement * mpTScale1DE_600_900
MonitorElement * mMjj_3000
MonitorElement * mCaloMETPhi
MonitorElement * mEFirst_80
MonitorElement * mpTScale1DB_60_120
MonitorElement * mEmEnergyProfile
MonitorElement * mpTScale1D_200_300
edm::InputTag mInputGenCollection
MonitorElement * mEmTiming
MonitorElement * mPhiFineBin
MonitorElement * mMultiplicityPionOutVertexInCalo
MonitorElement * mMass_3000
MonitorElement * mEtaFirst
MonitorElement * mpTScale1D_60_120
MonitorElement * mMultiplicityElecInVertexOutCalo
MonitorElement * mAllGenJetsEta
JPTJetTester(const edm::ParameterSet &)
MonitorElement * mPtFractionElecInVertexOutCalo
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
MonitorElement * mGenPhiFirst
virtual double phi() const
momentum azimuthal angle
MonitorElement * mEtaFineBin2m
MonitorElement * mpTScale_600_900_s
MonitorElement * mPtFractionPionInVertexOutCalo
MonitorElement * mpTScale_60_120_d
MonitorElement * mCaloMET
virtual double py() const
y coordinate of momentum vector
void setCurrentFolder(const std::string &fullpath)
MonitorElement * mMultiplicityElecInVertexInCalo
MonitorElement * mpTScaleF_d
MonitorElement * mHadEnergyProfile
MonitorElement * mpTScale1D_2700_3500
MonitorElement * mDeltaPhi
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")
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * mPtFractionPionOutVertexInCalo