CMS 3D CMS Logo

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

#include <Tools/SiPixelGainCalibScaler/plugins/SiPixelGainCalibScaler.cc>

Inheritance diagram for SiPixelGainCalibScaler:
edm::one::EDAnalyzer< edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 SiPixelGainCalibScaler (const edm::ParameterSet &)
 
 ~SiPixelGainCalibScaler () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::SharedResources >
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () 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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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 selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
template<class tokenType , class PayloadType >
void computeAndStorePalyoads (const edm::EventSetup &iSetup, const tokenType &token)
 
void endJob () override
 

Private Attributes

edm::ESGetToken< SiPixelGainCalibrationForHLT, SiPixelGainCalibrationForHLTRcdgainHLTCalibToken_
 
edm::ESGetToken< SiPixelGainCalibrationOffline, SiPixelGainCalibrationOfflineRcdgainOfflineCalibToken_
 
const bool isForHLT_
 
const std::vector< edm::ParameterSetm_parameters
 
gainScale::VCalInfo phase0VCal
 
gainScale::VCalInfo phase1VCal
 
edm::ESWatcher< SiPixelGainCalibrationForHLTRcdpixelHLTGainWatcher_
 
edm::ESWatcher< SiPixelGainCalibrationOfflineRcdpixelOfflineGainWatcher_
 
const std::string recordName_
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtkGeomToken_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtkTopoToken_
 
const bool verbose_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: Scales Pixel Gain Payloads by applying the VCal offset and slopes.

Implementation: Makes use of trick to loop over all IOVs in a tag by running on all the runs with EmptySource and just access DB once the IOV has changed via ESWatcher mechanism

Definition at line 94 of file SiPixelGainCalibScaler.cc.

Constructor & Destructor Documentation

◆ SiPixelGainCalibScaler()

SiPixelGainCalibScaler::SiPixelGainCalibScaler ( const edm::ParameterSet iConfig)
explicit

Definition at line 129 of file SiPixelGainCalibScaler.cc.

References edm::EDConsumerBase::esConsumes(), Exception, gainHLTCalibToken_, gainOfflineCalibToken_, gainScale::VCalInfo::init(), m_parameters, phase0VCal, phase1VCal, tkGeomToken_, and tkTopoToken_.

