CMS 3D CMS Logo

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

#include <PhotonOfflineClient.h>

Inheritance diagram for PhotonOfflineClient:
DQMEDHarvester edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void book2DHistoVector (DQMStore::IBooker &iBooker, std::vector< std::vector< MonitorElement * > > &vecOfHist, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
 
void book3DHistoVector (DQMStore::IBooker &iBooker, std::vector< std::vector< std::vector< MonitorElement * > > > &vecOfHist, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
 
MonitorElementbookHisto (DQMStore::IBooker &iBooker, std::string histoName, std::string title, int bin, double min, double max)
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &) override
 
 PhotonOfflineClient (const edm::ParameterSet &pset)
 
MonitorElementretrieveHisto (DQMStore::IGetter &iGetter, std::string dir, std::string name)
 
virtual void runClient (DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
 
 ~PhotonOfflineClient () override
 
- Public Member Functions inherited from DQMEDHarvester
void accumulate (edm::Event const &ev, edm::EventSetup const &es) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
 DQMEDHarvester ()
 
virtual void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endJob () final
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &, edm::EventSetup const &) final
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) override
 
 ~DQMEDHarvester () override=default
 
- Public Member Functions inherited from edm::one::EDProducer< edm::Accumulator, edm::EndLuminosityBlockProducer, edm::EndRunProducer, edm::one::WatchLuminosityBlocks, edm::one::WatchRuns, edm::one::SharedResources >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- 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
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
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
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void dividePlots (MonitorElement *dividend, MonitorElement *numerator, MonitorElement *denominator)
 
void dividePlots (MonitorElement *dividend, MonitorElement *numerator, double denominator)
 

Private Attributes

std::string analyzerName_
 
bool batch_
 
std::stringstream currentFolder_
 
double cutStep_
 
int etaBin
 
double etaMax
 
double etaMin
 
int etBin
 
double etMax
 
double etMin
 
bool excludeBkgHistos_
 
int histo_index_conversions_
 
int histo_index_efficiency_
 
int histo_index_invMass_
 
int histo_index_photons_
 
std::string inputFileName_
 
bool minimalSetOfHistos_
 
int numberOfSteps_
 
std::string outputFileName_
 
std::vector< std::vector< MonitorElement * > > p_badChannelsFractionVsEt_
 
std::vector< std::vector< MonitorElement * > > p_badChannelsFractionVsEta_
 
std::vector< std::vector< MonitorElement * > > p_badChannelsFractionVsPhi_
 
std::vector< std::vector< MonitorElement * > > p_convFractionVsEt_
 
std::vector< std::vector< MonitorElement * > > p_convFractionVsEta_
 
MonitorElementp_convFractionVsEtaLoose_
 
MonitorElementp_convFractionVsEtaTight_
 
MonitorElementp_convFractionVsEtLoose_
 
MonitorElementp_convFractionVsEtTight_
 
std::vector< std::vector< std::vector< MonitorElement * > > > p_convFractionVsPhi_
 
MonitorElementp_efficiencyVsEtaHLT_
 
MonitorElementp_efficiencyVsEtaLoose_
 
MonitorElementp_efficiencyVsEtaTight_
 
MonitorElementp_efficiencyVsEtHLT_
 
MonitorElementp_efficiencyVsEtLoose_
 
MonitorElementp_efficiencyVsEtTight_
 
MonitorElementp_vertexReconstructionEfficiencyVsEta_
 
edm::ParameterSet parameters_
 
std::vector< std::string > parts_
 
int phiBin
 
double phiMax
 
double phiMin
 
bool standAlone_
 
std::vector< std::string > types_
 
int verbosity_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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)
 
- Protected Attributes inherited from DQMEDHarvester
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

$Id: PhotonOfflineClient authors: Nancy Marinelli, U. of Notre Dame, US Jamie Antonelli, U. of Notre Dame, US

Definition at line 64 of file PhotonOfflineClient.h.

Constructor & Destructor Documentation

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

Definition at line 25 of file PhotonOfflineClient.cc.

References conversionPostprocessing_cfi::etaBin, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, conversionPostprocessing_cfi::etBin, conversionPostprocessing_cfi::etMax, btagDijet_cfi::etMin, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), conversionPostprocessing_cfi::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, and muonDTDigis_cfi::pset.

