38 bool is_B (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) < 1.3;}
39 bool is_E (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) >= 1.3 && fabs (fJet.
eta()) < 3.;}
40 bool is_F (
const reco::Jet& fJet) {
return fabs (fJet.
eta()) >= 3.;}
44 : mInputCollection (iConfig.getParameter<edm::
InputTag>(
"src" )),
45 mInputGenCollection (iConfig.getParameter<edm::
InputTag>(
"srcGen" )),
46 rho_tag_ (iConfig.getParameter<edm::
InputTag>(
"srcRho" )),
47 mOutputFile (iConfig.getUntrackedParameter<std::string>(
"outputFile",
"")),
48 mMatchGenPtThreshold (iConfig.getParameter<double>(
"genPtThreshold")),
49 mGenEnergyFractionThreshold (iConfig.getParameter<double>(
"genEnergyFractionThreshold")),
50 mReverseEnergyFractionThreshold (iConfig.getParameter<double>(
"reverseEnergyFractionThreshold")),
51 mRThreshold (iConfig.getParameter<double>(
"RThreshold")),
52 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);
121 mP = dbe->
book1D(
"P",
"P", 100, 0, 500);
124 mPt = dbe->
book1D(
"Pt",
"Pt", 100, 0, 150);
139 mMjj = dbe->
book1D(
"Mjj",
"Mjj", 100, 0, 2000);
236 double log10PtMin = 0.5;
237 double log10PtMax = 3.75;
238 int log10PtBins = 26;
242 double etaRange[91] = {-6.0,-5.8,-5.6,-5.4,-5.2,-5.0,-4.8,-4.6,-4.4,-4.2,-4.0,-3.8,-3.6,-3.4,-3.2,-3.0,-2.9,-2.8,-2.7,-2.6,-2.5,-2.4,-2.3,-2.2,-2.1,-2.0,-1.9,-1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,-1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3.0,3.2,3.4,3.6,3.8,4.0,4.2,4.4,4.6,4.8,5.0,5.2,5.4,5.6,5.8,6.0};
310 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
312 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
314 log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
316 70, -3.5, 3.5, 0, 2,
" ");
318 70, -3.5, 3.5, 0, 2,
" ");
320 70, -3.5, 3.5, 0, 2,
" ");
330 90,etaRange, 0., 2.,
" ");
332 90,etaRange, 0., 2.,
" ");
334 90,etaRange, 0., 2.,
" ");
336 90,etaRange, 0., 2.,
" ");
378 LogInfo(
"OutputInfo") <<
" CaloJet histograms will NOT be saved";
399 double countsfornumberofevents = 1;
408 HepMC::GenEvent * myGenEvent =
new HepMC::GenEvent(*(evt->GetEvent()));
410 double pthat = myGenEvent->event_scale();
457 mEvent.
getByLabel(
"towerMaker", caloTowers );
480 std::vector<edm::Handle<HBHERecHitCollection> > colls;
482 std::vector<edm::Handle<HBHERecHitCollection> >::iterator
i;
483 for (i=colls.begin(); i!=colls.end(); i++) {
503 std::vector<edm::Handle<HFRecHitCollection> > colls;
505 std::vector<edm::Handle<HFRecHitCollection> >::iterator
i;
506 for (i=colls.begin(); i!=colls.end(); i++) {
522 std::vector<edm::Handle<HORecHitCollection> > colls;
524 std::vector<edm::Handle<HORecHitCollection> >::iterator
i;
525 for (i=colls.begin(); i!=colls.end(); i++) {
539 std::vector<edm::Handle<EBRecHitCollection> > colls;
541 std::vector<edm::Handle<EBRecHitCollection> >::iterator
i;
542 for (i=colls.begin(); i!=colls.end(); i++) {
557 std::vector<edm::Handle<EERecHitCollection> > colls;
559 std::vector<edm::Handle<EERecHitCollection> >::iterator
i;
560 for (i=colls.begin(); i!=colls.end(); i++) {
590 if (!caloJets.
isValid())
return;
591 CaloJetCollection::const_iterator
jet = caloJets->begin ();
596 for (; jet != caloJets->end (); jet++, jetIndex++) {
599 if (jet->pt() > 10.) {
601 if (fabs(jet->eta()) > 1.5)
606 if (jet->pt() > 10.) {
631 if (jet == caloJets->begin ()) {
640 p4tmp[0] = jet->p4();
644 p4tmp[1] = jet->p4();
696 for (
int istep = 0; istep < 100; ++istep) {
698 float ptStep = (istep * (200./100.));
700 for ( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
701 if ( cal->pt() > ptStep ) njet++;
706 for (
int istep = 0; istep < 100; ++istep) {
708 float ptStep = (istep * (4000./100.));
709 for ( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
710 if ( cal->pt() > ptStep ) njet++;
719 if (!genJets.
isValid())
return;
720 GenJetCollection::const_iterator gjet = genJets->begin ();
722 for (; gjet != genJets->end (); gjet++, gjetIndex++) {
727 if (gjet == genJets->begin ()) {
740 std::vector <std::vector <const reco::GenParticle*> > genJetConstituents (genJets->size());
741 std::vector <std::vector <const reco::GenParticle*> > caloJetConstituents (caloJets->size());
745 for (
unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) {
746 genJetConstituents [iGenJet] = jetMatching.
getGenParticles ((*genJets) [iGenJet]);
749 for (
unsigned iCaloJet = 0; iCaloJet < caloJets->size(); ++iCaloJet) {
750 caloJetConstituents [iCaloJet] = jetMatching.
getGenParticles ((*caloJets) [iCaloJet],
false);
754 for (
unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) {
756 const GenJet& genJet = (*genJets) [iGenJet];
757 double genJetPt = genJet.
pt();
761 if (fabs(genJet.
eta()) > 6.)
continue;
766 if (caloJets->size() <= 0)
continue;
768 unsigned iCaloJetBest = 0;
769 double deltaRBest = 999.;
770 for (
unsigned iCaloJet = 0; iCaloJet < caloJets->size(); ++iCaloJet) {
771 double dR =
deltaR (genJet.
eta(), genJet.
phi(), (*caloJets) [iCaloJet].eta(), (*caloJets) [iCaloJet].phi());
780 if (dR < deltaRBest) {
781 iCaloJetBest = iCaloJet;
793 unsigned iCaloJetBest = 0;
794 double energyFractionBest = 0.;
795 for (
unsigned iCaloJet = 0; iCaloJet < caloJets->size(); ++iCaloJet) {
797 caloJetConstituents [iCaloJet]);
798 if (energyFraction > energyFractionBest) {
799 iCaloJetBest = iCaloJet;
800 energyFractionBest = energyFraction;
807 double reverseEnergyFraction = jetMatching.
overlapEnergyFraction (caloJetConstituents [iCaloJetBest],
808 genJetConstituents [iGenJet]);
824 double logPtGen = log10 (fGenJet.
pt());
825 double PtGen = fGenJet.
pt();
826 double PtCalo = fCaloJet.
pt();
830 double PtThreshold = 10.;
841 if (fGenJet.
pt()>PtThreshold) {
847 if (fCaloJet.
pt() > PtThreshold) {
853 if (fabs(fGenJet.
eta())<1.5) {
859 if (PtGen>30.0 && PtGen<200.0) {
862 if (PtGen>200.0 && PtGen<600.0) {
865 if (PtGen>600.0 && PtGen<1500.0) {
868 if (PtGen>1500.0 && PtGen<3500.0) {
874 if (fabs(fGenJet.
eta())>1.5 && fabs(fGenJet.
eta())<3.0) {
880 if (PtGen>30.0 && PtGen<200.0) {
883 if (PtGen>200.0 && PtGen<600.0) {
886 if (PtGen>600.0 && PtGen<1500.0) {
889 if (PtGen>1500.0 && PtGen<3500.0) {
895 if (fabs(fGenJet.
eta())>3.0 && fabs(fGenJet.
eta())<6.0) {
901 if (PtGen>30.0 && PtGen<200.0) {
904 if (PtGen>200.0 && PtGen<600.0) {
907 if (PtGen>600.0 && PtGen<1500.0) {
910 if (PtGen>1500.0 && PtGen<3500.0) {
916 if (fGenJet.
pt()>30.0 && fGenJet.
pt()<200.0) {
922 if (fGenJet.
pt()>200.0 && fGenJet.
pt()<600.0) {
928 if (fGenJet.
pt()>600.0 && fGenJet.
pt()<1500.0) {
934 if (fGenJet.
pt()>1500.0 && fGenJet.
pt()<3500.0) {
double mMatchGenPtThreshold
void getManyByType(std::vector< Handle< PROD > > &results) const
edm::InputTag mInputCollection
MonitorElement * mEmEnergyInEB_80
MonitorElement * mPthat_3000
MonitorElement * mGenPt_80
MonitorElement * mHadEnergyInHB_80
Jets made from CaloTowers.
MonitorElement * mHadEnergyInHE_80
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * mMjj_3000
MonitorElement * mpTScale1DF_30_200
MonitorElement * mGenEtaFirst
Base class for all types of Jets.
MonitorElement * mPthat_80
MonitorElement * mPtFirst
MonitorElement * mEmTiming
MonitorElement * mHadEnergyInHO
std::vector< CaloTower >::const_iterator const_iterator
MonitorElement * mpTScaleF_d
MonitorElement * mPtFirst_80
MonitorElement * mHadEnergyInHE
MonitorElement * mpTScale1DF_1500_3500
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * mMaxEInEmTowers
MonitorElement * mpTScale_600_1500_d
virtual double eta() const
momentum pseudorapidity
MonitorElement * mEScaleFineBin
double mReverseEnergyFractionThreshold
MonitorElement * mMaxEInHadTowers
MonitorElement * mpTScale1DE_30_200
MonitorElement * mpTScale_1500_3500_d
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
MonitorElement * mEnergyFractionEm_F
MonitorElement * mHFTotal_80
virtual double energy() const
energy
MonitorElement * mDeltaEta
CaloJetTesterUnCorr_HeavyIons(const edm::ParameterSet &)
MonitorElement * mHFShort
MonitorElement * mpTScalePhiB_d
MonitorElement * mpTScalePhiF_d
MonitorElement * mHadEnergyInHO_3000
double mGenEnergyFractionThreshold
MonitorElement * mNJetsEtaC
MonitorElement * mpTScale_200_600_d
Jets made from MC generator particles.
MonitorElement * mPtFirst_3000
MonitorElement * mPhiFineBin
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 * mEmEnergyInHF
MonitorElement * mEmEnergyInEE_80
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * mpTScale_30_200_d
MonitorElement * mpTScale1DE_200_600
double deltaR(double eta1, double eta2, double phi1, double phi2)
MonitorElement * mpTScalePhiE_d
MonitorElement * mEtaFirst
MonitorElement * mpTScale1DF_600_1500
MonitorElement * mHadTiming
MonitorElement * mpTScaleE_d
MonitorElement * mEnergyFractionHadronic_E
void fillMatchHists(const reco::GenJet &fGenJet, const reco::CaloJet &fCaloJet)
MonitorElement * mpTScale1DB_200_600
virtual double pt() const
transverse momentum
MonitorElement * mHFShort_80
MonitorElement * mjetpileup
MonitorElement * mEnergyFractionEm_B
MonitorElement * mConstituents_80
MonitorElement * mHadEnergyInHB
~CaloJetTesterUnCorr_HeavyIons()
MonitorElement * mHadEnergyInHO_80
MonitorElement * mEmEnergyInEE
MonitorElement * numberofevents
Parameters returning from algorithms.
MonitorElement * mEnergyFractionEm_E
MonitorElement * mpTScale1DB_30_200
MonitorElement * mMass_80
MonitorElement * mpTScale1DF_200_600
MonitorElement * mpTScale1DE_1500_3500
MonitorElement * mPhiFirst
std::string mTurnOnEverything
MonitorElement * mHFTotal
edm::InputTag mInputGenCollection
MonitorElement * mpTScaleB_d
MonitorElement * mpTScale1DE_600_1500
MonitorElement * mGenPhiFirst
MonitorElement * mpTScale1DB_600_1500
MonitorElement * mEScale_pt10
MonitorElement * mEtaFineBin
virtual double phi() const
momentum azimuthal angle
MonitorElement * mHFLong_80
MonitorElement * mNJetsEtaF
MonitorElement * mjetArea
MonitorElement * mDeltaPhi
void setCurrentFolder(const std::string &fullpath)
MonitorElement * mEnergyFractionHadronic_B
MonitorElement * mHadEnergyInHF
MonitorElement * mpTScale1DB_1500_3500
MonitorElement * mConstituents
MonitorElement * mEnergyFractionHadronic_F
MonitorElement * mEmEnergyInEB