38 outputFileName_ = pset.
getParameter<
string>(
"OutputFileName");
40 isRunCentrally_= pset.
getParameter<
bool>(
"isRunCentrally");
43 etMin = parameters_.getParameter<
double>(
"etMin");
44 etMax = parameters_.getParameter<
double>(
"etMax");
45 etBin = parameters_.getParameter<
int>(
"etBin");
48 etaMin = parameters_.getParameter<
double>(
"etaMin");
49 etaMax = parameters_.getParameter<
double>(
"etaMax");
50 etaBin = parameters_.getParameter<
int>(
"etaBin");
51 etaBin2 = parameters_.getParameter<
int>(
"etaBin2");
53 phiMin = parameters_.getParameter<
double>(
"phiMin");
54 phiMax = parameters_.getParameter<
double>(
"phiMax");
55 phiBin = parameters_.getParameter<
int>(
"phiBin");
57 rMin = parameters_.getParameter<
double>(
"rMin");
58 rMax = parameters_.getParameter<
double>(
"rMax");
59 rBin = parameters_.getParameter<
int>(
"rBin");
61 zMin = parameters_.getParameter<
double>(
"zMin");
62 zMax = parameters_.getParameter<
double>(
"zMax");
63 zBin = parameters_.getParameter<
int>(
"zBin");
85 if(standAlone_) runPostprocessing();
91 if(!standAlone_) runPostprocessing();
100 std::string simInfoPathName =
"EgammaV/"+ analyzerName_+
"/SimulationInfo/";
101 std::string convPathName =
"EgammaV/"+ analyzerName_+
"/ConversionInfo/";
102 std::string effPathName =
"EgammaV/"+ analyzerName_+
"/Efficiencies/";
103 std::string photonPathName =
"EgammaV/"+ analyzerName_+
"/Photons/";
105 if(batch_)
dbe_->
open(inputFileName_);
109 string histname =
"recoEffVsEta";
110 phoRecoEffEta_ =
dbe_->
book1D(histname,
"Photon reconstruction efficiency vs simulated #eta",etaBin,
etaMin,
etaMax);
112 histname =
"recoEffVsPhi";
113 phoRecoEffPhi_ =
dbe_->
book1D(histname,
"Photon reconstruction efficiency vs simulated #phi",phiBin,
phiMin,
phiMax);
114 histname =
"recoEffVsEt";
115 phoRecoEffEt_ =
dbe_->
book1D(histname,
"Photon reconstruction efficiency vs simulated Et",etBin,
etMin,
etMax) ;
117 histname =
"deadChVsEta";
118 phoDeadChEta_ =
dbe_->
book1D(histname,
"Fraction of photons with >=1 dead Xtal vs simulated #eta",etaBin,
etaMin,
etaMax);
119 histname =
"deadChVsPhi";
120 phoDeadChPhi_ =
dbe_->
book1D(histname,
"Fraction of photons with >=1 dead Xtal vs simulated #phi",phiBin,
phiMin,
phiMax);
121 histname =
"deadChVsEt";
122 phoDeadChEt_ =
dbe_->
book1D(histname,
"Fraction of photons with >=1 dead Xtal vs simulated Et",etBin,
etMin,
etMax) ;
124 if ( ! isRunCentrally_ ) {
125 histname =
"convVsEt";
126 convVsEt_[0] =
dbe_->
book1D(histname+
"Barrel",
"Fraction of good conversions in R9<0.93 vs Et ",etBin,
etMin,
etMax) ;
127 convVsEt_[1] =
dbe_->
book1D(histname+
"Endcap",
"Fraction of good conversions in R9<0.93 vs Et ",etBin,
etMin,
etMax) ;
133 histname =
"convEffVsEtaTwoTracks";
136 histname =
"convEffVsPhiTwoTracks";
139 histname =
"convEffVsRTwoTracks";
140 convEffRTwoTracks_ =
dbe_->
book1D(histname,histname,rBin,rMin, rMax);
142 histname =
"convEffVsZTwoTracks";
143 convEffZTwoTracks_ =
dbe_->
book1D(histname,histname,zBin,zMin,zMax);
145 histname =
"convEffVsEtTwoTracks";
148 histname =
"convEffVsEtaTwoTracksAndVtxProbGT0";
150 histname =
"convEffVsEtaTwoTracksAndVtxProbGT0005";
152 histname =
"convEffVsRTwoTracksAndVtxProbGT0";
153 convEffRTwoTracksAndVtxProbGT0_ =
dbe_->
book1D(histname,histname,rBin,rMin,rMax);
154 histname =
"convEffVsRTwoTracksAndVtxProbGT0005";
155 convEffRTwoTracksAndVtxProbGT0005_ =
dbe_->
book1D(histname,histname,rBin,rMin,rMax);
157 histname =
"convEffVsEtaOneTrack";
159 histname =
"convEffVsROneTrack";
160 convEffROneTrack_ =
dbe_->
book1D(histname,histname,rBin,rMin, rMax);
161 histname =
"convEffVsEtOneTrack";
164 histname =
"convFakeRateVsEtaTwoTracks";
166 histname =
"convFakeRateVsPhiTwoTracks";
168 histname =
"convFakeRateVsRTwoTracks";
169 convFakeRateRTwoTracks_ =
dbe_->
book1D(histname,histname,rBin,rMin, rMax);
170 histname =
"convFakeRateVsZTwoTracks";
171 convFakeRateZTwoTracks_ =
dbe_->
book1D(histname,histname,zBin,zMin,zMax);
172 histname =
"convFakeRateVsEtTwoTracks";
175 histname =
"bkgEffVsEta";
176 bkgRecoEffEta_ =
dbe_->
book1D(histname,
"Bkg reconstruction efficiency vs simulated #eta",etaBin,
etaMin,
etaMax);
177 histname =
"bkgEffVsPhi";
178 bkgRecoEffPhi_ =
dbe_->
book1D(histname,
"Bkg reconstruction efficiency vs simulated #phi",phiBin,
phiMin,
phiMax);
179 histname =
"bkgEffVsEt";
180 bkgRecoEffEt_ =
dbe_->
book1D(histname,
"Bkg reconstruction efficiency vs simulated Et",etBin,
etMin,
etMax) ;
182 histname =
"deadChVsEtaBkg";
183 bkgDeadChEta_ =
dbe_->
book1D(histname,
"Fraction of bkg with >=1 dead Xtal vs simulated #eta",etaBin,
etaMin,
etaMax);
184 histname =
"deadChVsPhiBkg";
185 bkgDeadChPhi_ =
dbe_->
book1D(histname,
"Fraction of bkg with >=1 dead Xtal vs simulated #phi",phiBin,
phiMin,
phiMax);
186 histname =
"deadChVsEtBkg";
187 bkgDeadChEt_ =
dbe_->
book1D(histname,
"Fraction of bkg with >=1 dead Xtal vs simulated Et",etBin,
etMin,
etMax) ;
192 if ( ! isRunCentrally_ ) {
193 dividePlots(
dbe_->
get(effPathName+
"convVsEtBarrel"),
dbe_->
get(photonPathName+
"EtR9Less093ConvBarrel"),
dbe_->
get(photonPathName+
"EtR9Less093Barrel"),
"effic");
194 dividePlots(
dbe_->
get(effPathName+
"convVsEtEndcap"),
dbe_->
get(photonPathName+
"EtR9Less093ConvEndcap"),
dbe_->
get(photonPathName+
"EtR9Less093Endcap"),
"effic");
197 dividePlots(
dbe_->
get(effPathName+
"recoEffVsEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEta"),
dbe_->
get(simInfoPathName+
"h_SimPhoEta"),
"effic");
198 dividePlots(
dbe_->
get(effPathName+
"recoEffVsPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoPhi"),
dbe_->
get(simInfoPathName+
"h_SimPhoPhi"),
"effic");
199 dividePlots(
dbe_->
get(effPathName+
"recoEffVsEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEt"),
dbe_->
get(simInfoPathName+
"h_SimPhoEt"),
"effic");
201 dividePlots(
dbe_->
get(effPathName+
"deadChVsEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoBadChEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEta"),
"effic");
202 dividePlots(
dbe_->
get(effPathName+
"deadChVsPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoBadChPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoPhi"),
"effic");
203 dividePlots(
dbe_->
get(effPathName+
"deadChVsEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoBadChEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEt"),
"effic");
206 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEta"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEta"),
"effic");
207 dividePlots(
dbe_->
get(effPathName+
"convEffVsPhiTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksPhi"),
dbe_->
get(simInfoPathName+
"h_VisSimConvPhi"),
"effic");
208 dividePlots(
dbe_->
get(effPathName+
"convEffVsRTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksR"),
dbe_->
get(simInfoPathName+
"h_VisSimConvR"),
"effic");
209 dividePlots(
dbe_->
get(effPathName+
"convEffVsZTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksZ"),
dbe_->
get(simInfoPathName+
"h_VisSimConvZ"),
"effic");
210 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEt"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEt"),
"effic");
211 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaTwoTracksAndVtxProbGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEtaAndVtxPGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEta"),
"effic");
212 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaTwoTracksAndVtxProbGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEtaAndVtxPGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEta"),
"effic");
213 dividePlots(
dbe_->
get(effPathName+
"convEffVsRTwoTracksAndVtxProbGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksRAndVtxPGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksR"),
"effic");
214 dividePlots(
dbe_->
get(effPathName+
"convEffVsRTwoTracksAndVtxProbGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksRAndVtxPGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksR"),
"effic");
216 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaOneTrack"),
dbe_->
get(simInfoPathName+
"h_SimConvOneMTracksEta"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEta"),
"effic");
217 dividePlots(
dbe_->
get(effPathName+
"convEffVsROneTrack"),
dbe_->
get(simInfoPathName+
"h_SimConvOneMTracksR"),
dbe_->
get(simInfoPathName+
"h_VisSimConvR"),
"effic");
218 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtOneTrack"),
dbe_->
get(simInfoPathName+
"h_SimConvOneMTracksEt"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEt"),
"effic");
220 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsEtaTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksEta"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksEta"),
"fakerate");
221 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsPhiTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksPhi"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksPhi"),
"fakerate");
222 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsRTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksR"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksR"),
"fakerate");
223 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsZTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksZ"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksZ"),
"fakerate");
224 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsEtTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksEt"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksEt"),
"fakerate");
227 dividePlots(
dbe_->
get(effPathName+
"bkgEffVsEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEta"),
dbe_->
get(simInfoPathName+
"h_SimJetEta"),
"effic");
228 dividePlots(
dbe_->
get(effPathName+
"bkgEffVsPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetPhi"),
dbe_->
get(simInfoPathName+
"h_SimJetPhi"),
"effic");
229 dividePlots(
dbe_->
get(effPathName+
"bkgEffVsEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEt"),
dbe_->
get(simInfoPathName+
"h_SimJetEt"),
"effic");
231 dividePlots(
dbe_->
get(effPathName+
"deadChVsEtaBkg"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetBadChEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEta"),
"effic");
232 dividePlots(
dbe_->
get(effPathName+
"deadChVsPhiBkg"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetBadChPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetPhi"),
"effic");
233 dividePlots(
dbe_->
get(effPathName+
"deadChVsEtBkg"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetBadChEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEt"),
"effic");
237 if(standAlone_)
dbe_->
save(outputFileName_);
238 else if(batch_)
dbe_->
save(inputFileName_);
261 else if (type==
"fakerate")
285 err =
sqrt( value*(1-value) / denominator);
T getParameter(std::string const &) const
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
void setVerbose(unsigned level)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
PhotonPostprocessing(const edm::ParameterSet &pset)
bool etMin(const PFCandidate &cand, double cut)
virtual ~PhotonPostprocessing()
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)
int getNbinsX(void) const
get # of bins in X-axis
bool open(const std::string &filename, bool overwrite=false, const std::string &path="", const std::string &prepend="", OpenRunDirs stripdirs=KeepRunDirs, bool fileMustExist=true)
virtual void endRun(const edm::Run &, const edm::EventSetup &)
void setEfficiencyFlag(void)
virtual void endLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
void setCurrentFolder(const std::string &fullpath)
virtual void analyze(const edm::Event &, const edm::EventSetup &)