26 {
27 
28  //dbe_ = 0;
29  //dbe_ = edm::Service<DQMStore>().operator->();
30  // dbe_->setVerbose(0);
31  parameters_ = pset;
32 
33  analyzerName_ = pset.getParameter<string>("analyzerName");
34  cutStep_ = pset.getParameter<double>("cutStep");
35  numberOfSteps_ = pset.getParameter<int>("numberOfSteps");
36 
37  etMin = pset.getParameter<double>("etMin");
38  etMax = pset.getParameter<double>("etMax");
39  etBin = pset.getParameter<int>("etBin");
40  etaMin = pset.getParameter<double>("etaMin");
41  etaMax = pset.getParameter<double>("etaMax");
42  etaBin = pset.getParameter<int>("etaBin");
43  phiMin = pset.getParameter<double>("phiMin");
44  phiMax = pset.getParameter<double>("phiMax");
45  phiBin = pset.getParameter<int>("phiBin");
46 
47  standAlone_ = pset.getParameter<bool>("standAlone");
48  batch_ = pset.getParameter<bool>("batch");
49  excludeBkgHistos_ = pset.getParameter<bool>("excludeBkgHistos");
50 
51  outputFileName_ = pset.getParameter<string>("OutputFileName");
52  inputFileName_ = pset.getUntrackedParameter<string>("InputFileName");
53 
58 
59  types_.push_back("All");
60  types_.push_back("GoodCandidate");
61  if (!excludeBkgHistos_) types_.push_back("Background");
62 
63  parts_.push_back("AllEcal");
64  parts_.push_back("Barrel");
65  parts_.push_back("Endcaps");
66 
67 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > parts_
std::vector< std::string > types_
edm::ParameterSet parameters_
PhotonOfflineClient::~PhotonOfflineClient ( )
override

Definition at line 69 of file PhotonOfflineClient.cc.

70 {}

Member Function Documentation

void PhotonOfflineClient::book2DHistoVector ( DQMStore::IBooker iBooker,
std::vector< std::vector< MonitorElement * > > &  vecOfHist,
std::string  histoType,
std::string  histoName,
std::string  title,
int  xbin,
double  xmin,
double  xmax,
int  ybin = 1,
double  ymin = 1,
double  ymax = 2 
)

Definition at line 359 of file PhotonOfflineClient.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), TkAlMuonSelectors_cfi::cut, callgraph::kind, DQMStore::IBooker::pwd(), DQMStore::IBooker::setCurrentFolder(), fftjetcommon_cfi::title, parallelization::uint(), TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, Phase2TrackerMonitorDigi_cff::ymax, and Phase2TrackerMonitorDigi_cff::ymin.

363 {
364  int histo_index = 0;
365 
366  vector<MonitorElement*> temp1DVector;
367 
368  //determining which folder we're in
369  bool conversionPlot = false;
370  if(iBooker.pwd().find( "Conversions" ) != string::npos) conversionPlot = true;
371 
372 
373  if(conversionPlot){
375  histo_index = histo_index_conversions_;
376  }
377  else{
379  histo_index = histo_index_photons_;
380  }
381 
382 
383  stringstream histo_number_stream;
384  histo_number_stream << "h_";
385  if(histo_index<10) histo_number_stream << "0";
386  histo_number_stream << histo_index << "_";
387 
388 
389  for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values
390 
391  for(uint type=0;type!=types_.size();++type){ //looping over isolation type
392 
393  currentFolder_.str("");
394  currentFolder_ << "Egamma/"+analyzerName_+"/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV";
395  if(conversionPlot) currentFolder_ << "/Conversions";
396 
397  iBooker.setCurrentFolder(currentFolder_.str());
398 
399  string kind;
400  if(conversionPlot) kind = " Conversions: ";
401  else kind = " Photons: ";
402 
403  if(histoType=="1D") temp1DVector.push_back(iBooker.book1D(histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax));
404  else if(histoType=="2D") temp1DVector.push_back(iBooker.book2D(histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax,ybin,ymin,ymax));
405  else if(histoType=="Profile") temp1DVector.push_back(iBooker.bookProfile(histo_number_stream.str()+histoName,types_[type]+kind+title,xbin,xmin,xmax,ybin,ymin,ymax,""));
406  //else cout << "bad histoType\n";
407  }
408 
409  temp2DVector.push_back(temp1DVector);
410  temp1DVector.clear();
411  }
412 
413 
414 
415 }
type
Definition: HCALResponse.h:21
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:113
std::vector< std::string > types_
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
std::stringstream currentFolder_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
std::string const & pwd()
Definition: DQMStore.cc:278
def uint(string)
void PhotonOfflineClient::book3DHistoVector ( DQMStore::IBooker iBooker,
std::vector< std::vector< std::vector< MonitorElement * > > > &  vecOfHist,
std::string  histoType,
std::string  histoName,
std::string  title,
int  xbin,
double  xmin,
double  xmax,
int  ybin = 1,
double  ymin = 1,
double  ymax = 2 
)

Definition at line 420 of file PhotonOfflineClient.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), TkAlMuonSelectors_cfi::cut, callgraph::kind, DQMStore::IBooker::pwd(), DQMStore::IBooker::setCurrentFolder(), fftjetcommon_cfi::title, parallelization::uint(), TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, Phase2TrackerMonitorDigi_cff::ymax, and Phase2TrackerMonitorDigi_cff::ymin.

