Skip to content

Commit

Permalink
Merge pull request #13861 from kpedro88/Phase1-DbHardcode1
Browse files Browse the repository at this point in the history
Configurable hardcode conditions for HCAL
  • Loading branch information
cmsbuild committed Apr 13, 2016
2 parents f366b48 + e13eead commit f9c8c0d
Show file tree
Hide file tree
Showing 13 changed files with 506 additions and 886 deletions.
74 changes: 57 additions & 17 deletions CalibCalorimetry/HcalAlgos/interface/HcalDbHardcode.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include "CondFormats/HcalObjects/interface/HcalRecoParam.h"
#include "CondFormats/HcalObjects/interface/HcalTimingParam.h"
#include "CondFormats/HcalObjects/interface/HcalMCParam.h"
#include "CalibCalorimetry/HcalAlgos/interface/HcalHardcodeParameters.h"

/**
Expand All @@ -29,21 +30,60 @@
\author Fedor Ratnikov
*/
namespace HcalDbHardcode {
HcalPedestal makePedestal (HcalGenericDetId fId, bool fSmear = false);
HcalPedestal makePedestal (HcalGenericDetId fId, bool fSmear = false, double lumi = 0.0);
HcalPedestalWidth makePedestalWidth (HcalGenericDetId fId);
HcalPedestalWidth makePedestalWidth (HcalGenericDetId fId, double lumi);
HcalGain makeGain (HcalGenericDetId fId, bool fSmear = false);
HcalGainWidth makeGainWidth (HcalGenericDetId fId);
HcalQIECoder makeQIECoder (HcalGenericDetId fId);
HcalCalibrationQIECoder makeCalibrationQIECoder (HcalGenericDetId fId);
HcalQIEShape makeQIEShape ();
HcalQIEType makeQIEType (HcalGenericDetId fId, bool testHFQIE10);
HcalRecoParam makeRecoParam (HcalGenericDetId fId);
HcalMCParam makeMCParam (HcalGenericDetId fId);
HcalTimingParam makeTimingParam (HcalGenericDetId fId);
void makeHardcodeMap(HcalElectronicsMap& emap);
void makeHardcodeDcsMap(HcalDcsMap& dcs_map);
}
class HcalDbHardcode {
public:
//constructor
HcalDbHardcode();

//destructor
virtual ~HcalDbHardcode() {}

//setters
void setHB(HcalHardcodeParameters p) { theHBParameters_ = p; setHB_ = true; }
void setHE(HcalHardcodeParameters p) { theHEParameters_ = p; setHE_ = true; }
void setHF(HcalHardcodeParameters p) { theHFParameters_ = p; setHF_ = true; }
void setHO(HcalHardcodeParameters p) { theHOParameters_ = p; setHO_ = true; }
void setHBUpgrade(HcalHardcodeParameters p) { theHBUpgradeParameters_ = p; setHBUpgrade_ = true; }
void setHEUpgrade(HcalHardcodeParameters p) { theHEUpgradeParameters_ = p; setHEUpgrade_ = true; }
void setHFUpgrade(HcalHardcodeParameters p) { theHFUpgradeParameters_ = p; setHFUpgrade_ = true; }
void useHBUpgrade(bool b) { useHBUpgrade_ = b; }
void useHEUpgrade(bool b) { useHEUpgrade_ = b; }
void useHFUpgrade(bool b) { useHFUpgrade_ = b; }
void testHFQIE10(bool b) { testHFQIE10_ = b; }
void setLumi(double lumi) { lumi_ = lumi; }
void setLumiOffset(double offset) { lumiOffset_ = offset; }
void setHBSiPMLumiDep(double dep) { theHBSiPMLumiDep_ = dep; }
void setHESiPMLumiDep(double dep) { theHESiPMLumiDep_ = dep; }

//getters
const bool useHBUpgrade() const { return useHBUpgrade_; }
const bool useHEUpgrade() const { return useHEUpgrade_; }
const bool useHFUpgrade() const { return useHFUpgrade_; }
const HcalHardcodeParameters& getParameters(HcalGenericDetId fId);
const int getGainIndex(HcalGenericDetId fId);
HcalPedestal makePedestal (HcalGenericDetId fId, bool fSmear = false);
HcalPedestalWidth makePedestalWidth (HcalGenericDetId fId);
HcalPedestalWidth makePedestalWidth (HcalGenericDetId fId, double lumi);
HcalGain makeGain (HcalGenericDetId fId, bool fSmear = false);
HcalGainWidth makeGainWidth (HcalGenericDetId fId);
HcalQIECoder makeQIECoder (HcalGenericDetId fId);
HcalCalibrationQIECoder makeCalibrationQIECoder (HcalGenericDetId fId);
HcalQIEShape makeQIEShape ();
HcalQIEType makeQIEType (HcalGenericDetId fId);
HcalRecoParam makeRecoParam (HcalGenericDetId fId);
HcalMCParam makeMCParam (HcalGenericDetId fId);
HcalTimingParam makeTimingParam (HcalGenericDetId fId);
void makeHardcodeMap(HcalElectronicsMap& emap);
void makeHardcodeDcsMap(HcalDcsMap& dcs_map);

private:
//member variables
HcalHardcodeParameters theDefaultParameters_;
HcalHardcodeParameters theHBParameters_, theHEParameters_, theHFParameters_, theHOParameters_;
HcalHardcodeParameters theHBUpgradeParameters_, theHEUpgradeParameters_, theHFUpgradeParameters_;
bool setHB_, setHE_, setHF_, setHO_, setHBUpgrade_, setHEUpgrade_, setHFUpgrade_;
bool useHBUpgrade_, useHEUpgrade_, useHFUpgrade_, testHFQIE10_;
double lumi_, lumiOffset_, theHBSiPMLumiDep_, theHESiPMLumiDep_;
};

#endif
39 changes: 39 additions & 0 deletions CalibCalorimetry/HcalAlgos/interface/HcalHardcodeParameters.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#ifndef HcalAlgos_HcalHardcodeParameters_h
#define HcalAlgos_HcalHardcodeParameters_h

#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include <vector>

class HcalHardcodeParameters {
public:
//default constructor
HcalHardcodeParameters() {}
//construct from values
HcalHardcodeParameters(double pedestal, double pedestalWidth, std::vector<double> gain, std::vector<double> gainWidth,
int qieType, std::vector<double> qieOffset, std::vector<double> qieSlope);
//construct from pset
HcalHardcodeParameters(const edm::ParameterSet & p);

//destructor
virtual ~HcalHardcodeParameters() {}

//accessors
//note: all vector accessors use at() in order to throw exceptions for malformed conditions
const double pedestal() const { return pedestal_; }
const double pedestalWidth() const { return pedestalWidth_; }
const double gain(unsigned index) const { return gain_.at(index); }
const double gainWidth(unsigned index) const { return gainWidth_.at(index); }
const int qieType() const { return qieType_; }
const double qieOffset(unsigned range) const { return qieOffset_.at(range); }
const double qieSlope(unsigned range) const { return qieSlope_.at(range); }

private:
//member variables
double pedestal_, pedestalWidth_;
std::vector<double> gain_, gainWidth_;
int qieType_;
std::vector<double> qieOffset_, qieSlope_;
};

#endif

0 comments on commit f9c8c0d

Please sign in to comment.