130  : recordName_(iConfig.getParameter<std::string>("record")),
131  isForHLT_(iConfig.getParameter<bool>("isForHLT")),
132  verbose_(iConfig.getUntrackedParameter<bool>("verbose", false)),
133  m_parameters(iConfig.getParameter<std::vector<edm::ParameterSet> >("parameters")) {
138 
139  for (auto& thePSet : m_parameters) {
140  const unsigned int phase(thePSet.getParameter<unsigned int>("phase"));
141  switch (phase) {
142  case 0: {
143  phase0VCal.init(thePSet.getParameter<double>("conversionFactor"),
144  thePSet.getParameter<double>("conversionFactorL1"),
145  thePSet.getParameter<double>("offset"),
146  thePSet.getParameter<double>("offsetL1"));
147  break;
148  }
149  case 1: {
150  phase1VCal.init(thePSet.getParameter<double>("conversionFactor"),
151  thePSet.getParameter<double>("conversionFactorL1"),
152  thePSet.getParameter<double>("offset"),
153  thePSet.getParameter<double>("offsetL1"));
154  break;
155  }
156  default:
157  throw cms::Exception("LogicError") << "Unrecongnized phase: " << phase << ". Exiting!";
158  }
159  }
160 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const std::vector< edm::ParameterSet > m_parameters
T getUntrackedParameter(std::string const &, T const &) const
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
gainScale::VCalInfo phase0VCal
edm::ESGetToken< SiPixelGainCalibrationOffline, SiPixelGainCalibrationOfflineRcd > gainOfflineCalibToken_
gainScale::VCalInfo phase1VCal
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tkTopoToken_
edm::ESGetToken< SiPixelGainCalibrationForHLT, SiPixelGainCalibrationForHLTRcd > gainHLTCalibToken_
void init(double conversionFactor, double conversionFactorL1, double offset, double offsetL1)

◆ ~SiPixelGainCalibScaler()

SiPixelGainCalibScaler::~SiPixelGainCalibScaler ( )
override

Definition at line 162 of file SiPixelGainCalibScaler.cc.

162 {}

Member Function Documentation

◆ analyze()

void SiPixelGainCalibScaler::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 169 of file SiPixelGainCalibScaler.cc.

References edm::ESWatcher< T >::check(), gainHLTCalibToken_, gainOfflineCalibToken_, iEvent, isForHLT_, pixelHLTGainWatcher_, pixelOfflineGainWatcher_, and writedatasetfile::run.

169  {
170  using namespace edm;
171 
172  int run = iEvent.id().run();
173  bool hasPixelHLTGainIOV = pixelHLTGainWatcher_.check(iSetup);
174  bool hasPixelOfflineGainIOV = pixelOfflineGainWatcher_.check(iSetup);
175 
176  if ((hasPixelHLTGainIOV && isForHLT_) || (hasPixelOfflineGainIOV && !isForHLT_)) {
177  edm::LogPrint("SiPixelGainCalibScaler") << " Pixel Gains have a new IOV for run: " << run << std::endl;
178 
179  if (isForHLT_) {
180  computeAndStorePalyoads<edm::ESGetToken<SiPixelGainCalibrationForHLT, SiPixelGainCalibrationForHLTRcd>,
182  } else {
183  computeAndStorePalyoads<edm::ESGetToken<SiPixelGainCalibrationOffline, SiPixelGainCalibrationOfflineRcd>,
185  }
186  } // if new IOV
187 }
edm::ESWatcher< SiPixelGainCalibrationOfflineRcd > pixelOfflineGainWatcher_
int iEvent
Definition: GenABIO.cc:224
Log< level::Warning, true > LogPrint
edm::ESGetToken< SiPixelGainCalibrationOffline, SiPixelGainCalibrationOfflineRcd > gainOfflineCalibToken_
edm::ESWatcher< SiPixelGainCalibrationForHLTRcd > pixelHLTGainWatcher_
edm::ESGetToken< SiPixelGainCalibrationForHLT, SiPixelGainCalibrationForHLTRcd > gainHLTCalibToken_
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
HLT enums.

◆ beginJob()

void SiPixelGainCalibScaler::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 344 of file SiPixelGainCalibScaler.cc.

344 {}

◆ computeAndStorePalyoads()

template<class tokenType , class PayloadType >
void SiPixelGainCalibScaler::computeAndStorePalyoads ( const edm::EventSetup iSetup,
const tokenType &  token 
)
private

Definition at line 191 of file SiPixelGainCalibScaler.cc.

References cond::service::PoolDBOutputService::appendOneIOV(), cond::service::PoolDBOutputService::beginOfTime(), cuy::col, cond::service::PoolDBOutputService::createOneIOV(), cond::service::PoolDBOutputService::currentTime(), ztail::d, TrackerGeometry::dets(), cppFunctionSkipper::exception, dqmMemoryStats::float, PedestalClient_cfi::gain, gainScale::VCalInfo::getConversionFactor(), gainScale::VCalInfo::getConversionFactorL1(), edm::EventSetup::getData(), gainScale::VCalInfo::getOffset(), gainScale::VCalInfo::getOffsetL1(), edm::Service< T >::isAvailable(), cond::service::PoolDBOutputService::isNewTagRequest(), TrackerGeometry::isThere(), phase1PixelTopology::layer, SiStripPI::max, hgcalPlots::ncols, GeomDetEnumerators::P1PXB, GeomDetEnumerators::P1PXEC, jetsAK4_Puppi_cff::payload, phase0VCal, phase1VCal, PixelSubdetector::PixelBarrel, gainScale::VCalInfo::printAllInfo(), TrackerTopology::pxbLayer(), FastTimerService_cff::range, recordName_, DetId::subdetId(), tkGeomToken_, tkTopoToken_, unpackBuffers-CaloStage2::token, verbose_, and cms::Exception::what().

191  {
192  gainScale::VCalInfo myVCalInfo;
193 
194  //=======================================================
195  // Retrieve geometry information
196  //=======================================================
197  const TrackerGeometry* pDD = &iSetup.getData(tkGeomToken_);
198  edm::LogInfo("SiPixelGainCalibScaler") << "There are: " << pDD->dets().size() << " detectors";
199 
200  // switch on the phase1
202  myVCalInfo = phase1VCal;
203  edm::LogInfo("SiPixelGainCalibScaler") << " ==> This is a phase1 IOV";
204  } else {
205  myVCalInfo = phase0VCal;
206  edm::LogInfo("SiPixelGainCalibScaler") << " ==> This is a phase0 IOV";
207  }
208 
209  myVCalInfo.printAllInfo();
210 
211  // if need the ESHandle to check if the SetupData was there or not
212  auto payload = &iSetup.getData(token);
213  std::vector<uint32_t> detids;
214  payload->getDetIds(detids);
215 
216  float mingain = payload->getGainLow();
217  float maxgain = (payload->getGainHigh()) * myVCalInfo.getConversionFactorL1();
218  float minped = payload->getPedLow();
219  float maxped = payload->getPedHigh() * 1.10;
220 
221  PayloadType SiPixelGainCalibration_(minped, maxped, mingain, maxgain);
222 
223  //Retrieve tracker topology from geometry
224  const TrackerTopology* tTopo = &iSetup.getData(tkTopoToken_);
225 
226  // possible to load it not from EventSetup
227  //const char* path_toTopologyXML = "Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml";
228  //TrackerTopology tTopo = StandaloneTrackerTopology::fromTrackerParametersXMLFile(edm::FileInPath(path_toTopologyXML).fullPath());
229 
230  for (const auto& d : detids) {
231  bool isLayer1 = false;
232  int subid = DetId(d).subdetId();
233  if (subid == PixelSubdetector::PixelBarrel) {
234  auto layer = tTopo->pxbLayer(DetId(d));
235  if (layer == 1) {
236  isLayer1 = true;
237  }
238  }
239 
240  std::vector<char> theSiPixelGainCalibration;
241 
242  auto range = payload->getRange(d);
243  int numberOfRowsToAverageOver = payload->getNumberOfRowsToAverageOver();
244  int ncols = payload->getNCols(d);
245  int nRocsInRow = (range.second - range.first) / ncols / numberOfRowsToAverageOver;
246  unsigned int nRowsForHLT = 1;
247  int nrows = std::max((payload->getNumberOfRowsToAverageOver() * nRocsInRow),
248  nRowsForHLT); // dirty trick to make it work for the HLT payload
249 
250  auto rangeAndCol = payload->getRangeAndNCols(d);
251  bool isDeadColumn;
252  bool isNoisyColumn;
253 
254  if (verbose_) {
255  edm::LogVerbatim("SiPixelGainCalibScaler")
256  << "NCOLS: " << payload->getNCols(d) << " " << rangeAndCol.second << " NROWS:" << nrows
257  << ", RANGES: " << rangeAndCol.first.second - rangeAndCol.first.first
258  << ", Ratio: " << float(rangeAndCol.first.second - rangeAndCol.first.first) / rangeAndCol.second << std::endl;
259  }
260 
261  for (int col = 0; col < ncols; col++) {
262  for (int row = 0; row < nrows; row++) {
263  float gain = payload->getGain(col, row, rangeAndCol.first, rangeAndCol.second, isDeadColumn, isNoisyColumn);
264  float ped = payload->getPed(col, row, rangeAndCol.first, rangeAndCol.second, isDeadColumn, isNoisyColumn);
265 
266  if (verbose_)
267  edm::LogInfo("SiPixelGainCalibScaler") << "pre-change gain: " << gain << " pede:" << ped << std::endl;
268 
269  //
270  // From here https://github.com/cms-sw/cmssw/blob/master/CalibTracker/SiPixelESProducers/src/SiPixelGainCalibrationForHLTService.cc#L20-L47
271  //
272  // vcal = ADC * DBgain - DBped * DBgain
273  // electrons = vcal * conversionFactor + offset
274  //
275  // follows:
276  // electrons = (ADC*DBgain – DBped*DBgain)*conversionFactor + offset
277  // electrons = ADC*conversionFactor*DBgain - conversionFactor*DBped*DBgain + offset
278  //
279  // this should equal the new equation:
280  //
281  // electrons = ADC*DBgain' - DBPed' * DBgain'
282  //
283  // So equating piece by piece:
284  //
285  // DBgain' = conversionFactor*DBgain
286  // DBped' = (conversionFactor*DBped*Dbgain – offset)/(conversionFactor*DBgain)
287  // = DBped - offset/DBgain'
288  //
289 
290  if (isLayer1) {
291  gain = gain * myVCalInfo.getConversionFactorL1();
292  ped = ped - myVCalInfo.getOffsetL1() / gain;
293  } else {
294  gain = gain * myVCalInfo.getConversionFactor();
295  ped = ped - myVCalInfo.getOffset() / gain;
296  }
297 
298  if (verbose_)
299  edm::LogInfo("SiPixelGainCalibScaler") << "post-change gain: " << gain << " pede:" << ped << std::endl;
300 
301  if constexpr (std::is_same_v<PayloadType, SiPixelGainCalibrationForHLT>) {
302  SiPixelGainCalibration_.setData(ped, gain, theSiPixelGainCalibration, false, false);
303  } else {
304  SiPixelGainCalibration_.setDataPedestal(ped, theSiPixelGainCalibration);
305  if ((row + 1) % numberOfRowsToAverageOver == 0) { // fill the column average after every ROC!
306  SiPixelGainCalibration_.setDataGain(gain, numberOfRowsToAverageOver, theSiPixelGainCalibration);
307  }
308  }
309  } // loop on rows
310  } // loop on columns
311 
312  typename PayloadType::Range outrange(theSiPixelGainCalibration.begin(), theSiPixelGainCalibration.end());
313  if (!SiPixelGainCalibration_.put(d, outrange, ncols))
314  edm::LogError("SiPixelGainCalibScaler") << "[SiPixelGainCalibScaler::analyze] detid already exists" << std::endl;
315  } // loop on DetIds
316 
317  // Write into DB
318  edm::LogInfo(" --- writing to DB!");
320  if (!mydbservice.isAvailable()) {
321  edm::LogError("db service unavailable");
322  return;
323  } else {
324  edm::LogInfo("DB service OK");
325  }
326 
327  try {
328  if (mydbservice->isNewTagRequest(recordName_)) {
329  mydbservice->createOneIOV<PayloadType>(SiPixelGainCalibration_, mydbservice->beginOfTime(), recordName_);
330  } else {
331  mydbservice->appendOneIOV<PayloadType>(SiPixelGainCalibration_, mydbservice->currentTime(), recordName_);
332  }
333  edm::LogInfo(" --- all OK");
334  } catch (const cond::Exception& er) {
335  edm::LogError("SiPixelGainCalibScaler") << er.what() << std::endl;
336  } catch (const std::exception& er) {
337  edm::LogError("SiPixelGainCalibScaler") << "caught std::exception " << er.what() << std::endl;
338  } catch (...) {
339  edm::LogError("SiPixelGainCalibScaler") << "Funny error" << std::endl;
340  }
341 }
Log< level::Info, true > LogVerbatim
unsigned int pxbLayer(const DetId &id) const
Base exception class for the object to relational access.
Definition: Exception.h:11
PixelRecoRange< float > Range
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Log< level::Error, false > LogError
void createOneIOV(const T &payload, cond::Time_t firstSinceTime, const std::string &recordName)
constexpr std::array< uint8_t, layerIndexSize > layer
void appendOneIOV(const T &payload, cond::Time_t sinceTime, const std::string &recordName)
bool isNewTagRequest(const std::string &recordName)
bool isThere(GeomDetEnumerators::SubDetector subdet) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
bool getData(T &iHolder) const
Definition: EventSetup.h:122
d
Definition: ztail.py:151
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
Log< level::Info, false > LogInfo
gainScale::VCalInfo phase0VCal
Definition: DetId.h:17
gainScale::VCalInfo phase1VCal
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tkTopoToken_
col
Definition: cuy.py:1009
bool isAvailable() const
Definition: Service.h:40
char const * what() const noexcept override
Definition: Exception.cc:103