424 {
425  int histo_index = 0;
426 
427  vector<MonitorElement*> temp1DVector;
428  vector<vector<MonitorElement*> > temp2DVector;
429 
430  //determining which folder we're in
431  bool conversionPlot = false;
432  if(iBooker.pwd().find( "Conversions" ) != string::npos) conversionPlot = true;
433 
434 
435  if(conversionPlot){
437  histo_index = histo_index_conversions_;
438  }
439  else{
441  histo_index = histo_index_photons_;
442  }
443 
444  stringstream histo_number_stream;
445  histo_number_stream << "h_";
446  if(histo_index<10) histo_number_stream << "0";
447  histo_number_stream << histo_index << "_";
448 
449 
450  for(int cut = 0; cut != numberOfSteps_; ++cut){ //looping over Et cut values
451 
452  for(uint type=0;type!=types_.size();++type){ //looping over isolation type
453 
454  for(uint part=0;part!=parts_.size();++part){ //looping over different parts of the ecal
455 
456  currentFolder_.str("");
457  currentFolder_ << "Egamma/"+analyzerName_+"/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV";
458  if(conversionPlot) currentFolder_ << "/Conversions";
459 
460  iBooker.setCurrentFolder(currentFolder_.str());
461 
462  string kind;
463  if(conversionPlot) kind = " Conversions: ";
464  else kind = " Photons: ";
465 
466  if(histoType=="1D") temp1DVector.push_back(iBooker.book1D( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax));
467  else if(histoType=="2D") temp1DVector.push_back(iBooker.book2D( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax,ybin,ymin,ymax));
468  else if(histoType=="Profile") temp1DVector.push_back(iBooker.bookProfile( histo_number_stream.str()+histoName+parts_[part],types_[type]+kind+parts_[part]+": "+title,xbin,xmin,xmax,ybin,ymin,ymax,""));
469  //else cout << "bad histoType\n";
470 
471 
472  }
473 
474  temp2DVector.push_back(temp1DVector);
475  temp1DVector.clear();
476  }
477 
478  temp3DVector.push_back(temp2DVector);
479  temp2DVector.clear();
480  }
481 
482 
483 }
type
Definition: HCALResponse.h:21
std::vector< std::string > parts_
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:113
std::vector< std::string > types_
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:268
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
std::stringstream currentFolder_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:109
std::string const & pwd()
Definition: DQMStore.cc:278
part
Definition: HCALResponse.h:20
def uint(string)
MonitorElement * PhotonOfflineClient::bookHisto ( DQMStore::IBooker iBooker,
std::string  histoName,
std::string  title,
int  bin,
double  min,
double  max 
)

Definition at line 333 of file PhotonOfflineClient.cc.

References stringResolutionProvider_cfi::bin, DQMStore::IBooker::book1D(), SiStripPI::max, min(), DQMStore::IBooker::pwd(), and fftjetcommon_cfi::title.

334 {
335 
336  int histo_index = 0;
337  stringstream histo_number_stream;
338 
339 
340  //determining which folder we're in
341  if(iBooker.pwd().find( "InvMass" ) != string::npos){
343  histo_index = histo_index_invMass_;
344  }
345  if(iBooker.pwd().find( "Efficiencies" ) != string::npos){
347  histo_index = histo_index_efficiency_;
348  }
349  histo_number_stream << "h_";
350  if(histo_index<10) histo_number_stream << "0";
351  histo_number_stream << histo_index;
352 
353  return iBooker.book1D(histo_number_stream.str()+"_"+histoName,title,bin,min,max);
354 
355 }
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:106
T min(T a, T b)
Definition: MathUtil.h:58
bin
set the eta bin as selection string.
std::string const & pwd()
Definition: DQMStore.cc:278
void PhotonOfflineClient::dividePlots ( MonitorElement dividend,
MonitorElement numerator,
MonitorElement denominator 
)
private

Definition at line 293 of file PhotonOfflineClient.cc.

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

293  {
294  double value,err;
295 
296  dividend->setEfficiencyFlag();
297  if(denominator->getEntries()==0) return;
298 
299  for (int j=1; j<=numerator->getNbinsX(); j++){
300  if (denominator->getBinContent(j)!=0){
301  value = ((double) numerator->getBinContent(j))/((double) denominator->getBinContent(j));
302  err = sqrt( value*(1-value) / ((double) denominator->getBinContent(j)) );
303  dividend->setBinContent(j, value);
304  dividend->setBinError(j,err);
305  }
306  else {
307  dividend->setBinContent(j, 0);
308  dividend->setBinError(j,0);
309  }
310  dividend->setEntries(numerator->getEntries());
311  }
312 }
void setBinContent(int binx, double content)
set content of bin (1-D)
void setEfficiencyFlag()
T sqrt(T t)
Definition: SSEVec.h:18
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
void setEntries(double nentries)
set # of entries
double getEntries() const
get # of entries
double getBinContent(int binx) const
get content of bin (1-D)
int getNbinsX() const
get # of bins in X-axis
void PhotonOfflineClient::dividePlots ( MonitorElement dividend,
MonitorElement numerator,
double  denominator 
)
private

