CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes
METCorrectionAlgorithm::type2BinningEntryType Struct Reference

Public Member Functions

void initialize (const std::string &binCorrFormula, const edm::ParameterSet &binCorrParameter)
 
 type2BinningEntryType (const std::string &binCorrformula, const edm::ParameterSet &binCorrParameter, const vInputTag &srcUnclEnergySums)
 
 type2BinningEntryType (const edm::ParameterSet &cfg, const vInputTag &srcUnclEnergySums)
 
 ~type2BinningEntryType ()
 

Public Attributes

TFormula * binCorrFormula_
 
std::vector< double > binCorrParameter_
 
std::string binLabel_
 
vInputTag srcUnclEnergySums_
 

Detailed Description

Definition at line 56 of file METCorrectionAlgorithm.h.

Constructor & Destructor Documentation

METCorrectionAlgorithm::type2BinningEntryType::type2BinningEntryType ( const std::string &  binCorrformula,
const edm::ParameterSet binCorrParameter,
const vInputTag srcUnclEnergySums 
)
inline

Definition at line 58 of file METCorrectionAlgorithm.h.

References initialize().

59  : binLabel_(""),
60  srcUnclEnergySums_(srcUnclEnergySums),
62  {
63  initialize(binCorrformula, binCorrParameter);
64  }
void initialize(const std::string &binCorrFormula, const edm::ParameterSet &binCorrParameter)
METCorrectionAlgorithm::type2BinningEntryType::type2BinningEntryType ( const edm::ParameterSet cfg,
const vInputTag srcUnclEnergySums 
)
inline

Definition at line 65 of file METCorrectionAlgorithm.h.

References binLabel_, data, edm::ParameterSet::getParameter(), initialize(), and srcUnclEnergySums_.

66  : binLabel_(cfg.getParameter<std::string>("binLabel")),
68  {
69  for ( vInputTag::const_iterator srcUnclEnergySum = srcUnclEnergySums.begin();
70  srcUnclEnergySum != srcUnclEnergySums.end(); ++srcUnclEnergySum ) {
71  std::string instanceLabel = srcUnclEnergySum->instance();
72  if ( instanceLabel != "" && binLabel_ != "" ) instanceLabel.append("#");
73  instanceLabel.append(binLabel_);
74  srcUnclEnergySums_.push_back(edm::InputTag(srcUnclEnergySum->label(), instanceLabel));
75  }
76 
77  std::string binCorrFormula = cfg.getParameter<std::string>("binCorrFormula").data();
78 
79  edm::ParameterSet binCorrParameter = cfg.getParameter<edm::ParameterSet>("binCorrParameter");
80 
81  initialize(binCorrFormula, binCorrParameter);
82  }
void initialize(const std::string &binCorrFormula, const edm::ParameterSet &binCorrParameter)
T getParameter(std::string const &) const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
METCorrectionAlgorithm::type2BinningEntryType::~type2BinningEntryType ( )
inline

Definition at line 114 of file METCorrectionAlgorithm.h.

References binCorrFormula_.

115  {
116  delete binCorrFormula_;
117  }

Member Function Documentation

void METCorrectionAlgorithm::type2BinningEntryType::initialize ( const std::string &  binCorrFormula,
const edm::ParameterSet binCorrParameter 
)
inline

Definition at line 83 of file METCorrectionAlgorithm.h.

References binCorrFormula_, binCorrParameter_, binLabel_, data, edm::hlt::Exception, EcalElecEmulExample_cfg::formula, edm::ParameterSet::getParameter(), and edm::ParameterSet::getParameterNamesForType().

Referenced by type2BinningEntryType().

84  {
85  TString formula = binCorrFormula;
86 
87  vstring parNames = binCorrParameter.getParameterNamesForType<double>();
88  int numParameter = parNames.size();
89  binCorrParameter_.resize(numParameter);
90  for ( int parIndex = 0; parIndex < numParameter; ++parIndex ) {
91  const std::string& parName = parNames[parIndex].data();
92 
93  double parValue = binCorrParameter.getParameter<double>(parName);
94  binCorrParameter_[parIndex] = parValue;
95 
96  TString parName_internal = Form("[%i]", parIndex);
97  formula = formula.ReplaceAll(parName.data(), parName_internal);
98  }
99 
100  std::string binCorrFormulaName = std::string("binCorrFormula").append("_").append(binLabel_);
101  binCorrFormula_ = new TFormula(binCorrFormulaName.data(), formula);
102 
103 //--- check that syntax of formula string is valid
104 // (i.e. that TFormula "compiled" without errors)
105  if ( !(binCorrFormula_->GetNdim() <= 1 && binCorrFormula_->GetNpar() == numParameter) )
106  throw cms::Exception("METCorrectionAlgorithm")
107  << "Formula for Type 2 correction has invalid syntax = " << formula << " !!\n";
108 
109  for ( int parIndex = 0; parIndex < numParameter; ++parIndex ) {
110  binCorrFormula_->SetParameter(parIndex, binCorrParameter_[parIndex]);
111  binCorrFormula_->SetParName(parIndex, parNames[parIndex].data());
112  }
113  }
T getParameter(std::string const &) const
std::vector< std::string > getParameterNamesForType(bool trackiness=true) const
Definition: ParameterSet.h:195
std::vector< std::string > vstring
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82

Member Data Documentation

TFormula* METCorrectionAlgorithm::type2BinningEntryType::binCorrFormula_

Definition at line 120 of file METCorrectionAlgorithm.h.

Referenced by initialize(), and ~type2BinningEntryType().

std::vector<double> METCorrectionAlgorithm::type2BinningEntryType::binCorrParameter_

Definition at line 121 of file METCorrectionAlgorithm.h.

Referenced by initialize().

std::string METCorrectionAlgorithm::type2BinningEntryType::binLabel_

Definition at line 118 of file METCorrectionAlgorithm.h.

Referenced by initialize(), and type2BinningEntryType().

vInputTag METCorrectionAlgorithm::type2BinningEntryType::srcUnclEnergySums_

Definition at line 119 of file METCorrectionAlgorithm.h.

Referenced by type2BinningEntryType().