CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
PhotonPostprocessing Class Reference

#include <PhotonPostprocessing.h>

Inheritance diagram for PhotonPostprocessing:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
virtual void endJob ()
 
virtual void endLuminosityBlock (const edm::LuminosityBlock &, const edm::EventSetup &)
 
virtual void endRun (const edm::Run &, const edm::EventSetup &)
 
 PhotonPostprocessing (const edm::ParameterSet &pset)
 
virtual ~PhotonPostprocessing ()
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void dividePlots (MonitorElement *dividend, MonitorElement *numerator, MonitorElement *denominator, std::string type)
 
void dividePlots (MonitorElement *dividend, MonitorElement *numerator, double denominator)
 
virtual void runPostprocessing ()
 

Private Attributes

std::string analyzerName_
 
bool batch_
 
MonitorElementbkgDeadChEt_
 
MonitorElementbkgDeadChEta_
 
MonitorElementbkgDeadChPhi_
 
MonitorElementbkgRecoEffEt_
 
MonitorElementbkgRecoEffEta_
 
MonitorElementbkgRecoEffPhi_
 
MonitorElementconvEffEtaOneTrack_
 
MonitorElementconvEffEtaTotal_
 
MonitorElementconvEffEtaTwoTracks_
 
MonitorElementconvEffEtaTwoTracksAndVtxProbGT0005_
 
MonitorElementconvEffEtaTwoTracksAndVtxProbGT0_
 
MonitorElementconvEffEtOneTrack_
 
MonitorElementconvEffEtTotal_
 
MonitorElementconvEffEtTwoTracks_
 
MonitorElementconvEffPhiOneTrack_
 
MonitorElementconvEffPhiTotal_
 
MonitorElementconvEffPhiTwoTracks_
 
MonitorElementconvEffROneTrack_
 
MonitorElementconvEffRTotal_
 
MonitorElementconvEffRTwoTracks_
 
MonitorElementconvEffRTwoTracksAndVtxProbGT0005_
 
MonitorElementconvEffRTwoTracksAndVtxProbGT0_
 
MonitorElementconvEffZOneTrack_
 
MonitorElementconvEffZTotal_
 
MonitorElementconvEffZTwoTracks_
 
MonitorElementconvFakeRateEtaTwoTracks_
 
MonitorElementconvFakeRateEtTwoTracks_
 
MonitorElementconvFakeRatePhiTwoTracks_
 
MonitorElementconvFakeRateRTwoTracks_
 
MonitorElementconvFakeRateZTwoTracks_
 
MonitorElementconvVsEt_ [2]
 
std::stringstream currentFolder_
 
DQMStoredbe_
 
int etaBin
 
int etaBin2
 
double etaMax
 
double etaMin
 
int etBin
 
double etMax
 
double etMin
 
bool fastSim_
 
MonitorElementh_simConvEtaMTotal_
 
MonitorElementh_simConvEtMTotal_
 
MonitorElementh_simConvPhiMTotal_
 
MonitorElementh_simConvRMTotal_
 
MonitorElementh_simConvZMTotal_
 
std::string inputFileName_
 
bool isRunCentrally_
 
std::string outputFileName_
 
edm::ParameterSet parameters_
 
int phiBin
 
double phiMax
 
double phiMin
 
MonitorElementphoDeadChEt_
 
MonitorElementphoDeadChEta_
 
MonitorElementphoDeadChPhi_
 
MonitorElementphoRecoEffEt_
 
MonitorElementphoRecoEffEta_
 
MonitorElementphoRecoEffPhi_
 
int rBin
 
double rMax
 
double rMin
 
bool standAlone_
 
int verbosity_
 
int zBin
 
double zMax
 
double zMin
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

$Id: PhotonPostprocessing author: Nancy Marinelli, U. of Notre Dame, US

$Id: PhotonPostprocessing authors: Nancy Marinelli, U. of Notre Dame, US

Definition at line 52 of file PhotonPostprocessing.h.

Constructor & Destructor Documentation

PhotonPostprocessing::PhotonPostprocessing ( const edm::ParameterSet pset)
explicit

Definition at line 25 of file PhotonPostprocessing.cc.