Definition at line 315 of file PhotonOfflineClient.cc.

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

315  {
316  double value,err;
317 
318  dividend->setEfficiencyFlag();
319  for (int j=1; j<=numerator->getNbinsX(); j++){
320  if (denominator!=0){
321  value = ((double) numerator->getBinContent(j))/denominator;
322  err = sqrt( value*(1-value) / denominator);
323  dividend->setBinContent(j, value);
324  dividend->setBinError(j,err);
325  }
326  else {
327  dividend->setBinContent(j, 0);
328  }
329  }
330 
331 }
void setBinContent(int binx, double content)
set content of bin (1-D)
void setEfficiencyFlag()
T sqrt(T t)
Definition: SSEVec.h:18
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() const
get # of bins in X-axis
void PhotonOfflineClient::dqmEndJob ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter 
)
overridevirtual

Implements DQMEDHarvester.

Definition at line 74 of file PhotonOfflineClient.cc.

75 {
76  if(!standAlone_) runClient(iBooker, iGetter);
77 }
virtual void runClient(DQMStore::IBooker &iBooker, DQMStore::IGetter &iGetter)
MonitorElement * PhotonOfflineClient::retrieveHisto ( DQMStore::IGetter iGetter,
std::string  dir,
std::string  name 
)

Definition at line 486 of file PhotonOfflineClient.cc.

References DQMStore::IGetter::getContents(), and parallelization::uint().

486  {
487  //cout << "dir = " << dir << endl;
488  //cout << "name = " << name << endl;
489  vector<MonitorElement*> histoVector;
490  uint indexOfRelevantHistogram=0;
491  string fullMEName = "";
492  histoVector = iGetter.getContents(dir);
493  for(uint index=0;index!=histoVector.size();index++){
494  string MEName = histoVector[index]->getName();
495  if(MEName.find( name ) != string::npos){
496  indexOfRelevantHistogram = index;
497  break;
498  }
499  }
500  return histoVector[indexOfRelevantHistogram];
501 }
std::vector< MonitorElement * > getContents(Args &&...args)
Definition: DQMStore.h:192
def uint(string)
dbl *** dir
Definition: mlp_gen.cc:35
void PhotonOfflineClient::runClient ( DQMStore::IBooker iBooker,
DQMStore::IGetter iGetter 
)
virtual

Definition at line 80 of file PhotonOfflineClient.cc.

References gather_cfg::cout, TkAlMuonSelectors_cfi::cut, pfDeepCMVADiscriminatorsJetTags_cfi::denominator, DQMStore::IGetter::dirExists(), conversionPostprocessing_cfi::etaBin, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, conversionPostprocessing_cfi::etBin, conversionPostprocessing_cfi::etMax, btagDijet_cfi::etMin, DQMStore::IGetter::get(), MonitorElement::getIntValue(), pfDeepCMVADiscriminatorsJetTags_cfi::numerator, conversionPostprocessing_cfi::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, DQMStore::IGetter::removeElement(), DQMStore::IGetter::setCurrentFolder(), and parallelization::uint().

