57 h_MCPhoE_ = fs->
make<TH1F>(
"MCPhoE",
"MC photon energy", 100, 0., 100.);
58 h_MCPhoPhi_ = fs->
make<TH1F>(
"MCPhoPhi",
"MC photon phi", 40, -3.14, 3.14);
59 h_MCPhoEta_ = fs->
make<TH1F>(
"MCPhoEta",
"MC photon eta", 25, 0., 2.5);
60 h_MCPhoEta1_ = fs->
make<TH1F>(
"MCPhoEta1",
"MC photon eta", 40, -3., 3.);
61 h_MCPhoEta2_ = fs->
make<TH1F>(
"MCPhoEta2",
"MC photon eta", 40, -3., 3.);
62 h_MCPhoEta3_ = fs->
make<TH1F>(
"MCPhoEta3",
"MC photon eta", 40, -3., 3.);
63 h_MCPhoEta4_ = fs->
make<TH1F>(
"MCPhoEta4",
"MC photon eta", 40, -3., 3.);
65 h_MCConvPhoE_ = fs->
make<TH1F>(
"MCConvPhoE",
"MC converted photon energy", 100, 0., 100.);
66 h_MCConvPhoPhi_ = fs->
make<TH1F>(
"MCConvPhoPhi",
"MC converted photon phi", 40, -3.14, 3.14);
67 h_MCConvPhoEta_ = fs->
make<TH1F>(
"MCConvPhoEta",
"MC converted photon eta", 25, 0., 2.5);
68 h_MCConvPhoR_ = fs->
make<TH1F>(
"MCConvPhoR",
"MC converted photon R", 120, 0., 120.);
70 h_MCConvPhoREta1_ = fs->
make<TH1F>(
"MCConvPhoREta1",
"MC converted photon R", 120, 0., 120.);
71 h_MCConvPhoREta2_ = fs->
make<TH1F>(
"MCConvPhoREta2",
"MC converted photon R", 120, 0., 120.);
72 h_MCConvPhoREta3_ = fs->
make<TH1F>(
"MCConvPhoREta3",
"MC converted photon R", 120, 0., 120.);
73 h_MCConvPhoREta4_ = fs->
make<TH1F>(
"MCConvPhoREta4",
"MC converted photon R", 120, 0., 120.);
75 h_convFracEta1_ = fs->
make<TH1F>(
"convFracEta1",
"Integrated(R) fraction of conversion |eta|=0.2", 120, 0., 120.);
76 h_convFracEta2_ = fs->
make<TH1F>(
"convFracEta2",
"Integrated(R) fraction of conversion |eta|=0.9", 120, 0., 120.);
77 h_convFracEta3_ = fs->
make<TH1F>(
"convFracEta3",
"Integrated(R) fraction of conversion |eta|=1.5", 120, 0., 120.);
78 h_convFracEta4_ = fs->
make<TH1F>(
"convFracEta4",
"Integrated(R) fraction of conversion |eta|=2.0", 120, 0., 120.);
80 h_MCConvPhoTwoTracksE_ =
81 fs->
make<TH1F>(
"MCConvPhoTwoTracksE",
"MC converted photon with 2 tracks energy", 100, 0., 100.);
82 h_MCConvPhoTwoTracksPhi_ =
83 fs->
make<TH1F>(
"MCConvPhoTwoTracksPhi",
"MC converted photon 2 tracks phi", 40, -3.14, 3.14);
84 h_MCConvPhoTwoTracksEta_ = fs->
make<TH1F>(
"MCConvPhoTwoTracksEta",
"MC converted photon 2 tracks eta", 40, -3., 3.);
85 h_MCConvPhoTwoTracksR_ = fs->
make<TH1F>(
"MCConvPhoTwoTracksR",
"MC converted photon 2 tracks eta", 48, 0., 120.);
87 h_MCConvPhoOneTrackE_ =
88 fs->
make<TH1F>(
"MCConvPhoOneTrackE",
"MC converted photon with 1 track energy", 100, 0., 100.);
89 h_MCConvPhoOneTrackPhi_ = fs->
make<TH1F>(
"MCConvPhoOneTrackPhi",
"MC converted photon 1 track phi", 40, -3.14, 3.14);
90 h_MCConvPhoOneTrackEta_ = fs->
make<TH1F>(
"MCConvPhoOneTrackEta",
"MC converted photon 1 track eta", 40, -3., 3.);
91 h_MCConvPhoOneTrackR_ = fs->
make<TH1F>(
"MCConvPhoOneTrackR",
"MC converted photon 1 track eta", 48, 0., 120.);
94 h_MCEleE_ = fs->
make<TH1F>(
"MCEleE",
"MC ele energy", 100, 0., 200.);
95 h_MCElePhi_ = fs->
make<TH1F>(
"MCElePhi",
"MC ele phi", 40, -3.14, 3.14);
96 h_MCEleEta_ = fs->
make<TH1F>(
"MCEleEta",
"MC ele eta", 40, -3., 3.);
97 h_BremFrac_ = fs->
make<TH1F>(
"bremFrac",
"brem frac ", 100, 0., 1.);
98 h_BremEnergy_ = fs->
make<TH1F>(
"BremE",
"Brem energy", 100, 0., 200.);
99 h_EleEvsPhoE_ = fs->
make<TH2F>(
"eleEvsPhoE",
"eleEvsPhoE", 100, 0., 200., 100, 0., 200.);
100 h_bremEvsEleE_ = fs->
make<TH2F>(
"bremEvsEleE",
"bremEvsEleE", 100, 0., 200., 100, 0., 200.);
102 p_BremVsR_ = fs->
make<TProfile>(
"BremVsR",
" Mean Brem Energy vs R ", 48, 0., 120.);
103 p_BremVsEta_ = fs->
make<TProfile>(
"BremVsEta",
" Mean Brem Energy vs Eta ", 50, -2.5, 2.5);
105 p_BremVsConvR_ = fs->
make<TProfile>(
"BremVsConvR",
" Mean Brem Fraction vs conversion R ", 48, 0., 120.);
106 p_BremVsConvEta_ = fs->
make<TProfile>(
"BremVsConvEta",
" Mean Brem Fraction vs converion Eta ", 50, -2.5, 2.5);
108 h_bremFracVsConvR_ = fs->
make<TH2F>(
"bremFracVsConvR",
"brem Fraction vs conversion R", 60, 0., 120., 100, 0., 1.);
115 const float PI = 3.1415927;
119 const float R_ECAL = 136.5;
126 float ZEcal =
R_ECAL * sinh(EtaParticle) + Zvertex;
136 if (EtaParticle < 0.0)
138 float Zlen = Zend - Zvertex;
139 float RR = Zlen / sinh(EtaParticle);
140 Theta = atan(RR / Zend);
152 const float PI = 3.1415927;
178 LogInfo(
"mcEleAnalyzer") <<
"MCPhotonAnalyzer Analyzing event number: " <<
e.id() <<
" Global Counter " << nEvt_
181 std::cout <<
"MCPhotonAnalyzer Analyzing event number: " <<
e.id() <<
" Global Counter " << nEvt_ <<
"\n";
184 std::cout <<
" MCPhotonAnalyzer Looking for MC truth "
188 std::vector<SimTrack> theSimTracks;
189 std::vector<SimVertex> theSimVertices;
193 e.getByLabel(
"g4SimHits", SimTk);
194 e.getByLabel(
"g4SimHits", SimVtx);
196 theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end());
197 theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end());
198 std::cout <<
" MCPhotonAnalyzer This Event has " << theSimTracks.size() <<
" sim tracks " << std::endl;
199 std::cout <<
" MCPhotonAnalyzer This Event has " << theSimVertices.size() <<
" sim vertices " << std::endl;
200 if (theSimTracks.empty())
201 std::cout <<
" Event number " <<
e.id() <<
" has NO sim tracks " << std::endl;
203 std::vector<PhotonMCTruth> mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices);
204 std::cout <<
" MCPhotonAnalyzer mcPhotons size " << mcPhotons.size() << std::endl;
206 for (std::vector<PhotonMCTruth>::const_iterator iPho = mcPhotons.begin(); iPho != mcPhotons.end(); ++iPho) {
207 if ((*iPho).fourMomentum().e() < 35)
210 h_MCPhoE_->Fill((*iPho).fourMomentum().e());
212 float Theta = (*iPho).fourMomentum().theta();
213 float correta = -
log(
tan(0.5 * Theta));
214 correta = etaTransformation(correta, (*iPho).primaryVertex().z());
216 h_MCPhoEta_->Fill(fabs(correta) - 0.001);
217 h_MCPhoPhi_->Fill((*iPho).fourMomentum().phi());
230 if (fabs(correta) <= 0.3 && fabs(correta) > 0.2)
231 h_MCPhoEta1_->Fill(correta);
232 if (fabs(correta) <= 1.00 && fabs(correta) > 0.9)
233 h_MCPhoEta2_->Fill(correta);
234 if (fabs(correta) <= 1.6 && fabs(correta) > 1.5)
235 h_MCPhoEta3_->Fill(correta);
236 if (fabs(correta) <= 2. && fabs(correta) > 1.9)
237 h_MCPhoEta4_->Fill(correta);
240 if ((*iPho).isAConversion()) {
241 h_MCConvPhoE_->Fill((*iPho).fourMomentum().e());
244 h_MCConvPhoEta_->Fill(fabs(correta) - 0.001);
245 h_MCConvPhoPhi_->Fill((*iPho).fourMomentum().phi());
246 h_MCConvPhoR_->Fill((*iPho).vertex().perp());
259 if (fabs(correta) <= 0.3 && fabs(correta) > 0.2)
260 h_MCConvPhoREta1_->Fill((*iPho).vertex().perp());
261 if (fabs(correta) <= 1. && fabs(correta) > 0.9)
262 h_MCConvPhoREta2_->Fill((*iPho).vertex().perp());
263 if (fabs(correta) <= 1.6 && fabs(correta) > 1.5)
264 h_MCConvPhoREta3_->Fill((*iPho).vertex().perp());
265 if (fabs(correta) <= 2 && fabs(correta) > 1.9)
266 h_MCConvPhoREta4_->Fill((*iPho).vertex().perp());
283 Double_t nTotEta1 = h_MCPhoEta1_->GetEntries();
284 Double_t nTotEta2 = h_MCPhoEta2_->GetEntries();
285 Double_t nTotEta3 = h_MCPhoEta3_->GetEntries();
286 Double_t nTotEta4 = h_MCPhoEta4_->GetEntries();
288 for (
int i = 1;
i <= 120; ++
i) {
289 e1 = (
int)h_MCConvPhoREta1_->GetBinContent(
i);
290 e2 = (
int)h_MCConvPhoREta2_->GetBinContent(
i);
291 e3 = (
int)h_MCConvPhoREta3_->GetBinContent(
i);
292 e4 = (
int)h_MCConvPhoREta4_->GetBinContent(
i);
297 h_convFracEta1_->SetBinContent(
i, s1 * 100 / nTotEta1);
298 h_convFracEta2_->SetBinContent(
i,
s2 * 100 / nTotEta2);
299 h_convFracEta3_->SetBinContent(
i, s3 * 100 / nTotEta3);
300 h_convFracEta4_->SetBinContent(
i, s4 * 100 / nTotEta4);
303 edm::LogInfo(
"MCPhotonAnalyzer") <<
"Analyzed " << nEvt_ <<
"\n";
304 std::cout <<
"MCPhotonAnalyzer::endJob Analyzed " << nEvt_ <<
" events "