References dbe_, conversionPostprocessing_cfi::etaBin, conversionPostprocessing_cfi::etaBin2, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, conversionPostprocessing_cfi::etBin, conversionPostprocessing_cfi::etMax, btagDijet_cfi::etMin, edm::ParameterSet::getParameter(), Utilities::operator, conversionPostprocessing_cfi::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, muonDTDigis_cfi::pset, conversionPostprocessing_cfi::rBin, conversionPostprocessing_cfi::rMax, conversionPostprocessing_cfi::rMin, AlCaHLTBitMon_QueryRunRegistry::string, conversionPostprocessing_cfi::zBin, conversionPostprocessing_cfi::zMax, and conversionPostprocessing_cfi::zMin.

26 {
27 
28  dbe_ = 0;
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 }
T getParameter(std::string const &) const
edm::ParameterSet parameters_
PhotonPostprocessing::~PhotonPostprocessing ( )
virtual

Definition at line 70 of file PhotonPostprocessing.cc.

71 {}

Member Function Documentation

void PhotonPostprocessing::analyze ( const edm::Event e,
const edm::EventSetup esup 
)
virtual

Definition at line 78 of file PhotonPostprocessing.cc.

79 {}
void PhotonPostprocessing::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 73 of file PhotonPostprocessing.cc.

74 {
75 
76 }
void PhotonPostprocessing::dividePlots ( MonitorElement dividend,
MonitorElement numerator,
MonitorElement denominator,
std::string  type 
)
private

Definition at line 308 of file PhotonPostprocessing.cc.

References MonitorElement::getBinContent(), MonitorElement::getNbinsX(), or, MonitorElement::setBinContent(), MonitorElement::setBinError(), MonitorElement::setEfficiencyFlag(), mathSSE::sqrt(), and relativeConstraints::value.

308  {
309  double value,err;
310  if(nullptr == dividend or nullptr == denominator or nullptr == numerator) {
311  return;
312  }
313  for (int j=1; j<=numerator->getNbinsX(); j++){
314  dividend->setEfficiencyFlag();
315 
316  if (denominator->getBinContent(j)!=0){
317  if (type=="effic")
318  value = ((double) numerator->getBinContent(j))/((double) denominator->getBinContent(j));
319  else if (type=="fakerate")
320  value = 1-((double) numerator->getBinContent(j))/((double) denominator->getBinContent(j));
321  else return;
322  err = sqrt( value*(1-value) / ((double) denominator->getBinContent(j)) );
323  dividend->setBinContent(j, value);
324  if ( err !=0 ) dividend->setBinError(j,err);
325  }
326  else {
327  dividend->setBinContent(j, 0);
328  dividend->setBinError(j,0);
329  }
330 
331  }
332 
333 
334 }
type
Definition: HCALResponse.h:21
void setBinContent(int binx, double content)
set content of bin (1-D)
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)
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX(void) const
get # of bins in X-axis
void setEfficiencyFlag(void)
void PhotonPostprocessing::dividePlots ( MonitorElement dividend,
MonitorElement numerator,
double  denominator 
)
private

Definition at line 337 of file PhotonPostprocessing.cc.

References MonitorElement::getBinContent(), MonitorElement::getNbinsX(), or, MonitorElement::setBinContent(), MonitorElement::setBinError(), mathSSE::sqrt(), and relativeConstraints::value.

337  {
338  double value,err;
339 
340  if(nullptr == dividend or nullptr == numerator) {
341  return;
342  }
343  for (int j=1; j<=numerator->getNbinsX(); j++){
344  if (denominator!=0){
345  value = ((double) numerator->getBinContent(j))/denominator;
346  err = sqrt( value*(1-value) / denominator);
347  dividend->setBinContent(j, value);
348  dividend->setBinError(j,err);
349  }
350  else {
351  dividend->setBinContent(j, 0);
352  }
353  }
354 
355 }
void setBinContent(int binx, double content)
set content of bin (1-D)
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)
denominator
Definition: cuy.py:484
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX(void) const
get # of bins in X-axis
void PhotonPostprocessing::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 82 of file PhotonPostprocessing.cc.

82  {
83 
85 
86 }
virtual void runPostprocessing()
void PhotonPostprocessing::endLuminosityBlock ( const edm::LuminosityBlock lumi,
const edm::EventSetup setup 
)
virtual

Definition at line 300 of file PhotonPostprocessing.cc.

301 {
302 
303 
304 }
void PhotonPostprocessing::endRun ( const edm::Run run,
const edm::EventSetup setup 
)
virtual