◆ endJob()

void SiPixelGainCalibScaler::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 347 of file SiPixelGainCalibScaler.cc.

347 {}

◆ fillDescriptions()

void SiPixelGainCalibScaler::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 350 of file SiPixelGainCalibScaler.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, phase0VCal, phase1VCal, AlCaHLTBitMon_QueryRunRegistry::string, and createJobs::tmp.

350  {
352  desc.add<std::string>("record", "SiPixelGainCalibrationForHLTRcd");
353  desc.add<bool>("isForHLT", true);
354 
356  vcalInfos.add<unsigned int>("phase");
357  vcalInfos.add<double>("conversionFactor");
358  vcalInfos.add<double>("conversionFactorL1");
359  vcalInfos.add<double>("offset");
360  vcalInfos.add<double>("offsetL1");
361 
362  std::vector<edm::ParameterSet> tmp;
363  tmp.reserve(2);
364  {
366  phase0VCal.addParameter<unsigned int>("phase", 0);
367  phase0VCal.addParameter<double>("conversionFactor", 65.);
368  phase0VCal.addParameter<double>("conversionFactorL1", 65.);
369  phase0VCal.addParameter<double>("offset", -414.);
370  phase0VCal.addParameter<double>("offsetL1", -414.);
371  tmp.push_back(phase0VCal);
372  }
373  {
375  phase1VCal.addParameter<unsigned int>("phase", 1);
376  phase1VCal.addParameter<double>("conversionFactor", 47.);
377  phase1VCal.addParameter<double>("conversionFactorL1", 50.);
378  phase1VCal.addParameter<double>("offset", -60.);
379  phase1VCal.addParameter<double>("offsetL1", -670.);
380  tmp.push_back(phase1VCal);
381  }
382  desc.addVPSet("parameters", vcalInfos, tmp);
383 
384  desc.addUntracked<bool>("verbose", false);
385 
386  descriptions.add("siPixelGainCalibScaler", desc);
387 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
gainScale::VCalInfo phase0VCal
gainScale::VCalInfo phase1VCal
void add(std::string const &label, ParameterSetDescription const &psetDescription)
tmp
align.sh
Definition: createJobs.py:716

Member Data Documentation

◆ gainHLTCalibToken_

edm::ESGetToken<SiPixelGainCalibrationForHLT, SiPixelGainCalibrationForHLTRcd> SiPixelGainCalibScaler::gainHLTCalibToken_
private

Definition at line 117 of file SiPixelGainCalibScaler.cc.

Referenced by analyze(), and SiPixelGainCalibScaler().

◆ gainOfflineCalibToken_

edm::ESGetToken<SiPixelGainCalibrationOffline, SiPixelGainCalibrationOfflineRcd> SiPixelGainCalibScaler::gainOfflineCalibToken_
private

Definition at line 118 of file SiPixelGainCalibScaler.cc.

Referenced by analyze(), and SiPixelGainCalibScaler().

◆ isForHLT_

const bool SiPixelGainCalibScaler::isForHLT_
private

Definition at line 110 of file SiPixelGainCalibScaler.cc.

Referenced by analyze().

◆ m_parameters

const std::vector<edm::ParameterSet> SiPixelGainCalibScaler::m_parameters
private

Definition at line 112 of file SiPixelGainCalibScaler.cc.

Referenced by SiPixelGainCalibScaler().

◆ phase0VCal

gainScale::VCalInfo SiPixelGainCalibScaler::phase0VCal
private

◆ phase1VCal

gainScale::VCalInfo SiPixelGainCalibScaler::phase1VCal
private

◆ pixelHLTGainWatcher_

edm::ESWatcher<SiPixelGainCalibrationForHLTRcd> SiPixelGainCalibScaler::pixelHLTGainWatcher_
private

Definition at line 122 of file SiPixelGainCalibScaler.cc.

Referenced by analyze().

◆ pixelOfflineGainWatcher_

edm::ESWatcher<SiPixelGainCalibrationOfflineRcd> SiPixelGainCalibScaler::pixelOfflineGainWatcher_
private

Definition at line 123 of file SiPixelGainCalibScaler.cc.

Referenced by analyze().

◆ recordName_

const std::string SiPixelGainCalibScaler::recordName_
private

Definition at line 109 of file SiPixelGainCalibScaler.cc.

Referenced by computeAndStorePalyoads().

◆ tkGeomToken_

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> SiPixelGainCalibScaler::tkGeomToken_
private

Definition at line 119 of file SiPixelGainCalibScaler.cc.

Referenced by computeAndStorePalyoads(), and SiPixelGainCalibScaler().

◆ tkTopoToken_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiPixelGainCalibScaler::tkTopoToken_
private

Definition at line 120 of file SiPixelGainCalibScaler.cc.

Referenced by computeAndStorePalyoads(), and SiPixelGainCalibScaler().

◆ verbose_

const bool SiPixelGainCalibScaler::verbose_
private

Definition at line 111 of file SiPixelGainCalibScaler.cc.

Referenced by computeAndStorePalyoads().