37 outputFileName_ = pset.
getParameter<
string>(
"OutputFileName");
38 inputFileName_ = pset.
getParameter<std::string>(
"InputFileName");
42 etMin = parameters_.getParameter<
double>(
"etMin");
43 etMax = parameters_.getParameter<
double>(
"etMax");
44 etBin = parameters_.getParameter<
int>(
"etBin");
47 etaMin = parameters_.getParameter<
double>(
"etaMin");
48 etaMax = parameters_.getParameter<
double>(
"etaMax");
49 etaBin = parameters_.getParameter<
int>(
"etaBin");
50 etaBin2 = parameters_.getParameter<
int>(
"etaBin2");
52 phiMin = parameters_.getParameter<
double>(
"phiMin");
53 phiMax = parameters_.getParameter<
double>(
"phiMax");
54 phiBin = parameters_.getParameter<
int>(
"phiBin");
56 rMin = parameters_.getParameter<
double>(
"rMin");
57 rMax = parameters_.getParameter<
double>(
"rMax");
58 rBin = parameters_.getParameter<
int>(
"rBin");
60 zMin = parameters_.getParameter<
double>(
"zMin");
61 zMax = parameters_.getParameter<
double>(
"zMax");
62 zBin = parameters_.getParameter<
int>(
"zBin");
84 if(standAlone_) runPostprocessing();
90 if(!standAlone_) runPostprocessing();
99 std::string simInfoPathName =
"EgammaV/PhotonValidator/SimulationInfo/";
100 std::string convPathName =
"EgammaV/PhotonValidator/ConversionInfo/";
101 std::string effPathName =
"EgammaV/PhotonValidator/Efficiencies/";
104 if(batch_)
dbe_->
open(inputFileName_);
108 string histname =
"recoEffVsEta";
110 histname =
"recoEffVsPhi";
112 histname =
"recoEffVsEt";
113 phoRecoEffEt_ =
dbe_->
book1D(histname,
"Photon reconstruction efficiency vs simulated Et",etBin,
etMin,
etMax) ;
115 histname =
"deadChVsEta";
117 histname =
"deadChVsPhi";
119 histname =
"deadChVsEt";
120 phoDeadChEt_ =
dbe_->
book1D(histname,
"Fraction of photons with >=1 dead Xtal vs simulated Et",etBin,
etMin,
etMax) ;
123 histname =
"convEffVsEtaTwoTracks";
126 histname =
"convEffVsPhiTwoTracks";
129 histname =
"convEffVsRTwoTracks";
130 convEffRTwoTracks_ =
dbe_->
book1D(histname,histname,rBin,rMin, rMax);
132 histname =
"convEffVsZTwoTracks";
133 convEffZTwoTracks_ =
dbe_->
book1D(histname,histname,zBin,zMin,zMax);
135 histname =
"convEffVsEtTwoTracks";
138 histname =
"convEffVsEtaTwoTracksAndVtxProbGT0";
140 histname =
"convEffVsEtaTwoTracksAndVtxProbGT0005";
142 histname =
"convEffVsRTwoTracksAndVtxProbGT0";
143 convEffRTwoTracksAndVtxProbGT0_ =
dbe_->
book1D(histname,histname,rBin,rMin,rMax);
144 histname =
"convEffVsRTwoTracksAndVtxProbGT0005";
145 convEffRTwoTracksAndVtxProbGT0005_ =
dbe_->
book1D(histname,histname,rBin,rMin,rMax);
147 histname =
"convEffVsEtaOneTrack";
149 histname =
"convEffVsROneTrack";
150 convEffROneTrack_ =
dbe_->
book1D(histname,histname,rBin,rMin, rMax);
151 histname =
"convEffVsEtOneTrack";
154 histname =
"convFakeRateVsEtaTwoTracks";
156 histname =
"convFakeRateVsPhiTwoTracks";
158 histname =
"convFakeRateVsRTwoTracks";
159 convFakeRateRTwoTracks_ =
dbe_->
book1D(histname,histname,rBin,rMin, rMax);
160 histname =
"convFakeRateVsZTwoTracks";
161 convFakeRateZTwoTracks_ =
dbe_->
book1D(histname,histname,zBin,zMin,zMax);
162 histname =
"convFakeRateVsEtTwoTracks";
165 histname =
"bkgEffVsEta";
167 histname =
"bkgEffVsPhi";
169 histname =
"bkgEffVsEt";
170 bkgRecoEffEt_ =
dbe_->
book1D(histname,
"Bkg reconstruction efficiency vs simulated Et",etBin,
etMin,
etMax) ;
172 histname =
"deadChVsEtaBkg";
174 histname =
"deadChVsPhiBkg";
176 histname =
"deadChVsEtBkg";
177 bkgDeadChEt_ =
dbe_->
book1D(histname,
"Fraction of bkg with >=1 dead Xtal vs simulated Et",etBin,
etMin,
etMax) ;
180 dividePlots(
dbe_->
get(effPathName+
"recoEffVsEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEta"),
dbe_->
get(simInfoPathName+
"h_SimPhoEta"),
"effic");
181 dividePlots(
dbe_->
get(effPathName+
"recoEffVsPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoPhi"),
dbe_->
get(simInfoPathName+
"h_SimPhoPhi"),
"effic");
182 dividePlots(
dbe_->
get(effPathName+
"recoEffVsEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEt"),
dbe_->
get(simInfoPathName+
"h_SimPhoEt"),
"effic");
184 dividePlots(
dbe_->
get(effPathName+
"deadChVsEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoBadChEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEta"),
"effic");
185 dividePlots(
dbe_->
get(effPathName+
"deadChVsPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoBadChPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoPhi"),
"effic");
186 dividePlots(
dbe_->
get(effPathName+
"deadChVsEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoBadChEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimPhoEt"),
"effic");
188 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEta"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEta"),
"effic");
189 dividePlots(
dbe_->
get(effPathName+
"convEffVsPhiTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksPhi"),
dbe_->
get(simInfoPathName+
"h_VisSimConvPhi"),
"effic");
190 dividePlots(
dbe_->
get(effPathName+
"convEffVsRTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksR"),
dbe_->
get(simInfoPathName+
"h_VisSimConvR"),
"effic");
191 dividePlots(
dbe_->
get(effPathName+
"convEffVsZTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksZ"),
dbe_->
get(simInfoPathName+
"h_VisSimConvZ"),
"effic");
192 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtTwoTracks"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEt"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEt"),
"effic");
193 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaTwoTracksAndVtxProbGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEtaAndVtxPGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEta"),
"effic");
194 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaTwoTracksAndVtxProbGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEtaAndVtxPGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksEta"),
"effic");
195 dividePlots(
dbe_->
get(effPathName+
"convEffVsRTwoTracksAndVtxProbGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksRAndVtxPGT0"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksR"),
"effic");
196 dividePlots(
dbe_->
get(effPathName+
"convEffVsRTwoTracksAndVtxProbGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksRAndVtxPGT0005"),
dbe_->
get(simInfoPathName+
"h_SimConvTwoMTracksR"),
"effic");
198 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtaOneTrack"),
dbe_->
get(simInfoPathName+
"h_SimConvOneMTracksEta"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEta"),
"effic");
199 dividePlots(
dbe_->
get(effPathName+
"convEffVsROneTrack"),
dbe_->
get(simInfoPathName+
"h_SimConvOneMTracksR"),
dbe_->
get(simInfoPathName+
"h_VisSimConvR"),
"effic");
200 dividePlots(
dbe_->
get(effPathName+
"convEffVsEtOneTrack"),
dbe_->
get(simInfoPathName+
"h_SimConvOneMTracksEt"),
dbe_->
get(simInfoPathName+
"h_VisSimConvEt"),
"effic");
202 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsEtaTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksEta"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksEta"),
"fakerate");
203 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsPhiTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksPhi"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksPhi"),
"fakerate");
204 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsRTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksR"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksR"),
"fakerate");
205 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsZTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksZ"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksZ"),
"fakerate");
206 dividePlots(
dbe_->
get(effPathName+
"convFakeRateVsEtTwoTracks"),
dbe_->
get(convPathName+
"h_RecoConvTwoMTracksEt"),
dbe_->
get(convPathName+
"h_RecoConvTwoTracksEt"),
"fakerate");
208 dividePlots(
dbe_->
get(effPathName+
"bkgEffVsEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEta"),
dbe_->
get(simInfoPathName+
"h_SimJetEta"),
"effic");
209 dividePlots(
dbe_->
get(effPathName+
"bkgEffVsPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetPhi"),
dbe_->
get(simInfoPathName+
"h_SimJetPhi"),
"effic");
210 dividePlots(
dbe_->
get(effPathName+
"bkgEffVsEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEt"),
dbe_->
get(simInfoPathName+
"h_SimJetEt"),
"effic");
212 dividePlots(
dbe_->
get(effPathName+
"deadChVsEtaBkg"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetBadChEta"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEta"),
"effic");
213 dividePlots(
dbe_->
get(effPathName+
"deadChVsPhiBkg"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetBadChPhi"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetPhi"),
"effic");
214 dividePlots(
dbe_->
get(effPathName+
"deadChVsEtBkg"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetBadChEt"),
dbe_->
get(simInfoPathName+
"h_MatchedSimJetEt"),
"effic");
218 if(standAlone_)
dbe_->
save(outputFileName_);
219 else if(batch_)
dbe_->
save(inputFileName_);
241 else if (type==
"fakerate")
265 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)
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 &)
virtual void endLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
void setCurrentFolder(const std::string &fullpath)
virtual void analyze(const edm::Event &, const edm::EventSetup &)