81 {
82  // if(!dbe_) return;
83 
84  //if(batch_) dbe_->open(inputFileName_);
85 
86  //std::cout << " PostProcessing analyzer name " << analyzerName_ << std::endl;
87  if(!iGetter.dirExists("Egamma/"+analyzerName_)){
88  std::cout << "Folder Egamma/"+analyzerName_+" does not exist - Abort the efficiency calculation " << std::endl;
89  return;
90  }
91 
92  //find out how many histograms are in the various folders
93  histo_index_photons_ = iGetter.get("Egamma/"+analyzerName_+"/numberOfHistogramsInPhotonsFolder")->getIntValue();
94  histo_index_conversions_ = iGetter.get("Egamma/"+analyzerName_+"/numberOfHistogramsInConversionsFolder")->getIntValue();
95  histo_index_efficiency_ = iGetter.get("Egamma/"+analyzerName_+"/numberOfHistogramsInEfficiencyFolder")->getIntValue();
96  histo_index_invMass_ = iGetter.get("Egamma/"+analyzerName_+"/numberOfHistogramsInInvMassFolder")->getIntValue();
97 
98  iGetter.setCurrentFolder("Egamma/"+analyzerName_+"/");
99  iGetter.removeElement("numberOfHistogramsInPhotonsFolder");
100  iGetter.removeElement("numberOfHistogramsInConversionsFolder");
101  iGetter.removeElement("numberOfHistogramsInEfficiencyFolder");
102  iGetter.removeElement("numberOfHistogramsInInvMassFolder");
103 
104  string AllPath = "Egamma/"+analyzerName_+"/AllPhotons/";
105  string IsoPath = "Egamma/"+analyzerName_+"/GoodCandidatePhotons/";
106  string NonisoPath = "Egamma/"+analyzerName_+"/BackgroundPhotons/";
107  string EffPath = "Egamma/"+analyzerName_+"/Efficiencies/";
108 
109  //booking efficiency histograms
110  iGetter.setCurrentFolder(EffPath);
111 
112  p_efficiencyVsEtaLoose_ = bookHisto(iBooker,"EfficiencyVsEtaLoose","Fraction of Photons passing Loose Isolation vs #eta;#eta",etaBin,etaMin, etaMax);
113  p_efficiencyVsEtLoose_ = bookHisto(iBooker,"EfficiencyVsEtLoose", "Fraction of Photons passing Loose Isolation vs E_{T};E_{T} (GeV)",etBin,etMin,etMax);
114  p_efficiencyVsEtaTight_ = bookHisto(iBooker,"EfficiencyVsEtaTight","Fraction of Photons passing Tight Isolation vs #eta;#eta",etaBin,etaMin, etaMax);
115  p_efficiencyVsEtTight_ = bookHisto(iBooker,"EfficiencyVsEtTight", "Fraction of Photons passing Tight Isolation vs E_{T};E_{T} (GeV)",etBin,etMin,etMax);
116 
117  p_efficiencyVsEtaHLT_ = bookHisto(iBooker,"EfficiencyVsEtaHLT","Fraction of Photons firing HLT vs #eta;#eta",etaBin,etaMin, etaMax);
118  p_efficiencyVsEtHLT_ = bookHisto(iBooker,"EfficiencyVsEtHLT", "Fraction of Photons firing HLT vs E_{T};E_{T} (GeV)",etBin,etMin,etMax);
119 
120  p_convFractionVsEtaLoose_ = bookHisto(iBooker,"ConvFractionVsEtaLoose","Fraction of Loosely Isolated Photons which are matched to two tracks vs #eta;#eta",etaBin,etaMin, etaMax);
121  p_convFractionVsEtLoose_ = bookHisto(iBooker,"ConvFractionVsEtLoose", "Fraction of Loosely Isolated Photons which are matched to two tracks vs E_{T};E_{T} (GeV)",etBin,etMin,etMax);
122  p_convFractionVsEtaTight_ = bookHisto(iBooker,"ConvFractionVsEtaTight","Fraction of Tightly Isolated Photons which are matched to two tracks vs #eta;#eta",etaBin,etaMin, etaMax);
123  p_convFractionVsEtTight_ = bookHisto(iBooker,"ConvFractionVsEtTight", "Fraction of Tightly Isolated Photons which are matched to two tracks vs E_{T};E_{T} (GeV)",etBin,etMin,etMax);
124 
125  p_vertexReconstructionEfficiencyVsEta_ = bookHisto(iBooker,"VertexReconstructionEfficiencyVsEta","Fraction of Converted Photons which have a valid vertex vs #eta;#eta",etaBin,etaMin, etaMax);
126 
127  //booking conversion fraction histograms
128  iGetter.setCurrentFolder(AllPath+"Et above 20 GeV/Conversions");
129  book2DHistoVector(iBooker, p_convFractionVsEt_, "1D","convFractionVsEt", "Fraction of Converted Photons vs E_{T};E_{T} (GeV)",etBin,etMin,etMax);
130  book3DHistoVector(iBooker, p_convFractionVsPhi_,"1D","convFractionVsPhi","Fraction of Converted Photons vs #phi;#phi",phiBin,phiMin,phiMax);
131  book2DHistoVector(iBooker, p_convFractionVsEta_, "1D","convFractionVsEta","Fraction of Converted Photons vs #eta;#eta",etaBin,etaMin,etaMax);
132 
133  //booking bad channel fraction histograms
134  iGetter.setCurrentFolder(AllPath+"Et above 20 GeV/");
135  book2DHistoVector(iBooker, p_badChannelsFractionVsPhi_, "1D","badChannelsFractionVsPhi","Fraction of Photons which have at least one bad channel vs #phi;#phi",phiBin,phiMin,phiMax);
136  book2DHistoVector(iBooker, p_badChannelsFractionVsEta_, "1D","badChannelsFractionVsEta","Fraction of Photons which have at least one bad channel vs #eta;#eta",etaBin,etaMin, etaMax);
137  book2DHistoVector(iBooker, p_badChannelsFractionVsEt_, "1D","badChannelsFractionVsEt", "Fraction of Photons which have at least one bad channel vs E_{T};E_{T} (GeV)",etBin,etMin,etMax);
138 
139  //making efficiency plots
140  MonitorElement * dividend;
143 
144  currentFolder_.str("");
145  currentFolder_ << AllPath << "Et above 20 GeV/";
146 
147  //HLT efficiency plots
148  dividend = retrieveHisto(iGetter,EffPath,"EfficiencyVsEtaHLT");
149  numerator = retrieveHisto(iGetter,EffPath,"phoEtaPostHLT");
150  denominator = retrieveHisto(iGetter,EffPath,"phoEtaPreHLT");
151  dividePlots(dividend,numerator,denominator);
152 
153  dividend = retrieveHisto(iGetter,EffPath,"EfficiencyVsEtHLT");
154  numerator = retrieveHisto(iGetter,EffPath,"phoEtPostHLT");
155  denominator = retrieveHisto(iGetter,EffPath,"phoEtPreHLT");
156  dividePlots(dividend,numerator,denominator);
157 
158  //efficiencies vs Eta
159  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoEta");
160 
161  dividend = retrieveHisto(iGetter,EffPath,"EfficiencyVsEtaLoose");
162  numerator = retrieveHisto(iGetter,EffPath,"phoEtaLoose");
163  dividePlots(dividend,numerator,denominator);
164 
165  dividend = retrieveHisto(iGetter,EffPath,"EfficiencyVsEtaTight");
166  numerator = retrieveHisto(iGetter,EffPath,"phoEtaTight");
167  dividePlots(dividend,numerator,denominator);
168 
169  //efficiencies vs Et
170  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoEtAllEcal");
171 
172  dividend = retrieveHisto(iGetter,EffPath,"EfficiencyVsEtLoose");
173  numerator = retrieveHisto(iGetter,EffPath,"phoEtLoose");
174  dividePlots(dividend,numerator,denominator);
175 
176  dividend = retrieveHisto(iGetter,EffPath,"EfficiencyVsEtTight");
177  numerator = retrieveHisto(iGetter,EffPath,"phoEtTight");
178  dividePlots(dividend,numerator,denominator);
179 
180  //conversion fractions vs Eta
181  dividend = retrieveHisto(iGetter,EffPath,"ConvFractionVsEtaLoose");
182  numerator = retrieveHisto(iGetter,EffPath,"convEtaLoose");
183  denominator = retrieveHisto(iGetter,EffPath,"phoEtaLoose");
184  dividePlots(dividend,numerator,denominator);
185 
186  dividend = retrieveHisto(iGetter,EffPath,"ConvFractionVsEtaTight");
187  numerator = retrieveHisto(iGetter,EffPath,"convEtaTight");
188  denominator = retrieveHisto(iGetter,EffPath,"phoEtaTight");
189  dividePlots(dividend,numerator,denominator);
190 
191  //conversion fractions vs Et
192  dividend = retrieveHisto(iGetter,EffPath,"ConvFractionVsEtLoose");
193  numerator = retrieveHisto(iGetter,EffPath,"convEtLoose");
194  denominator = retrieveHisto(iGetter,EffPath,"phoEtLoose");
195  dividePlots(dividend,numerator,denominator);
196 
197  dividend = retrieveHisto(iGetter,EffPath,"ConvFractionVsEtTight");
198  numerator = retrieveHisto(iGetter,EffPath,"convEtTight");
199  denominator = retrieveHisto(iGetter,EffPath,"phoEtTight");
200  dividePlots(dividend,numerator,denominator);
201 
202  //conversion vertex recontruction efficiency
203  dividend = retrieveHisto(iGetter,EffPath,"VertexReconstructionEfficiencyVsEta");
204  numerator = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","phoConvEta");
205  denominator = retrieveHisto(iGetter,EffPath,"phoEtaVertex");
206  dividePlots(dividend,numerator,denominator);
207 
208  iGetter.setCurrentFolder(EffPath);
209 
210  iGetter.removeElement("phoEtaPreHLT");
211  iGetter.removeElement("phoEtPreHLT");
212  iGetter.removeElement("phoEtaPostHLT");
213  iGetter.removeElement("phoEtPostHLT");
214  iGetter.removeElement("phoEtaLoose");
215  iGetter.removeElement("phoEtaTight");
216  iGetter.removeElement("phoEtLoose");
217  iGetter.removeElement("phoEtTight");
218  iGetter.removeElement("phoEtaVertex");
219  iGetter.removeElement("convEtaLoose");
220  iGetter.removeElement("convEtaTight");
221  iGetter.removeElement("convEtLoose");
222  iGetter.removeElement("convEtTight");
223 
224  for(uint type=0;type!=types_.size();++type){
225 
226  for (int cut = 0; cut !=numberOfSteps_; ++cut) {
227 
228  currentFolder_.str("");
229  currentFolder_ << "Egamma/"+analyzerName_+"/" << types_[type] << "Photons/Et above " << (cut+1)*cutStep_ << " GeV/";
230 
231  //making bad channel histograms
232 
233  //vs Et
234  dividend = retrieveHisto(iGetter,currentFolder_.str(),"badChannelsFractionVsEt");
235  numerator = retrieveHisto(iGetter,currentFolder_.str(),"phoEtBadChannels");
236  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoEtAllEcal");
237  dividePlots(dividend,numerator,denominator);
238 
239  //vs eta
240  dividend = retrieveHisto(iGetter,currentFolder_.str(),"badChannelsFractionVsEta");
241  numerator = retrieveHisto(iGetter,currentFolder_.str(),"phoEtaBadChannels");
242  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoEta");
243  dividePlots(dividend,numerator,denominator);
244 
245  //vs phi
246  dividend = retrieveHisto(iGetter,currentFolder_.str(),"badChannelsFractionVsPhi");
247  numerator = retrieveHisto(iGetter,currentFolder_.str(),"phoPhiBadChannels");
248  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoPhiAllEcal");
249  dividePlots(dividend,numerator,denominator);
250 
251  //making conversion fraction histograms
252 
253  //vs Et
254  dividend = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","convFractionVsEt");
255  numerator = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","phoConvEtAllEcal");
256  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoEtAllEcal");
257  dividePlots(dividend,numerator,denominator);
258 
259  //vs eta
260  dividend = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","convFractionVsEta");
261  numerator = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","phoConvEtaForEfficiency");
262  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoEta");
263  dividePlots(dividend,numerator,denominator);
264 
265  //vs phi
266  dividend = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","convFractionVsPhiAllEcal");
267  numerator = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","phoConvPhiForEfficiencyAllEcal");
268  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoPhiAllEcal");
269  dividePlots(dividend,numerator,denominator);
270  dividend = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","convFractionVsPhiBarrel");
271  numerator = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","phoConvPhiForEfficiencyBarrel");
272  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoPhiBarrel");
273  dividePlots(dividend,numerator,denominator);
274  dividend = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","convFractionVsPhiEndcaps");
275  numerator = retrieveHisto(iGetter,currentFolder_.str()+"Conversions/","phoConvPhiForEfficiencyEndcaps");
276  denominator = retrieveHisto(iGetter,currentFolder_.str(),"phoPhiEndcaps");
277  dividePlots(dividend,numerator,denominator);
278 
279 
280  iGetter.setCurrentFolder(currentFolder_.str()+"Conversions/");
281  iGetter.removeElement("phoConvEtaForEfficiency");
282  iGetter.removeElement("phoConvPhiForEfficiencyAllEcal");
283  iGetter.removeElement("phoConvPhiForEfficiencyBarrel");
284  iGetter.removeElement("phoConvPhiForEfficiencyEndcaps");
285  }
286  }
287 
288  // if(standAlone_) dbe_->save(outputFileName_);
289  //else if(batch_) dbe_->save(inputFileName_);
290 
291 }
type
Definition: HCALResponse.h:21
int64_t getIntValue() const
void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:361
std::vector< std::vector< MonitorElement * > > p_badChannelsFractionVsEta_
std::vector< std::string > types_
std::vector< std::vector< MonitorElement * > > p_convFractionVsEta_
void book2DHistoVector(DQMStore::IBooker &iBooker, std::vector< std::vector< MonitorElement * > > &vecOfHist, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
std::vector< std::vector< MonitorElement * > > p_convFractionVsEt_
MonitorElement * p_convFractionVsEtaLoose_
MonitorElement * p_vertexReconstructionEfficiencyVsEta_
MonitorElement * retrieveHisto(DQMStore::IGetter &iGetter, std::string dir, std::string name)
std::vector< std::vector< MonitorElement * > > p_badChannelsFractionVsPhi_
MonitorElement * p_efficiencyVsEtHLT_
void dividePlots(MonitorElement *dividend, MonitorElement *numerator, MonitorElement *denominator)
std::stringstream currentFolder_
MonitorElement * p_efficiencyVsEtaLoose_
MonitorElement * p_convFractionVsEtaTight_
MonitorElement * get(std::string const &path)
Definition: DQMStore.cc:303
def uint(string)
bool dirExists(std::string const &path)
Definition: DQMStore.cc:343
void book3DHistoVector(DQMStore::IBooker &iBooker, std::vector< std::vector< std::vector< MonitorElement * > > > &vecOfHist, std::string histoType, std::string histoName, std::string title, int xbin, double xmin, double xmax, int ybin=1, double ymin=1, double ymax=2)
MonitorElement * p_efficiencyVsEtaHLT_
MonitorElement * p_efficiencyVsEtLoose_
MonitorElement * p_efficiencyVsEtaTight_
MonitorElement * p_convFractionVsEtTight_
std::vector< std::vector< MonitorElement * > > p_badChannelsFractionVsEt_
MonitorElement * p_convFractionVsEtLoose_
MonitorElement * bookHisto(DQMStore::IBooker &iBooker, std::string histoName, std::string title, int bin, double min, double max)
void removeElement(Args &&...args)
Definition: DQMStore.h:199
std::vector< std::vector< std::vector< MonitorElement * > > > p_convFractionVsPhi_
MonitorElement * p_efficiencyVsEtTight_

Member Data Documentation

std::string PhotonOfflineClient::analyzerName_
private

Definition at line 102 of file PhotonOfflineClient.h.

bool PhotonOfflineClient::batch_
private

Definition at line 148 of file PhotonOfflineClient.h.

std::stringstream PhotonOfflineClient::currentFolder_
private

Definition at line 153 of file PhotonOfflineClient.h.

double PhotonOfflineClient::cutStep_
private

Definition at line 132 of file PhotonOfflineClient.h.

int PhotonOfflineClient::etaBin
private

Definition at line 142 of file PhotonOfflineClient.h.

double PhotonOfflineClient::etaMax
private

Definition at line 141 of file PhotonOfflineClient.h.

double PhotonOfflineClient::etaMin
private

Definition at line 140 of file PhotonOfflineClient.h.

int PhotonOfflineClient::etBin
private

Definition at line 139 of file PhotonOfflineClient.h.

double PhotonOfflineClient::etMax
private

Definition at line 138 of file PhotonOfflineClient.h.

double PhotonOfflineClient::etMin
private

Definition at line 137 of file PhotonOfflineClient.h.

bool PhotonOfflineClient::excludeBkgHistos_
private

Definition at line 135 of file PhotonOfflineClient.h.

int PhotonOfflineClient::histo_index_conversions_
private

Definition at line 156 of file PhotonOfflineClient.h.

int PhotonOfflineClient::histo_index_efficiency_
private

Definition at line 157 of file PhotonOfflineClient.h.

int PhotonOfflineClient::histo_index_invMass_
private

Definition at line 158 of file PhotonOfflineClient.h.

int PhotonOfflineClient::histo_index_photons_
private

Definition at line 155 of file PhotonOfflineClient.h.

std::string PhotonOfflineClient::inputFileName_
private

Definition at line 151 of file PhotonOfflineClient.h.

bool PhotonOfflineClient::minimalSetOfHistos_
private

Definition at line 134 of file PhotonOfflineClient.h.

int PhotonOfflineClient::numberOfSteps_
private

Definition at line 133 of file PhotonOfflineClient.h.

std::string PhotonOfflineClient::outputFileName_
private

Definition at line 150 of file PhotonOfflineClient.h.

std::vector<std::vector<MonitorElement*> > PhotonOfflineClient::p_badChannelsFractionVsEt_
private

Definition at line 121 of file PhotonOfflineClient.h.

std::vector<std::vector<MonitorElement*> > PhotonOfflineClient::p_badChannelsFractionVsEta_
private

Definition at line 119 of file PhotonOfflineClient.h.

std::vector<std::vector<MonitorElement*> > PhotonOfflineClient::p_badChannelsFractionVsPhi_
private

Definition at line 120 of file PhotonOfflineClient.h.

std::vector<std::vector<MonitorElement*> > PhotonOfflineClient::p_convFractionVsEt_
private

Definition at line 117 of file PhotonOfflineClient.h.

std::vector<std::vector<MonitorElement*> > PhotonOfflineClient::p_convFractionVsEta_
private

Definition at line 115 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_convFractionVsEtaLoose_
private

Definition at line 110 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_convFractionVsEtaTight_
private

Definition at line 112 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_convFractionVsEtLoose_
private

Definition at line 111 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_convFractionVsEtTight_
private

Definition at line 113 of file PhotonOfflineClient.h.

std::vector<std::vector<std::vector<MonitorElement*> > > PhotonOfflineClient::p_convFractionVsPhi_
private

Definition at line 116 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_efficiencyVsEtaHLT_
private

Definition at line 107 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_efficiencyVsEtaLoose_
private

Definition at line 103 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_efficiencyVsEtaTight_
private

Definition at line 105 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_efficiencyVsEtHLT_
private

Definition at line 108 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_efficiencyVsEtLoose_
private

Definition at line 104 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_efficiencyVsEtTight_
private

Definition at line 106 of file PhotonOfflineClient.h.

MonitorElement* PhotonOfflineClient::p_vertexReconstructionEfficiencyVsEta_
private

Definition at line 123 of file PhotonOfflineClient.h.

edm::ParameterSet PhotonOfflineClient::parameters_
private
std::vector<std::string> PhotonOfflineClient::parts_
private

Definition at line 161 of file PhotonOfflineClient.h.

int PhotonOfflineClient::phiBin
private

Definition at line 145 of file PhotonOfflineClient.h.

double PhotonOfflineClient::phiMax
private

Definition at line 144 of file PhotonOfflineClient.h.

double PhotonOfflineClient::phiMin
private

Definition at line 143 of file PhotonOfflineClient.h.

bool PhotonOfflineClient::standAlone_
private

Definition at line 147 of file PhotonOfflineClient.h.

std::vector<std::string> PhotonOfflineClient::types_
private

Definition at line 160 of file PhotonOfflineClient.h.

int PhotonOfflineClient::verbosity_
private

Definition at line 128 of file PhotonOfflineClient.h.