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, edm::ConsumesCollector &iConsumesCollector)
 
 type2BinningEntryType (const edm::ParameterSet &cfg, const vInputTag &srcUnclEnergySums, edm::ConsumesCollector &iConsumesCollector)
 
 ~type2BinningEntryType ()
 

Public Attributes

TFormula * binCorrFormula_
 
std::vector< double > binCorrParameter_
 
std::string binLabel_
 
std::vector< edm::EDGetTokenT
< CorrMETData > > 
corrTokens_
 

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,
edm::ConsumesCollector iConsumesCollector 
)
inline

Definition at line 58 of file METCorrectionAlgorithm.h.

References edm::ConsumesCollector::consumes(), corrTokens_, initialize(), and beam_dqm_sourceclient-live_cfg::inputTag.

59  : binLabel_(""),
61  {
62  for (vInputTag::const_iterator inputTag = srcUnclEnergySums.begin(); inputTag != srcUnclEnergySums.end(); ++inputTag)
63  {
64  corrTokens_.push_back(iConsumesCollector.consumes<CorrMETData>(*inputTag));
65  }
66 
67  initialize(binCorrformula, binCorrParameter);
68  }
void initialize(const std::string &binCorrFormula, const edm::ParameterSet &binCorrParameter)
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::vector< edm::EDGetTokenT< CorrMETData > > corrTokens_
a MET correction term
Definition: CorrMETData.h:14
METCorrectionAlgorithm::type2BinningEntryType::type2BinningEntryType ( const edm::ParameterSet cfg,
const vInputTag srcUnclEnergySums,
edm::ConsumesCollector iConsumesCollector 
)
inline

Definition at line 69 of file METCorrectionAlgorithm.h.

References binLabel_, edm::ConsumesCollector::consumes(), corrTokens_, data, edm::ParameterSet::getParameter(), initialize(), beam_dqm_sourceclient-live_cfg::inputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

70  : binLabel_(cfg.getParameter<std::string>("binLabel")),
72  {
73  for ( vInputTag::const_iterator srcUnclEnergySum = srcUnclEnergySums.begin();
74  srcUnclEnergySum != srcUnclEnergySums.end(); ++srcUnclEnergySum )
75  {
76  std::string instanceLabel = srcUnclEnergySum->instance();
77  if ( instanceLabel != "" && binLabel_ != "" ) instanceLabel.append("#");
78  instanceLabel.append(binLabel_);
79  edm::InputTag inputTag(srcUnclEnergySum->label(), instanceLabel);
80  corrTokens_.push_back(iConsumesCollector.consumes<CorrMETData>(inputTag));
81  }
82 
83  std::string binCorrFormula = cfg.getParameter<std::string>("binCorrFormula").data();
84 
85  edm::ParameterSet binCorrParameter = cfg.getParameter<edm::ParameterSet>("binCorrParameter");
86 
87  initialize(binCorrFormula, binCorrParameter);
88  }
void initialize(const std::string &binCorrFormula, const edm::ParameterSet &binCorrParameter)
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
std::vector< edm::EDGetTokenT< CorrMETData > > corrTokens_
a MET correction term
Definition: CorrMETData.h:14
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
METCorrectionAlgorithm::type2BinningEntryType::~type2BinningEntryType ( )
inline

Definition at line 120 of file METCorrectionAlgorithm.h.

References binCorrFormula_.

121  {
122  delete binCorrFormula_;
123  }

Member Function Documentation

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

Definition at line 89 of file METCorrectionAlgorithm.h.

References binCorrFormula_, binCorrParameter_, binLabel_, data, Exception, EcalElecEmulTccOnlyExample_cfg::formula, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNamesForType(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by type2BinningEntryType().

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

Member Data Documentation

TFormula* METCorrectionAlgorithm::type2BinningEntryType::binCorrFormula_

Definition at line 126 of file METCorrectionAlgorithm.h.

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

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

Definition at line 127 of file METCorrectionAlgorithm.h.

Referenced by initialize().

std::string METCorrectionAlgorithm::type2BinningEntryType::binLabel_

Definition at line 124 of file METCorrectionAlgorithm.h.

Referenced by initialize(), and type2BinningEntryType().

std::vector<edm::EDGetTokenT<CorrMETData> > METCorrectionAlgorithm::type2BinningEntryType::corrTokens_

Definition at line 125 of file METCorrectionAlgorithm.h.

Referenced by type2BinningEntryType().