Definition at line 88 of file PhotonPostprocessing.cc.

88  {
89 
91 
92 }
virtual void runPostprocessing()
void PhotonPostprocessing::runPostprocessing ( )
privatevirtual

Definition at line 95 of file PhotonPostprocessing.cc.

References dbe_, conversionPostprocessing_cfi::etaBin, conversionPostprocessing_cfi::etaBin2, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, conversionPostprocessing_cfi::etBin, conversionPostprocessing_cfi::etMax, btagDijet_cfi::etMin, conversionPostprocessing_cfi::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, conversionPostprocessing_cfi::rBin, conversionPostprocessing_cfi::rMax, conversionPostprocessing_cfi::rMin, AlCaHLTBitMon_QueryRunRegistry::string, conversionPostprocessing_cfi::zBin, conversionPostprocessing_cfi::zMax, and conversionPostprocessing_cfi::zMin.

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 }
MonitorElement * convEffEtaTwoTracksAndVtxProbGT0005_
MonitorElement * convEffEtTotal_
MonitorElement * convEffZOneTrack_
MonitorElement * h_simConvPhiMTotal_
MonitorElement * convEffEtOneTrack_
MonitorElement * convEffRTwoTracksAndVtxProbGT0_
MonitorElement * bkgRecoEffPhi_
MonitorElement * phoRecoEffEta_
MonitorElement * phoRecoEffPhi_
MonitorElement * phoDeadChEta_
MonitorElement * convEffEtaOneTrack_
MonitorElement * phoDeadChPhi_
MonitorElement * h_simConvEtaMTotal_
MonitorElement * bkgDeadChEta_
MonitorElement * convEffRTwoTracks_
MonitorElement * bkgRecoEffEt_
MonitorElement * convEffEtaTotal_
MonitorElement * phoRecoEffEt_
MonitorElement * convVsEt_[2]
MonitorElement * bkgDeadChEt_
MonitorElement * phoDeadChEt_
MonitorElement * convFakeRateZTwoTracks_
MonitorElement * convEffZTotal_
MonitorElement * convFakeRateEtaTwoTracks_
MonitorElement * convEffRTotal_
MonitorElement * convEffPhiTwoTracks_
MonitorElement * h_simConvEtMTotal_
MonitorElement * convFakeRateEtTwoTracks_
MonitorElement * bkgDeadChPhi_
MonitorElement * convEffPhiTotal_
MonitorElement * convEffRTwoTracksAndVtxProbGT0005_
MonitorElement * convEffEtaTwoTracksAndVtxProbGT0_
MonitorElement * convFakeRatePhiTwoTracks_
MonitorElement * convEffPhiOneTrack_
TH1F * getTH1F(void) const
MonitorElement * convEffROneTrack_
MonitorElement * h_simConvRMTotal_
MonitorElement * convEffEtaTwoTracks_
MonitorElement * bkgRecoEffEta_
void dividePlots(MonitorElement *dividend, MonitorElement *numerator, MonitorElement *denominator, std::string type)
MonitorElement * convFakeRateRTwoTracks_
MonitorElement * h_simConvZMTotal_
MonitorElement * convEffZTwoTracks_
MonitorElement * convEffEtTwoTracks_

Member Data Documentation

std::string PhotonPostprocessing::analyzerName_
private

Definition at line 88 of file PhotonPostprocessing.h.

bool PhotonPostprocessing::batch_
private

Definition at line 85 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::bkgDeadChEt_
private

Definition at line 165 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::bkgDeadChEta_
private

Definition at line 163 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::bkgDeadChPhi_
private

Definition at line 164 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::bkgRecoEffEt_
private

Definition at line 161 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::bkgRecoEffEta_
private

Definition at line 159 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::bkgRecoEffPhi_
private

Definition at line 160 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtaOneTrack_
private

Definition at line 134 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtaTotal_
private

Definition at line 146 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtaTwoTracks_
private

Definition at line 123 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtaTwoTracksAndVtxProbGT0005_
private

Definition at line 130 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtaTwoTracksAndVtxProbGT0_
private

Definition at line 129 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtOneTrack_
private

Definition at line 138 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtTotal_
private

Definition at line 150 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffEtTwoTracks_
private

Definition at line 127 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffPhiOneTrack_
private

Definition at line 135 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffPhiTotal_
private

Definition at line 147 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffPhiTwoTracks_
private

Definition at line 124 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffROneTrack_
private

