32 jetTracksAssociator = cfg.
getParameter<
string> (
"jetTracksAssociator");
40 m_HistNames1D[
"CaloJetMulti"] =
new TH1F(
"CaloJetMulti",
"Multiplicity of CaloJets",100,0,100);
41 m_HistNames1D[
"ptCalo"] =
new TH1F(
"ptCalo",
"p_{T} of CaloJets",7000,0,7000);
42 m_HistNames1D[
"etaCalo"] =
new TH1F(
"etaCalo",
"#eta of CaloJets",100,-5.0,5.0);
43 m_HistNames1D[
"phiCalo"] =
new TH1F(
"phiCalo",
"#phi of CaloJets",72,-
M_PI,
M_PI);
44 m_HistNames1D[
"m2jCalo"] =
new TH1F(
"m2jCalo",
"Dijet Mass of leading CaloJets",7000,0,14000);
45 m_HistNames1D[
"nTracks"] =
new TH1F(
"nTracks",
"Number of tracks associated with a jet",100,0,100);
46 m_HistNames1D[
"chargeFraction"] =
new TH1F(
"chargeFraction",
"Fraction of charged tracks pt",500,0,5);
47 m_HistNames1D[
"emEnergyFraction"] =
new TH1F(
"emEnergyFraction",
"Jets EM Fraction",110,0,1.1);
48 m_HistNames1D[
"emEnergyInEB"] =
new TH1F(
"emEnergyInEB",
"Jets emEnergyInEB",7000,0,14000);
49 m_HistNames1D[
"emEnergyInEE"] =
new TH1F(
"emEnergyInEE",
"Jets emEnergyInEE",7000,0,14000);
50 m_HistNames1D[
"emEnergyInHF"] =
new TH1F(
"emEnergyInHF",
"Jets emEnergyInHF",7000,0,14000);
51 m_HistNames1D[
"hadEnergyInHB"] =
new TH1F(
"hadEnergyInHB",
"Jets hadEnergyInHB",7000,0,14000);
52 m_HistNames1D[
"hadEnergyInHE"] =
new TH1F(
"hadEnergyInHE",
"Jets hadEnergyInHE",7000,0,14000);
53 m_HistNames1D[
"hadEnergyInHF"] =
new TH1F(
"hadEnergyInHF",
"Jets hadEnergyInHF",7000,0,14000);
54 m_HistNames1D[
"hadEnergyInHO"] =
new TH1F(
"hadEnergyInHO",
"Jets hadEnergyInHO",7000,0,14000);
55 m_HistNamesProfile[
"EBfractionVsEta"] =
new TProfile(
"EBfractionVsEta",
"Jets EBfraction vs #eta",100,-5.0,5.0);
56 m_HistNamesProfile[
"EEfractionVsEta"] =
new TProfile(
"EEfractionVsEta",
"Jets EEfraction vs #eta",100,-5.0,5.0);
57 m_HistNamesProfile[
"HBfractionVsEta"] =
new TProfile(
"HBfractionVsEta",
"Jets HBfraction vs #eta",100,-5.0,5.0);
58 m_HistNamesProfile[
"HOfractionVsEta"] =
new TProfile(
"HOfractionVsEta",
"Jets HOfraction vs #eta",100,-5.0,5.0);
59 m_HistNamesProfile[
"HEfractionVsEta"] =
new TProfile(
"HEfractionVsEta",
"Jets HEfraction vs #eta",100,-5.0,5.0);
60 m_HistNamesProfile[
"HFfractionVsEta"] =
new TProfile(
"HFfractionVsEta",
"Jets HFfraction vs #eta",100,-5.0,5.0);
61 m_HistNamesProfile[
"CaloEnergyVsEta"] =
new TProfile(
"CaloEnergyVsEta",
"CaloJets Energy Vs. Eta",100,-5.0,5.0);
62 m_HistNamesProfile[
"emEnergyVsEta"] =
new TProfile(
"emEnergyVsEta",
"Jets EM Energy Vs. Eta",100,-5.0,5.0);
63 m_HistNamesProfile[
"hadEnergyVsEta"] =
new TProfile(
"hadEnergyVsEta",
"Jets HAD Energy Vs. Eta",100,-5.0,5.0);
66 m_HistNames1D[
"GenJetMulti"] =
new TH1F(
"GenJetMulti",
"Multiplicity of GenJets",100,0,100);
67 m_HistNames1D[
"ptHat"] =
new TH1F(
"ptHat",
"p_{T}hat",7000,0,7000);
68 m_HistNames1D[
"ptGen"] =
new TH1F(
"ptGen",
"p_{T} of GenJets",7000,0,7000);
69 m_HistNames1D[
"etaGen"] =
new TH1F(
"etaGen",
"#eta of GenJets",100,-5.0,5.0);
70 m_HistNames1D[
"phiGen"] =
new TH1F(
"phiGen",
"#phi of GenJets",72,-
M_PI,
M_PI);
71 m_HistNames1D[
"m2jGen"] =
new TH1F(
"m2jGen",
"Dijet Mass of leading GenJets",7000,0,14000);
72 m_HistNames1D[
"dR"] =
new TH1F(
"dR",
"GenJets dR with matched CaloJet",200,0,1);
73 m_HistNamesProfile[
"GenEnergyVsEta"] =
new TProfile(
"GenEnergyVsEta",
"GenJets Energy Vs. Eta",100,-5.0,5.0);
74 m_HistNamesProfile[
"respVsPtBarrel"] =
new TProfile(
"respVsPtBarrel",
"CaloJet Response of GenJets in Barrel",7000,0,7000);
75 m_HistNamesProfile[
"CaloErespVsEta"] =
new TProfile(
"CaloErespVsEta",
"Jets Energy Response Vs. Eta",100,-5.0,5.0);
76 m_HistNamesProfile[
"emErespVsEta"] =
new TProfile(
"emErespVsEta",
"Jets EM Energy Response Vs. Eta",100,-5.0,5.0);
77 m_HistNamesProfile[
"hadErespVsEta"] =
new TProfile(
"hadErespVsEta",
"Jets HAD Energy Response Vs. Eta",100,-5.0,5.0);
85 double dRmin,
dR,
e,
eta,emEB,emEE,emHF,hadHB,hadHE,hadHO,hadHF,
pt,
phi,pthat,chf;
90 CaloJetCollection::const_iterator i_caljet;
91 GenJetCollection::const_iterator i_genjet;
96 if (caljets->size()==0)
97 cout<<
"WARNING: NO calo jets in event "<<evt.
id().
event()<<
", Run "<<evt.
id().
run()<<
" !!!!"<<endl;
98 for(i_caljet = caljets->begin(); i_caljet != caljets->end() && jetInd<Njets; ++i_caljet)
100 e = i_caljet->energy();
102 phi = i_caljet->phi();
103 eta = i_caljet->eta();
104 emEB = i_caljet->emEnergyInEB();
105 emEE = i_caljet->emEnergyInEE();
106 emHF = i_caljet->emEnergyInHF();
107 hadHB = i_caljet->hadEnergyInHB();
108 hadHE = i_caljet->hadEnergyInHE();
109 hadHO = i_caljet->hadEnergyInHO();
110 hadHF = i_caljet->hadEnergyInHF();
114 p4jet[jetInd] = i_caljet->p4();
117 FillHist1D(
"ptCalo",pt);
118 FillHist1D(
"etaCalo",eta);
119 FillHist1D(
"phiCalo",phi);
120 FillHist1D(
"emEnergyFraction",i_caljet->emEnergyFraction());
121 FillHist1D(
"nTracks",nTracks);
122 FillHist1D(
"chargeFraction",chf);
123 FillHist1D(
"emEnergyInEB",emEB);
124 FillHist1D(
"emEnergyInEE",emEE);
125 FillHist1D(
"emEnergyInHF",emHF);
126 FillHist1D(
"hadEnergyInHB",hadHB);
127 FillHist1D(
"hadEnergyInHE",hadHE);
128 FillHist1D(
"hadEnergyInHF",hadHF);
129 FillHist1D(
"hadEnergyInHO",hadHO);
130 FillHistProfile(
"EBfractionVsEta",eta,emEB/e);
131 FillHistProfile(
"EEfractionVsEta",eta,emEE/e);
132 FillHistProfile(
"HBfractionVsEta",eta,hadHB/e);
133 FillHistProfile(
"HOfractionVsEta",eta,hadHO/e);
134 FillHistProfile(
"HEfractionVsEta",eta,hadHE/e);
135 FillHistProfile(
"HFfractionVsEta",eta,(hadHF+emHF)/e);
136 FillHistProfile(
"CaloEnergyVsEta",eta,e);
137 FillHistProfile(
"emEnergyVsEta",eta,emEB+emEE+emHF);
138 FillHistProfile(
"hadEnergyVsEta",eta,hadHB+hadHO+hadHE+hadHF);
143 FillHist1D(
"CaloJetMulti",jetCounter);
145 FillHist1D(
"m2jCalo",(p4jet[0]+p4jet[1]).
mass());
149 evt.
getByLabel(
"genEventScale",genEventScale);
150 pthat = *genEventScale;
151 FillHist1D(
"ptHat",pthat);
154 if (genjets->size()==0)
155 cout<<
"WARNING: NO gen jets in event "<<evt.
id().
event()<<
", Run "<<evt.
id().
run()<<
" !!!!"<<endl;
156 for(i_genjet = genjets->begin(); i_genjet != genjets->end() && jetInd<Njets; ++i_genjet)
159 p4jet[jetInd] = i_genjet->p4();
160 FillHist1D(
"ptGen",i_genjet->pt());
161 FillHist1D(
"etaGen",i_genjet->eta());
162 FillHist1D(
"phiGen",i_genjet->phi());
163 FillHistProfile(
"GenEnergyVsEta",i_genjet->eta(),i_genjet->energy());
165 for(i_caljet = caljets->begin(); i_caljet != caljets->end(); ++i_caljet)
167 dR =
deltaR(i_caljet->eta(),i_caljet->phi(),i_genjet->eta(),i_genjet->phi());
171 MatchedJet = *i_caljet;
174 FillHist1D(
"dR",dRmin);
176 pt = MatchedJet.
pt();
177 eta = MatchedJet.
eta();
185 if (dRmin<dRmatch && pt>
PtMin)
187 FillHistProfile(
"CaloErespVsEta",eta,e/i_genjet->energy());
188 FillHistProfile(
"emErespVsEta",eta,(emEB+emEE+emHF)/i_genjet->energy());
189 FillHistProfile(
"hadErespVsEta",eta,(hadHB+hadHO+hadHE+hadHF)/i_genjet->energy());
190 if (fabs(i_genjet->eta())<1.)
191 FillHistProfile(
"respVsPtBarrel",i_genjet->pt(),pt/i_genjet->pt());
195 FillHist1D(
"GenJetMulti",jetInd);
197 FillHist1D(
"m2jGen",(p4jet[0]+p4jet[1]).
mass());
207 for (std::map<TString, TH1*>::iterator hid = m_HistNames1D.begin(); hid != m_HistNames1D.end(); hid++)
208 hid->second->Write();
209 for (std::map<TString, TH2*>::iterator hid = m_HistNames2D.begin(); hid != m_HistNames2D.end(); hid++)
210 hid->second->Write();
211 for (std::map<TString, TProfile*>::iterator hid = m_HistNamesProfile.begin(); hid != m_HistNamesProfile.end(); hid++)
212 hid->second->Write();
220 std::map<TString, TH1*>::iterator hid=m_HistNames1D.find(histName);
221 if (hid==m_HistNames1D.end())
222 std::cout <<
"%fillHist -- Could not find histogram with name: " << histName << std::endl;
224 hid->second->Fill(value);
229 std::map<TString, TH2*>::iterator hid=m_HistNames2D.find(histName);
230 if (hid==m_HistNames2D.end())
231 std::cout <<
"%fillHist -- Could not find histogram with name: " << histName << std::endl;
233 hid->second->Fill(valuex,valuey);
238 std::map<TString, TProfile*>::iterator hid=m_HistNamesProfile.find(histName);
239 if (hid==m_HistNamesProfile.end())
240 std::cout <<
"%fillHist -- Could not find histogram with name: " << histName << std::endl;
242 hid->second->Fill(valuex,valuey);
float hadEnergyInHE() const
float emEnergyInEE() const
T getParameter(std::string const &) const
EventNumber_t event() const
const unsigned int nTracks(const reco::Vertex &sv)
Jets made from CaloTowers.
virtual double energy() const final
energy
#define DEFINE_FWK_MODULE(type)
float emEnergyInHF() const
void FillHist1D(const TString &histName, const Double_t &x)
void FillHistProfile(const TString &histName, const Double_t &x, const Double_t &y)
void analyze(edm::Event const &e, edm::EventSetup const &iSetup)
float hadEnergyInHO() const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
float emEnergyInEB() const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
double deltaR(double eta1, double eta2, double phi1, double phi2)
JetValidation(edm::ParameterSet const &cfg)
LorentzVector tracksP4(const Container &, const reco::JetBaseRef)
Get LorentzVector as sum of all tracks associated with jet.
Geom::Phi< T > phi() const
float hadEnergyInHB() const
int tracksNumber(const Container &, const reco::JetBaseRef)
Get number of tracks associated with jet.
virtual double eta() const final
momentum pseudorapidity
float hadEnergyInHF() const
void FillHist2D(const TString &histName, const Double_t &x, const Double_t &y)
virtual double pt() const final
transverse momentum