CMS 3D CMS Logo

PhotonPostprocessing.cc
Go to the documentation of this file.
1 #include <iostream>
2 //
3 
5 
6 
7 //#define TWOPI 6.283185308
8 //
9 
22 using namespace std;
23 
24 
26 {
27 
28  dbe_ = nullptr;
30  dbe_->setVerbose(0);
31  parameters_ = pset;
32 
33 
34  analyzerName_ = pset.getParameter<std::string>("analyzerName");
35  standAlone_ = pset.getParameter<bool>("standAlone");
36  batch_ = pset.getParameter<bool>("batch");
37  outputFileName_ = pset.getParameter<string>("OutputFileName");
38  inputFileName_ = pset.getParameter<std::string>("InputFileName");
39  isRunCentrally_= pset.getParameter<bool>("isRunCentrally");
40  fastSim_ = pset.getParameter<bool>("fastSim");
41 
42  etMin = parameters_.getParameter<double>("etMin");
43  etMax = parameters_.getParameter<double>("etMax");
44  etBin = parameters_.getParameter<int>("etBin");
45 
46 
47  etaMin = parameters_.getParameter<double>("etaMin");
48  etaMax = parameters_.getParameter<double>("etaMax");
49  etaBin = parameters_.getParameter<int>("etaBin");
50  etaBin2 = parameters_.getParameter<int>("etaBin2");
51 
52  phiMin = parameters_.getParameter<double>("phiMin");
53  phiMax = parameters_.getParameter<double>("phiMax");
54  phiBin = parameters_.getParameter<int>("phiBin");
55 
56  rMin = parameters_.getParameter<double>("rMin");
57  rMax = parameters_.getParameter<double>("rMax");
58  rBin = parameters_.getParameter<int>("rBin");
59 
60  zMin = parameters_.getParameter<double>("zMin");
61  zMax = parameters_.getParameter<double>("zMax");
62  zBin = parameters_.getParameter<int>("zBin");
63 
64 
65 
66 }
67 
68 
69 
71 {}
72 
74 {
75 
76 }
77 
79 {}
80 
81 
83 
84 if(standAlone_) runPostprocessing();
85 
86 }
87 
89 
90  if(!standAlone_) runPostprocessing();
91 
92 }
93 
94 
96 {
97 
98 
99  std::string simInfoPathName = "EgammaV/"+ analyzerName_+"/SimulationInfo/";
100  std::string convPathName = "EgammaV/"+ analyzerName_+"/ConversionInfo/";
101  std::string effPathName = "EgammaV/"+ analyzerName_+"/Efficiencies/";
102  std::string photonPathName = "EgammaV/"+ analyzerName_+"/Photons/";
103 
104  if(batch_) dbe_->open(inputFileName_);
105 
106 
107  dbe_->setCurrentFolder(simInfoPathName);
108  // Numerators for Total efficiency
109  string histname = "h_simConvEtaMTotal";
110  h_simConvEtaMTotal_ = dbe_->book1D(histname,histname,etaBin2,etaMin, etaMax);
111  histname = "h_simConvPhiMTotal";
112  h_simConvPhiMTotal_ = dbe_->book1D(histname,histname,phiBin,phiMin,phiMax);
113  histname = "h_simConvRMTotal";
114  h_simConvRMTotal_ = dbe_->book1D(histname,histname,rBin,rMin, rMax);
115  histname = "h_simConvZMTotal";
116  h_simConvZMTotal_ = dbe_->book1D(histname,histname,zBin,zMin, zMax);
117  histname = "h_simConvEtMTotal";
118  h_simConvEtMTotal_ = dbe_->book1D(histname,histname,etBin,etMin, etMax);
119 
120  dbe_->setCurrentFolder(effPathName);
121  // Photon reconstruction efficiencies
122  histname = "recoEffVsEta";
123  phoRecoEffEta_ = dbe_->book1D(histname,"Photon reconstruction efficiency vs simulated #eta",etaBin,etaMin, etaMax);
124  histname = "recoEffVsPhi";
125  phoRecoEffPhi_ = dbe_->book1D(histname,"Photon reconstruction efficiency vs simulated #phi",phiBin,phiMin, phiMax);
126  histname = "recoEffVsEt";
127  phoRecoEffEt_ = dbe_->book1D(histname,"Photon reconstruction efficiency vs simulated Et",etBin,etMin, etMax) ;
128  // Fraction of photons with at least one dead channel
129  histname = "deadChVsEta";
130  phoDeadChEta_ = dbe_->book1D(histname,"Fraction of photons with >=1 dead Xtal vs simulated #eta",etaBin,etaMin, etaMax);
131  histname = "deadChVsPhi";
132  phoDeadChPhi_ = dbe_->book1D(histname,"Fraction of photons with >=1 dead Xtal vs simulated #phi",phiBin,phiMin, phiMax);
133  histname = "deadChVsEt";
134  phoDeadChEt_ = dbe_->book1D(histname,"Fraction of photons with >=1 dead Xtal vs simulated Et",etBin,etMin, etMax) ;
135 
136  if ( ! isRunCentrally_ ) {
137  histname = "convVsEt";
138  convVsEt_[0] = dbe_->book1D(histname+"Barrel","Fraction of good conversions in R9<0.93 vs Et ",etBin,etMin, etMax) ;
139  convVsEt_[1] = dbe_->book1D(histname+"Endcap","Fraction of good conversions in R9<0.93 vs Et ",etBin,etMin, etMax) ;
140  }
141 
142 
143 
144  // Conversion reconstruction efficiency
145  histname = "convEffVsEtaTwoTracks";
146  convEffEtaTwoTracks_ = dbe_->book1D(histname,histname,etaBin2,etaMin, etaMax);
147 
148  histname = "convEffVsPhiTwoTracks";
149  convEffPhiTwoTracks_ = dbe_->book1D(histname,histname,phiBin,phiMin,phiMax);
150 
151  histname = "convEffVsRTwoTracks";
152  convEffRTwoTracks_ = dbe_->book1D(histname,histname,rBin,rMin, rMax);
153 
154  histname = "convEffVsZTwoTracks";
155  convEffZTwoTracks_ = dbe_->book1D(histname,histname,zBin,zMin,zMax);
156 
157  histname = "convEffVsEtTwoTracks";
158  convEffEtTwoTracks_ = dbe_->book1D(histname,histname,etBin,etMin, etMax);
159  //
160  histname = "convEffVsEtaTwoTracksAndVtxProbGT0";
161  convEffEtaTwoTracksAndVtxProbGT0_ = dbe_->book1D(histname,histname,etaBin2,etaMin, etaMax);
162  histname = "convEffVsEtaTwoTracksAndVtxProbGT0005";
163  convEffEtaTwoTracksAndVtxProbGT0005_ = dbe_->book1D(histname,histname,etaBin2,etaMin, etaMax);
164  histname = "convEffVsRTwoTracksAndVtxProbGT0";
165  convEffRTwoTracksAndVtxProbGT0_ = dbe_->book1D(histname,histname,rBin,rMin,rMax);
166  histname = "convEffVsRTwoTracksAndVtxProbGT0005";
167  convEffRTwoTracksAndVtxProbGT0005_ = dbe_->book1D(histname,histname,rBin,rMin,rMax);
168  //
169  histname = "convEffVsEtaOneTrack";
170  convEffEtaOneTrack_ = dbe_->book1D(histname,histname,etaBin2,etaMin, etaMax);
171  histname = "convEffVsROneTrack";
172  convEffROneTrack_ = dbe_->book1D(histname,histname,rBin,rMin, rMax);
173  histname = "convEffVsZOneTrack";
174  convEffZOneTrack_ = dbe_->book1D(histname,histname,rBin,rMin, rMax);
175  histname = "convEffVsEtOneTrack";
176  convEffEtOneTrack_ = dbe_->book1D(histname,histname,etBin,etMin, etMax);
177  histname = "convEffVsPhiOneTrack";
178  convEffPhiOneTrack_ = dbe_->book1D(histname,histname,phiBin,phiMin,phiMax);
179  //
180  histname = "convEffVsEtaTotal";
181  convEffEtaTotal_ = dbe_->book1D(histname,histname,etaBin2,etaMin, etaMax);
182  histname = "convEffVsRTotal";
183  convEffRTotal_ = dbe_->book1D(histname,histname,rBin,rMin, rMax);
184  histname = "convEffVsZTotal";
185  convEffZTotal_ = dbe_->book1D(histname,histname,zBin,zMin, zMax);
186  histname = "convEffVsEtTotal";
187  convEffEtTotal_ = dbe_->book1D(histname,histname,etBin,etMin, etMax);
188  histname = "convEffVsPhiTotal";
189  convEffPhiTotal_ = dbe_->book1D(histname,histname,phiBin,phiMin,phiMax);
190  // Fake rate
191  histname = "convFakeRateVsEtaTwoTracks";
192  convFakeRateEtaTwoTracks_ = dbe_->book1D(histname,histname,etaBin2,etaMin, etaMax);
193  histname = "convFakeRateVsPhiTwoTracks";
194  convFakeRatePhiTwoTracks_ = dbe_->book1D(histname,histname,phiBin,phiMin,phiMax);
195  histname = "convFakeRateVsRTwoTracks";
196  convFakeRateRTwoTracks_ = dbe_->book1D(histname,histname,rBin,rMin, rMax);
197  histname = "convFakeRateVsZTwoTracks";
198  convFakeRateZTwoTracks_ = dbe_->book1D(histname,histname,zBin,zMin,zMax);
199  histname = "convFakeRateVsEtTwoTracks";
200  convFakeRateEtTwoTracks_ = dbe_->book1D(histname,histname,etBin,etMin, etMax);
201 
202  histname = "bkgEffVsEta";
203  bkgRecoEffEta_ = dbe_->book1D(histname,"Bkg reconstruction efficiency vs simulated #eta",etaBin,etaMin, etaMax);
204  histname = "bkgEffVsPhi";
205  bkgRecoEffPhi_ = dbe_->book1D(histname,"Bkg reconstruction efficiency vs simulated #phi",phiBin,phiMin, phiMax);
206  histname = "bkgEffVsEt";
207  bkgRecoEffEt_ = dbe_->book1D(histname,"Bkg reconstruction efficiency vs simulated Et",etBin,etMin, etMax) ;
208  // Fraction of photons with at least one dead channel
209  histname = "deadChVsEtaBkg";
210  bkgDeadChEta_ = dbe_->book1D(histname,"Fraction of bkg with >=1 dead Xtal vs simulated #eta",etaBin,etaMin, etaMax);
211  histname = "deadChVsPhiBkg";
212  bkgDeadChPhi_ = dbe_->book1D(histname,"Fraction of bkg with >=1 dead Xtal vs simulated #phi",phiBin,phiMin, phiMax);
213  histname = "deadChVsEtBkg";
214  bkgDeadChEt_ = dbe_->book1D(histname,"Fraction of bkg with >=1 dead Xtal vs simulated Et",etBin,etMin, etMax) ;
215 
216  //
217  if((dbe_->get(simInfoPathName+"h_SimConvOneMTracksEta")) != nullptr and
218  (dbe_->get(convPathName+"h_RecoConvTwoMTracksEta") != nullptr) ) {
219  h_simConvEtaMTotal_->getTH1F()->Add(dbe_->get(simInfoPathName+"h_SimConvOneMTracksEta")->getTH1F(),dbe_->get(convPathName+"h_RecoConvTwoMTracksEta")->getTH1F());
220  }
221  if((dbe_->get(simInfoPathName+"h_SimConvOneMTracksPhi") != nullptr) and
222  (dbe_->get(convPathName+"h_RecoConvTwoMTracksPhi") != nullptr) ) {
223  h_simConvPhiMTotal_->getTH1F()->Add(dbe_->get(simInfoPathName+"h_SimConvOneMTracksPhi")->getTH1F(),dbe_->get(convPathName+"h_RecoConvTwoMTracksPhi")->getTH1F());
224  }
225  if((dbe_->get(simInfoPathName+"h_SimConvOneMTracksR")->getTH1F() != nullptr) and
226  (dbe_->get(convPathName+"h_RecoConvTwoMTracksR") != nullptr) ) {
227  h_simConvRMTotal_ ->getTH1F()->Add(dbe_->get(simInfoPathName+"h_SimConvOneMTracksR")->getTH1F(),dbe_->get(convPathName+"h_RecoConvTwoMTracksR")->getTH1F());
228  }
229  if((dbe_->get(simInfoPathName+"h_SimConvOneMTracksZ") != nullptr) and
230  (dbe_->get(convPathName+"h_RecoConvTwoMTracksZ") != nullptr)) {
231  h_simConvZMTotal_ ->getTH1F()->Add(dbe_->get(simInfoPathName+"h_SimConvOneMTracksZ")->getTH1F(),dbe_->get(convPathName+"h_RecoConvTwoMTracksZ")->getTH1F());
232  }
233  if((dbe_->get(simInfoPathName+"h_SimConvOneMTracksEt") != nullptr) and
234  (dbe_->get(convPathName+"h_RecoConvTwoMTracksEt") != nullptr)) {
235  h_simConvEtMTotal_ ->getTH1F()->Add(dbe_->get(simInfoPathName+"h_SimConvOneMTracksEt")->getTH1F(),dbe_->get(convPathName+"h_RecoConvTwoMTracksEt")->getTH1F());
236  }
237 
238  // efficiencies
239  if ( ! isRunCentrally_ ) {
240  dividePlots(dbe_->get(effPathName+"convVsEtBarrel"),dbe_->get(photonPathName+"EtR9Less093ConvBarrel"),dbe_->get(photonPathName+"EtR9Less093Barrel"), "effic");
241  dividePlots(dbe_->get(effPathName+"convVsEtEndcap"),dbe_->get(photonPathName+"EtR9Less093ConvEndcap"),dbe_->get(photonPathName+"EtR9Less093Endcap"), "effic");
242  }
243 
244  dividePlots(dbe_->get(effPathName+"recoEffVsEta"),dbe_->get(simInfoPathName+"h_MatchedSimPhoEta"),dbe_->get(simInfoPathName+"h_SimPhoEta"), "effic");
245  dividePlots(dbe_->get(effPathName+"recoEffVsPhi"),dbe_->get(simInfoPathName+"h_MatchedSimPhoPhi"),dbe_->get(simInfoPathName+"h_SimPhoPhi"),"effic");
246  dividePlots(dbe_->get(effPathName+"recoEffVsEt"),dbe_->get(simInfoPathName+"h_MatchedSimPhoEt"),dbe_->get(simInfoPathName+"h_SimPhoEt"),"effic");
247  // fraction of photons with at least one dead channel
248  dividePlots(dbe_->get(effPathName+"deadChVsEta"),dbe_->get(simInfoPathName+"h_MatchedSimPhoBadChEta"),dbe_->get(simInfoPathName+"h_MatchedSimPhoEta"), "effic");
249  dividePlots(dbe_->get(effPathName+"deadChVsPhi"),dbe_->get(simInfoPathName+"h_MatchedSimPhoBadChPhi"),dbe_->get(simInfoPathName+"h_MatchedSimPhoPhi"),"effic");
250  dividePlots(dbe_->get(effPathName+"deadChVsEt"), dbe_->get(simInfoPathName+"h_MatchedSimPhoBadChEt"),dbe_->get(simInfoPathName+"h_MatchedSimPhoEt"),"effic");
251  //
252  if ( ! fastSim_ ) {
253  dividePlots(dbe_->get(effPathName+"convEffVsEtaTwoTracks"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksEta"),dbe_->get(simInfoPathName+"h_VisSimConvEta"),"effic");
254  dividePlots(dbe_->get(effPathName+"convEffVsPhiTwoTracks"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksPhi"),dbe_->get(simInfoPathName+"h_VisSimConvPhi"),"effic");
255  dividePlots(dbe_->get(effPathName+"convEffVsRTwoTracks"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksR"),dbe_->get(simInfoPathName+"h_VisSimConvR"),"effic");
256  dividePlots(dbe_->get(effPathName+"convEffVsZTwoTracks"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksZ"),dbe_->get(simInfoPathName+"h_VisSimConvZ"),"effic");
257  dividePlots(dbe_->get(effPathName+"convEffVsEtTwoTracks"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksEt"),dbe_->get(simInfoPathName+"h_VisSimConvEt"),"effic");
258  dividePlots(dbe_->get(effPathName+"convEffVsEtaTwoTracksAndVtxProbGT0"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksEtaAndVtxPGT0"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksEta"),"effic");
259  dividePlots(dbe_->get(effPathName+"convEffVsEtaTwoTracksAndVtxProbGT0005"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksEtaAndVtxPGT0005"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksEta"),"effic");
260  dividePlots(dbe_->get(effPathName+"convEffVsRTwoTracksAndVtxProbGT0"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksRAndVtxPGT0"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksR"),"effic");
261  dividePlots(dbe_->get(effPathName+"convEffVsRTwoTracksAndVtxProbGT0005"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksRAndVtxPGT0005"),dbe_->get(simInfoPathName+"h_SimConvTwoMTracksR"),"effic");
262  //
263  dividePlots(dbe_->get(effPathName+"convEffVsEtaOneTrack"),dbe_->get(simInfoPathName+"h_SimConvOneMTracksEta"),dbe_->get(simInfoPathName+"h_VisSimConvEta"),"effic");
264  dividePlots(dbe_->get(effPathName+"convEffVsPhiOneTrack"),dbe_->get(simInfoPathName+"h_SimConvOneMTracksPhi"),dbe_->get(simInfoPathName+"h_VisSimConvPhi"),"effic");
265  dividePlots(dbe_->get(effPathName+"convEffVsROneTrack"),dbe_->get(simInfoPathName+"h_SimConvOneMTracksR"),dbe_->get(simInfoPathName+"h_VisSimConvR"),"effic");
266  dividePlots(dbe_->get(effPathName+"convEffVsZOneTrack"),dbe_->get(simInfoPathName+"h_SimConvOneMTracksZ"),dbe_->get(simInfoPathName+"h_VisSimConvZ"),"effic");
267  dividePlots(dbe_->get(effPathName+"convEffVsEtOneTrack"),dbe_->get(simInfoPathName+"h_SimConvOneMTracksEt"),dbe_->get(simInfoPathName+"h_VisSimConvEt"),"effic");
268  //
269  dividePlots(dbe_->get(effPathName+"convEffVsEtaTotal"),dbe_->get(simInfoPathName+"h_simConvEtaMTotal"),dbe_->get(simInfoPathName+"h_VisSimConvEta"),"effic");
270  dividePlots(dbe_->get(effPathName+"convEffVsPhiTotal"),dbe_->get(simInfoPathName+"h_simConvPhiMTotal"),dbe_->get(simInfoPathName+"h_VisSimConvPhi"),"effic");
271  dividePlots(dbe_->get(effPathName+"convEffVsRTotal"),dbe_->get(simInfoPathName+"h_simConvRMTotal"),dbe_->get(simInfoPathName+"h_VisSimConvR"),"effic");
272  dividePlots(dbe_->get(effPathName+"convEffVsZTotal"),dbe_->get(simInfoPathName+"h_simConvZMTotal"),dbe_->get(simInfoPathName+"h_VisSimConvZ"),"effic");
273  dividePlots(dbe_->get(effPathName+"convEffVsEtTotal"),dbe_->get(simInfoPathName+"h_simConvEtMTotal"),dbe_->get(simInfoPathName+"h_VisSimConvEt"),"effic");
274  // fake rate
275  dividePlots(dbe_->get(effPathName+"convFakeRateVsEtaTwoTracks"),dbe_->get(convPathName+"h_RecoConvTwoMTracksEta"),dbe_->get(convPathName+"h_RecoConvTwoTracksEta"),"fakerate");
276  dividePlots(dbe_->get(effPathName+"convFakeRateVsPhiTwoTracks"),dbe_->get(convPathName+"h_RecoConvTwoMTracksPhi"),dbe_->get(convPathName+"h_RecoConvTwoTracksPhi"),"fakerate");
277  dividePlots(dbe_->get(effPathName+"convFakeRateVsRTwoTracks"),dbe_->get(convPathName+"h_RecoConvTwoMTracksR"),dbe_->get(convPathName+"h_RecoConvTwoTracksR"),"fakerate");
278  dividePlots(dbe_->get(effPathName+"convFakeRateVsZTwoTracks"),dbe_->get(convPathName+"h_RecoConvTwoMTracksZ"),dbe_->get(convPathName+"h_RecoConvTwoTracksZ"),"fakerate");
279  dividePlots(dbe_->get(effPathName+"convFakeRateVsEtTwoTracks"),dbe_->get(convPathName+"h_RecoConvTwoMTracksEt"),dbe_->get(convPathName+"h_RecoConvTwoTracksEt"),"fakerate");
280  }
281  // Background efficiency
282  dividePlots(dbe_->get(effPathName+"bkgEffVsEta"),dbe_->get(simInfoPathName+"h_MatchedSimJetEta"),dbe_->get(simInfoPathName+"h_SimJetEta"), "effic");
283  dividePlots(dbe_->get(effPathName+"bkgEffVsPhi"),dbe_->get(simInfoPathName+"h_MatchedSimJetPhi"),dbe_->get(simInfoPathName+"h_SimJetPhi"),"effic");
284  dividePlots(dbe_->get(effPathName+"bkgEffVsEt"),dbe_->get(simInfoPathName+"h_MatchedSimJetEt"),dbe_->get(simInfoPathName+"h_SimJetEt"),"effic");
285  // fraction of photons with at least one dead channel
286  dividePlots(dbe_->get(effPathName+"deadChVsEtaBkg"),dbe_->get(simInfoPathName+"h_MatchedSimJetBadChEta"),dbe_->get(simInfoPathName+"h_MatchedSimJetEta"), "effic");
287  dividePlots(dbe_->get(effPathName+"deadChVsPhiBkg"),dbe_->get(simInfoPathName+"h_MatchedSimJetBadChPhi"),dbe_->get(simInfoPathName+"h_MatchedSimJetPhi"),"effic");
288  dividePlots(dbe_->get(effPathName+"deadChVsEtBkg"), dbe_->get(simInfoPathName+"h_MatchedSimJetBadChEt"),dbe_->get(simInfoPathName+"h_MatchedSimJetEt"),"effic");
289 
290 
291 
292  if(standAlone_) dbe_->save(outputFileName_);
293  else if(batch_) dbe_->save(inputFileName_);
294 
295 
296 
297 }
298 
299 
300 
301 
302 
304  double value,err;
305  if(nullptr == dividend or nullptr == denominator or nullptr == numerator) {
306  return;
307  }
308  for (int j=1; j<=numerator->getNbinsX(); j++){
309  dividend->setEfficiencyFlag();
310 
311  if (denominator->getBinContent(j)!=0){
312  if (type=="effic")
313  value = ((double) numerator->getBinContent(j))/((double) denominator->getBinContent(j));
314  else if (type=="fakerate")
315  value = 1-((double) numerator->getBinContent(j))/((double) denominator->getBinContent(j));
316  else return;
317  err = sqrt( value*(1-value) / ((double) denominator->getBinContent(j)) );
318  dividend->setBinContent(j, value);
319  if ( err !=0 ) dividend->setBinError(j,err);
320  }
321  else {
322  dividend->setBinContent(j, 0);
323  dividend->setBinError(j,0);
324  }
325 
326  }
327 
328 
329 }
330 
331 
333  double value,err;
334 
335  if(nullptr == dividend or nullptr == numerator) {
336  return;
337  }
338  for (int j=1; j<=numerator->getNbinsX(); j++){
339  if (denominator!=0){
340  value = ((double) numerator->getBinContent(j))/denominator;
341  err = sqrt( value*(1-value) / denominator);
342  dividend->setBinContent(j, value);
343  dividend->setBinError(j,err);
344  }
345  else {
346  dividend->setBinContent(j, 0);
347  }
348  }
349 
350 }
351 
type
Definition: HCALResponse.h:21
T getParameter(std::string const &) const
void setBinContent(int binx, double content)
set content of bin (1-D)
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:2
void setEfficiencyFlag()
T sqrt(T t)
Definition: SSEVec.h:18
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
PhotonPostprocessing(const edm::ParameterSet &pset)
DQMStore * dbe_
void endRun(const edm::Run &, const edm::EventSetup &) override
virtual void runPostprocessing()
double getBinContent(int binx) const
get content of bin (1-D)
void dividePlots(MonitorElement *dividend, MonitorElement *numerator, MonitorElement *denominator, std::string type)
void analyze(const edm::Event &, const edm::EventSetup &) override
int getNbinsX() const
get # of bins in X-axis
Definition: Run.h:44