Definition at line 136 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffRTotal_
private

Definition at line 148 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffRTwoTracks_
private

Definition at line 125 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffRTwoTracksAndVtxProbGT0005_
private

Definition at line 132 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffRTwoTracksAndVtxProbGT0_
private

Definition at line 131 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffZOneTrack_
private

Definition at line 137 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffZTotal_
private

Definition at line 149 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convEffZTwoTracks_
private

Definition at line 126 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convFakeRateEtaTwoTracks_
private

Definition at line 153 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convFakeRateEtTwoTracks_
private

Definition at line 157 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convFakeRatePhiTwoTracks_
private

Definition at line 154 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convFakeRateRTwoTracks_
private

Definition at line 155 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convFakeRateZTwoTracks_
private

Definition at line 156 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::convVsEt_[2]
private

Definition at line 167 of file PhotonPostprocessing.h.

std::stringstream PhotonPostprocessing::currentFolder_
private

Definition at line 92 of file PhotonPostprocessing.h.

DQMStore* PhotonPostprocessing::dbe_
private

Definition at line 78 of file PhotonPostprocessing.h.

int PhotonPostprocessing::etaBin
private

Definition at line 100 of file PhotonPostprocessing.h.

int PhotonPostprocessing::etaBin2
private

Definition at line 101 of file PhotonPostprocessing.h.

double PhotonPostprocessing::etaMax
private

Definition at line 99 of file PhotonPostprocessing.h.

double PhotonPostprocessing::etaMin
private

Definition at line 98 of file PhotonPostprocessing.h.

int PhotonPostprocessing::etBin
private

Definition at line 97 of file PhotonPostprocessing.h.

double PhotonPostprocessing::etMax
private

Definition at line 96 of file PhotonPostprocessing.h.

double PhotonPostprocessing::etMin
private

Definition at line 95 of file PhotonPostprocessing.h.

bool PhotonPostprocessing::fastSim_
private

Definition at line 87 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::h_simConvEtaMTotal_
private

Definition at line 140 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::h_simConvEtMTotal_
private

Definition at line 144 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::h_simConvPhiMTotal_
private

Definition at line 141 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::h_simConvRMTotal_
private

Definition at line 142 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::h_simConvZMTotal_
private

Definition at line 143 of file PhotonPostprocessing.h.

std::string PhotonPostprocessing::inputFileName_
private

Definition at line 90 of file PhotonPostprocessing.h.

bool PhotonPostprocessing::isRunCentrally_
private

Definition at line 86 of file PhotonPostprocessing.h.

std::string PhotonPostprocessing::outputFileName_
private

Definition at line 89 of file PhotonPostprocessing.h.

edm::ParameterSet PhotonPostprocessing::parameters_
private
int PhotonPostprocessing::phiBin
private

Definition at line 104 of file PhotonPostprocessing.h.

double PhotonPostprocessing::phiMax
private

Definition at line 103 of file PhotonPostprocessing.h.

double PhotonPostprocessing::phiMin
private

Definition at line 102 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::phoDeadChEt_
private

Definition at line 120 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::phoDeadChEta_
private

Definition at line 118 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::phoDeadChPhi_
private

Definition at line 119 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::phoRecoEffEt_
private

Definition at line 116 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::phoRecoEffEta_
private

Definition at line 114 of file PhotonPostprocessing.h.

MonitorElement* PhotonPostprocessing::phoRecoEffPhi_
private

Definition at line 115 of file PhotonPostprocessing.h.

int PhotonPostprocessing::rBin
private

Definition at line 107 of file PhotonPostprocessing.h.

double PhotonPostprocessing::rMax
private

Definition at line 106 of file PhotonPostprocessing.h.

double PhotonPostprocessing::rMin
private

Definition at line 105 of file PhotonPostprocessing.h.

bool PhotonPostprocessing::standAlone_
private

Definition at line 84 of file PhotonPostprocessing.h.

int PhotonPostprocessing::verbosity_
private

Definition at line 79 of file PhotonPostprocessing.h.

int PhotonPostprocessing::zBin
private

Definition at line 110 of file PhotonPostprocessing.h.

double PhotonPostprocessing::zMax
private

Definition at line 109 of file PhotonPostprocessing.h.

double PhotonPostprocessing::zMin
private

Definition at line 108 of file PhotonPostprocessing.h.