CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
SiPixelGainCalibrationAnalysis Class Reference

#include <CalibTracker/SiPixelGainCalibrationAnalysis/interface/SiPixelGainCalibrationAnalysis.h>

Inheritance diagram for SiPixelGainCalibrationAnalysis:
SiPixelOfflineCalibAnalysisBase edm::one::EDAnalyzer< edm::one::WatchRuns > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

bool checkCorrectCalibrationType () override
 
bool doFits (uint32_t detid, std::vector< SiPixelCalibDigi >::const_iterator ipix) override
 
void doSetup (const edm::ParameterSet &)
 
 SiPixelGainCalibrationAnalysis (const edm::ParameterSet &iConfig)
 
 ~SiPixelGainCalibrationAnalysis () override
 
- Public Member Functions inherited from SiPixelOfflineCalibAnalysisBase
void addTF1ToDQMMonitoringElement (MonitorElement *ele, TF1 *func)
 
MonitorElementbookDQMHistogram1D (uint32_t detid, std::string name, std::string title, int nchX, double lowX, double highX)
 
MonitorElementbookDQMHistogram1D (uint32_t detid, std::string name, std::string title, int nchX, float *xbinsize)
 
MonitorElementbookDQMHistogram2D (uint32_t detid, std::string name, std::string title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
 
MonitorElementbookDQMHistoPlaquetteSummary2D (uint32_t detid, std::string name, std::string title)
 
std::vector< uint32_t > & getRunNumbers ()
 
bool setDQMDirectory (std::string dirName)
 
bool setDQMDirectory (uint32_t detID)
 
 SiPixelOfflineCalibAnalysisBase (const edm::ParameterSet &)
 
 SiPixelOfflineCalibAnalysisBase ()
 
std::string translateDetIdToString (uint32_t detid)
 
 ~SiPixelOfflineCalibAnalysisBase () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns >
 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)
 

Private Member Functions

std::vector< float > CalculateAveragePerColumn (uint32_t detid, std::string label)
 
void calibrationEnd () override
 
void calibrationSetup (const edm::EventSetup &iSetup) override
 
void fillDatabase ()
 
void newDetID (uint32_t detid) override
 
void printSummary ()
 

Private Attributes

bool appendMode_
 
bool bookBIGCalibPayload_
 
std::map< uint32_t, std::map
< std::string, MonitorElement * > > 
bookkeeper_
 
std::map< uint32_t, std::map
< std::string, MonitorElement * > > 
bookkeeper_pixels_
 
double chi2ProbThreshold_
 
double chi2Threshold_
 
edm::ParameterSet conf_
 
uint32_t currentDetID_
 
bool filldb_
 
std::string fitfunction_
 
TF1 * func_
 
float gainhi_
 
float gainlow_
 
TGraphErrors * graph_
 
bool ignoreMode_
 
std::vector< uint32_t > listofdetids_
 
double maxChi2InHist_
 
double maxGainInHist_
 
uint16_t min_nentries_
 
int nfitparameters_
 
float pedhi_
 
float pedlow_
 
double plateau_max_slope_
 
std::string recordName_
 
bool reject_badpoints_
 
double reject_badpoints_frac_
 
bool reject_first_point_
 
bool reject_plateaupoints_
 
bool reject_single_entries_
 
bool saveALLHistograms_
 
bool savePixelHists_
 
double scalarVcalHigh_VcalLow_
 
int * statusNumbers_
 
bool sum_gain_cols_
 
bool sum_ped_cols_
 
std::ofstream summary_
 
bool useVcalHigh_
 
bool writeSummary_
 

Additional Inherited Members

- Public Types inherited from SiPixelOfflineCalibAnalysisBase
typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from SiPixelOfflineCalibAnalysisBase
static const std::vector< short > * getVcalValues ()
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Static Public Attributes inherited from SiPixelOfflineCalibAnalysisBase
static TF1 * fitFunction_ = nullptr
 
- Protected Member Functions inherited from SiPixelOfflineCalibAnalysisBase
uint32_t & EventNumber ()
 
- 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< B > consumes (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 () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
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)
 
- Protected Attributes inherited from SiPixelOfflineCalibAnalysisBase
edm::ESGetToken
< SiPixelFedCablingMap,
SiPixelFedCablingMapRcd
cablingMapToken_
 
edm::ESHandle
< SiPixelCalibConfiguration
calib_
 
std::string calibrationMode_
 
edm::ESGetToken
< SiPixelCalibConfiguration,
SiPixelCalibConfigurationRcd
calibToken_
 
edm::ESGetToken
< SiPixelCalibConfiguration,
SiPixelCalibConfigurationRcd
calibTokenBeginRun_
 
edm::ESHandle< TrackerGeometrygeom_
 
short nTriggers_
 
edm::ESHandle
< SiPixelFedCablingMap
theCablingMap_
 
edm::ESGetToken
< TrackerGeometry,
TrackerDigiGeometryRecord
trackerGeomToken_
 
- Static Protected Attributes inherited from SiPixelOfflineCalibAnalysisBase
static std::vector< short > vCalValues_
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 46 of file SiPixelGainCalibrationAnalysis.h.

Constructor & Destructor Documentation

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

Definition at line 32 of file SiPixelGainCalibrationAnalysis.cc.

References currentDetID_, fitfunction_, func_, graph_, cuy::ii, min_nentries_, nfitparameters_, reject_single_entries_, scalarVcalHigh_VcalLow_, statusNumbers_, and summary_.

34  conf_(iConfig),
35  bookkeeper_(),
37  nfitparameters_(iConfig.getUntrackedParameter<int>("numberOfFitParameters", 2)),
38  fitfunction_(iConfig.getUntrackedParameter<std::string>("fitFunctionRootFormula", "pol1")),
39  listofdetids_(conf_.getUntrackedParameter<std::vector<uint32_t> >("listOfDetIDs")),
40  ignoreMode_(conf_.getUntrackedParameter<bool>("ignoreMode", false)),
41  reject_plateaupoints_(iConfig.getUntrackedParameter<bool>("suppressPlateauInFit", true)),
42  reject_single_entries_(iConfig.getUntrackedParameter<bool>("suppressPointsWithOneEntryOrLess", true)),
43  plateau_max_slope_(iConfig.getUntrackedParameter<double>("plateauSlopeMax", 1.0)),
44  reject_first_point_(iConfig.getUntrackedParameter<bool>("rejectVCalZero", true)),
45  reject_badpoints_frac_(iConfig.getUntrackedParameter<double>("suppressZeroAndPlateausInFitFrac", 0)),
46  bookBIGCalibPayload_(iConfig.getUntrackedParameter<bool>("saveFullPayloads", false)),
47  savePixelHists_(iConfig.getUntrackedParameter<bool>("savePixelLevelHists", false)),
48  chi2Threshold_(iConfig.getUntrackedParameter<double>("minChi2NDFforHistSave", 10)),
49  chi2ProbThreshold_(iConfig.getUntrackedParameter<double>("minChi2ProbforHistSave", 0.05)),
50  maxGainInHist_(iConfig.getUntrackedParameter<double>("maxGainInHist", 10)),
51  maxChi2InHist_(iConfig.getUntrackedParameter<double>("maxChi2InHist", 25)),
52  saveALLHistograms_(iConfig.getUntrackedParameter<bool>("saveAllHistograms", false)),
53 
54  filldb_(iConfig.getUntrackedParameter<bool>("writeDatabase", false)),
55  writeSummary_(iConfig.getUntrackedParameter<bool>("writeSummary", true)),
57 
58  appendMode_(conf_.getUntrackedParameter<bool>("appendMode", true)),
59  /*theGainCalibrationDbInput_(0),
60  theGainCalibrationDbInputOffline_(0),
61  theGainCalibrationDbInputHLT_(0),
62  theGainCalibrationDbInputService_(iConfig),*/
63  gainlow_(10.),
64  gainhi_(0.),
65  pedlow_(255.),
66  pedhi_(0.),
67  useVcalHigh_(conf_.getParameter<bool>("useVCALHIGH")),
68  scalarVcalHigh_VcalLow_(conf_.getParameter<double>("vcalHighToLowConversionFac")) {
70  min_nentries_ = 1;
71  else
72  min_nentries_ = 0;
73  ::putenv((char *)"CORAL_AUTH_USER=me");
74  ::putenv((char *)"CORAL_AUTH_PASSWORD=test");
75  edm::LogInfo("SiPixelGainCalibrationAnalysis") << "now using fit function " << fitfunction_ << ", which has "
76  << nfitparameters_ << " free parameters. " << std::endl;
77  func_ = new TF1("func", fitfunction_.c_str(), 0, 256 * scalarVcalHigh_VcalLow_);
78  graph_ = new TGraphErrors();
79  currentDetID_ = 0;
80  summary_.open("SummaryPerDetID.txt");
81  statusNumbers_ = new int[10];
82  for (int ii = 0; ii < 10; ii++)
83  statusNumbers_[ii] = 0;
84 }
T getUntrackedParameter(std::string const &, T const &) const
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_pixels_
int ii
Definition: cuy.py:589
Log< level::Info, false > LogInfo
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
SiPixelGainCalibrationAnalysis::~SiPixelGainCalibrationAnalysis ( )
override

Definition at line 86 of file SiPixelGainCalibrationAnalysis.cc.

86 {}

Member Function Documentation

std::vector< float > SiPixelGainCalibrationAnalysis::CalculateAveragePerColumn ( uint32_t  detid,
std::string  label 
)
private

Definition at line 91 of file SiPixelGainCalibrationAnalysis.cc.

References bookkeeper_, label, mps_fire::result, and hgcalPerformanceValidation::val.

Referenced by printSummary().

91  {
92  std::vector<float> result;
93  int ncols = bookkeeper_[detid][label]->getNbinsX();
94  int nrows = bookkeeper_[detid][label]->getNbinsY();
95  for (int icol = 1; icol <= ncols; ++icol) {
96  float val = 0;
97  float ntimes = 0;
98  for (int irow = 1; irow <= nrows; ++irow) {
99  val += bookkeeper_[detid][label]->getBinContent(icol, irow);
100  ntimes++;
101  }
102  val /= ntimes;
103  result.push_back(val);
104  }
105  return result;
106 }
tuple result
Definition: mps_fire.py:311
char const * label
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_
void SiPixelGainCalibrationAnalysis::calibrationEnd ( )
overrideprivatevirtual

Reimplemented from SiPixelOfflineCalibAnalysisBase.

Definition at line 165 of file SiPixelGainCalibrationAnalysis.cc.

References fillDatabase(), filldb_, printSummary(), and writeSummary_.

165  {
166  if (writeSummary_)
167  printSummary();
168 
169  // this is where we loop over all histograms and save the database objects
170  if (filldb_)
171  fillDatabase();
172 }
void SiPixelGainCalibrationAnalysis::calibrationSetup ( const edm::EventSetup iSetup)
overrideprivatevirtual

Reimplemented from SiPixelOfflineCalibAnalysisBase.

Definition at line 123 of file SiPixelGainCalibrationAnalysis.cc.

123 {}
bool SiPixelGainCalibrationAnalysis::checkCorrectCalibrationType ( )
overridevirtual

Reimplemented from SiPixelOfflineCalibAnalysisBase.

Definition at line 108 of file SiPixelGainCalibrationAnalysis.cc.

References SiPixelOfflineCalibAnalysisBase::calibrationMode_, and ignoreMode_.

108  {
109  if (calibrationMode_ == "GainCalibration")
110  return true;
111  else if (ignoreMode_ == true)
112  return true;
113  else if (calibrationMode_ == "unknown") {
114  edm::LogInfo("SiPixelGainCalibrationAnalysis")
115  << "calibration mode is: " << calibrationMode_ << ", continuing anyway...";
116  return true;
117  } else {
118  // edm::LogError("SiPixelGainCalibrationAnalysis") << "unknown calibration mode for Gain calibration, should be \"Gain\" and is \"" << calibrationMode_ << "\"";
119  }
120  return false;
121 }
Log< level::Info, false > LogInfo
bool SiPixelGainCalibrationAnalysis::doFits ( uint32_t  detid,
std::vector< SiPixelCalibDigi >::const_iterator  ipix 
)
overridevirtual

Reimplemented from SiPixelOfflineCalibAnalysisBase.

Definition at line 183 of file SiPixelGainCalibrationAnalysis.cc.

References funct::abs(), Abs(), SiPixelOfflineCalibAnalysisBase::bookDQMHistogram1D(), bookkeeper_, bookkeeper_pixels_, HLT_FULL_cff::chi2, chi2ProbThreshold_, chi2Threshold_, currentDetID_, spr::find(), func_, gainhi_, gainlow_, graph_, cuy::ii, CommonMethods::isnan(), listofdetids_, maxGainInHist_, min_nentries_, npoints, pedhi_, pedlow_, funct::pow(), reject_badpoints_, reject_badpoints_frac_, reject_first_point_, reject_plateaupoints_, reject_single_entries_, saveALLHistograms_, savePixelHists_, scalarVcalHigh_VcalLow_, SiPixelOfflineCalibAnalysisBase::setDQMDirectory(), slope, mathSSE::sqrt(), mps_update::status, statusNumbers_, AlCaHLTBitMon_QueryRunRegistry::string, summary_, SiPixelOfflineCalibAnalysisBase::translateDetIdToString(), useVcalHigh_, SiPixelOfflineCalibAnalysisBase::vCalValues_, and writeSummary_.

183  {
184  float lowmeanval = 255;
185  float highmeanval = 0;
186  bool makehistopersistent = saveALLHistograms_;
187  std::vector<uint32_t>::const_iterator detidfinder = find(listofdetids_.begin(), listofdetids_.end(), detid);
188  if (detidfinder != listofdetids_.end())
189  makehistopersistent = true;
190  // first, fill the input arrays to the TLinearFitter.
191  double xvals[257];
192  double yvals[256];
193  double yerrvals[256];
194  double xvalsall[257];
195  double yvalsall[256];
196  double yerrvalsall[256];
197  int npoints = 0;
198  int nallpoints = 0;
199  bool use_point = true;
200  int status = 0;
201  statusNumbers_[9]++;
202 
203  bookkeeper_[detid]["status_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, 0);
204  if (writeSummary_ && detid != currentDetID_) {
205  currentDetID_ = detid;
206  summary_ << endl << "DetId_" << currentDetID_ << endl;
207  }
208 
209  for (uint32_t ii = 0; ii < ipix->getnpoints() && ii < 200; ii++) {
210  // std::cout << ipix->getsum(ii) << " " << ipix->getnentries(ii) << " " << ipix->getsumsquares(ii) << std::endl;
211  nallpoints++;
212  use_point = true;
213  if (useVcalHigh_) {
214  xvalsall[ii] = vCalValues_[ii] * scalarVcalHigh_VcalLow_;
215  } else
216  xvalsall[ii] = vCalValues_[ii];
217  yerrvalsall[ii] = yvalsall[ii] = 0;
218 
219  if (ipix->getnentries(ii) > min_nentries_) {
220  yvalsall[ii] = ipix->getsum(ii) / (float)ipix->getnentries(ii);
221  yerrvalsall[ii] = ipix->getsumsquares(ii) / (float)(ipix->getnentries(ii));
222  yerrvalsall[ii] -= pow(yvalsall[ii], 2);
223  yerrvalsall[ii] = sqrt(yerrvalsall[ii]) / sqrt(ipix->getnentries(ii));
224 
225  if (yvalsall[ii] < lowmeanval)
226  lowmeanval = yvalsall[ii];
227  if (yvalsall[ii] > highmeanval)
228  highmeanval = yvalsall[ii];
229  }
230  }
231 
232  // calculate plateau value from last 4 entries
233  double plateauval = 0;
234  bool noPlateau = false;
235  if (nallpoints >= 4) {
236  for (int ii = nallpoints - 1; ii > nallpoints - 5; --ii)
237  plateauval += yvalsall[ii];
238  plateauval /= 4;
239  for (int ii = nallpoints - 1; ii > nallpoints - 5; --ii) {
240  if (fabs(yvalsall[ii] - plateauval) > 5) {
241  plateauval = 255;
242  noPlateau = true;
243  continue;
244  }
245  }
246 
247  int NbofPointsInPlateau = 0;
248  for (int ii = 0; ii < nallpoints; ++ii)
249  if (fabs(yvalsall[ii] - plateauval) < 10 || yvalsall[ii] == 0)
250  NbofPointsInPlateau++;
251  //summary_<<"row_"<<ipix->row()<<" col_"<<ipix->col()<<" "<<plateauval<<" "<<NbofPointsInPlateau<<" "<<nallpoints<<endl;
252  if (NbofPointsInPlateau >= (nallpoints - 2)) {
253  status = -2;
254  bookkeeper_[detid]["status_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, status);
255  if (writeSummary_) {
256  summary_ << "row_" << ipix->row() << " col_" << ipix->col() << " status_" << status << endl;
257  statusNumbers_[abs(status)]++;
258  }
259  return false;
260  }
261  } else
262  plateauval = 255;
263 
264  double maxgoodvalinfit = plateauval * (1. - reject_badpoints_frac_);
265  npoints = 0;
266  for (int ii = 0; ii < nallpoints; ++ii) {
267  // now selecting the appropriate points for the fit.
268  use_point = true;
269  if (reject_first_point_ && xvalsall[ii] < 0.1)
270  use_point = false;
271  if (ipix->getnentries(ii) <= min_nentries_ && reject_single_entries_)
272  use_point = false;
273  if (ipix->getnentries(ii) == 0 && reject_badpoints_)
274  use_point = false;
275  if (yvalsall[ii] > maxgoodvalinfit && !noPlateau)
276  use_point = false;
277  if (ii > 1 && fabs(yvalsall[ii] - yvalsall[ii - 1]) < 5. && yvalsall[ii] > 0.8 * maxgoodvalinfit &&
279  use_point = false;
280  break;
281  }
282 
283  if (use_point) {
284  xvals[npoints] = xvalsall[ii];
285  yvals[npoints] = yvalsall[ii];
286  yerrvals[npoints] = yerrvalsall[ii];
287  npoints++;
288  }
289  }
290 
291  float chi2, slope, intercept, prob, slopeerror, intercepterror;
292  prob = chi2 = -1;
293  slope = intercept = slopeerror = intercepterror = 0;
294 
295  // now check on number of points. If bad just start taking the first 4:
296 
297  if (npoints < 4) {
298  npoints = 0;
299  for (int ii = 0; ii < nallpoints && npoints < 4 && yvalsall[ii] < plateauval * 0.97; ++ii) {
300  if (yvalsall[ii] > 0) {
301  if (ii > 0 && yvalsall[ii] - yvalsall[ii - 1] < 0.1)
302  continue;
303  xvals[npoints] = xvalsall[ii];
304  yvals[npoints] = yvalsall[ii];
305  yerrvals[npoints] = yerrvalsall[ii];
306  npoints++;
307  }
308  }
309  }
310  if (npoints < 2) {
311  status = -7;
312  bookkeeper_[detid]["status_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, status);
313  if (writeSummary_) {
314  summary_ << "row_" << ipix->row() << " col_" << ipix->col() << " status_" << status << endl;
315  statusNumbers_[abs(status)]++;
316  }
317  std::ostringstream pixelinfo;
318  pixelinfo << "GainCurve_row_" << ipix->row() << "_col_" << ipix->col();
319  std::string tempname = translateDetIdToString(detid);
320  tempname += "_";
321  tempname += pixelinfo.str();
322  setDQMDirectory(detid);
323  bookkeeper_pixels_[detid][pixelinfo.str()] = bookDQMHistogram1D(
324  detid, pixelinfo.str(), tempname, 105 * nallpoints, xvalsall[0], xvalsall[nallpoints - 1] * 1.05);
325  for (int ii = 0; ii < nallpoints; ++ii)
326  bookkeeper_pixels_[detid][pixelinfo.str()]->Fill(xvalsall[ii], yvalsall[ii]);
327  return false;
328  }
329 
330  // std::cout << "starting fit!" << std::endl;
331  graph_->Set(npoints);
332 
333  func_->SetParameter(0, 50.);
334  func_->SetParameter(1, 0.25);
335  for (int ipointtemp = 0; ipointtemp < npoints; ++ipointtemp) {
336  graph_->SetPoint(ipointtemp, xvals[ipointtemp], yvals[ipointtemp]);
337  graph_->SetPointError(ipointtemp, 0, yerrvals[ipointtemp]);
338  }
339  Int_t tempresult = graph_->Fit(func_, "FQ0N");
340  slope = func_->GetParameter(1);
341  slopeerror = func_->GetParError(1);
342  intercept = func_->GetParameter(0);
343  intercepterror = func_->GetParError(0);
344  chi2 = func_->GetChisquare() / ((float)npoints - func_->GetNpar());
345  prob = TMath::Prob(func_->GetChisquare(), npoints - func_->GetNpar());
346  size_t ntimes = 0;
347  while ((isnan(slope) || isnan(intercept)) && ntimes < 10) {
348  ntimes++;
349  makehistopersistent = true;
350  // std::cout << slope << " " << intercept << " " << prob << std::endl;
351  edm::LogWarning("SiPixelGainCalibrationAnalysis") << "impossible to fit values, try " << ntimes << ": ";
352  for (int ii = 0; ii < npoints; ++ii) {
353  edm::LogWarning("SiPixelGainCalibrationAnalysis")
354  << "vcal " << xvals[ii] << " response: " << yvals[ii] << "+/-" << yerrvals[ii] << std::endl;
355  }
356  tempresult = graph_->Fit(func_, "FQ0NW");
357  slope = func_->GetParameter(1);
358  slopeerror = func_->GetParError(1);
359  intercept = func_->GetParameter(0);
360  intercepterror = func_->GetParError(0);
361  chi2 = func_->GetChisquare() / ((float)npoints - func_->GetNpar());
362  prob = TMath::Prob(func_->GetChisquare(), npoints - func_->GetNpar());
363  }
364 
365  if (tempresult == 0)
366  status = 1;
367  else
368  status = 0;
369  if (slope != 0)
370  slope = 1. / slope;
371  if (isnan(slope) || isnan(intercept)) {
372  status = -6;
373  bookkeeper_[detid]["status_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, status);
374  if (writeSummary_) {
375  summary_ << "row_" << ipix->row() << " col_" << ipix->col() << " status_" << status << endl;
376  statusNumbers_[abs(status)]++;
377  }
378  //return false;
379  }
380  if (chi2 > chi2Threshold_ && chi2Threshold_ >= 0)
381  status = 5;
382  if (prob < chi2ProbThreshold_)
383  status = 5;
384  if (noPlateau)
385  status = 3;
386  if (nallpoints < 4)
387  status = -7;
388  if (TMath::Abs(slope > maxGainInHist_) || slope < 0)
389  status = -8;
390  if (status != 1)
391  makehistopersistent = true;
392  statusNumbers_[abs(status)]++;
393 
394  if (slope < gainlow_)
395  gainlow_ = slope;
396  if (slope > gainhi_)
397  gainhi_ = slope;
398  if (intercept > pedhi_)
399  pedhi_ = intercept;
400  if (intercept < pedlow_)
401  pedlow_ = intercept;
402  bookkeeper_[detid]["gain_1d"]->Fill(slope);
403  if (slope > maxGainInHist_) {
404  makehistopersistent = true;
405  edm::LogWarning("SiPixelGainCalibration")
406  << "For DETID " << detid << "pixel row,col " << ipix->row() << "," << ipix->col() << " Gain was measured to be "
407  << slope << " which is outside the range of the summary plot (" << maxGainInHist_ << ") !!!! " << std::endl;
408  }
409  bookkeeper_[detid]["dynamicrange_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, highmeanval - lowmeanval);
410  bookkeeper_[detid]["plateau_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, highmeanval);
411  bookkeeper_[detid]["gain_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, slope);
412  bookkeeper_[detid]["errorgain_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, slopeerror);
413  bookkeeper_[detid]["ped_1d"]->Fill(intercept);
414  bookkeeper_[detid]["ped_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, intercept);
415  bookkeeper_[detid]["errorped_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, intercepterror);
416  bookkeeper_[detid]["chi2_1d"]->Fill(chi2);
417  bookkeeper_[detid]["chi2_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, chi2);
418  bookkeeper_[detid]["prob_1d"]->Fill(prob);
419  bookkeeper_[detid]["prob_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, prob);
420  bookkeeper_[detid]["lowpoint_1d"]->Fill(xvals[0]);
421  bookkeeper_[detid]["lowpoint_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, xvals[0]);
422  bookkeeper_[detid]["highpoint_1d"]->Fill(xvals[npoints - 1]);
423  bookkeeper_[detid]["highpoint_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, xvals[npoints - 1]);
424  bookkeeper_[detid]["nfitpoints_1d"]->Fill(npoints);
425  bookkeeper_[detid]["endpoint_1d"]->Fill((255 - intercept) * slope);
426  bookkeeper_[detid]["status_2d"]->setBinContent(ipix->col() + 1, ipix->row() + 1, status);
427 
428  if (!savePixelHists_)
429  return true;
430  if (detidfinder == listofdetids_.end() && !listofdetids_.empty())
431  return true;
432  if (makehistopersistent) {
433  std::ostringstream pixelinfo;
434  pixelinfo << "GainCurve_row_" << ipix->row() << "_col_" << ipix->col();
435  std::string tempname = translateDetIdToString(detid);
436  tempname += "_";
437  tempname += pixelinfo.str();
438 
439  // and book the histo
440  // fill the last value of the vcal array...
441 
442  setDQMDirectory(detid);
443  bookkeeper_pixels_[detid][pixelinfo.str()] = bookDQMHistogram1D(
444  detid, pixelinfo.str(), tempname, 105 * nallpoints, xvalsall[0], xvalsall[nallpoints - 1] * 1.05);
445 
446  edm::LogInfo("SiPixelGainCalibrationAnalysis")
447  << "now saving histogram for pixel " << tempname << ", gain = " << slope << ", pedestal = " << intercept
448  << ", chi2/NDF=" << chi2 << "(prob:" << prob << "), fit status " << status;
449  for (int ii = 0; ii < nallpoints; ++ii) {
450  // std::cout << xvalsall[ii]<<","<<yvalsall[ii]<< " " << tempfloats[ii] << std::endl;
451  bookkeeper_pixels_[detid][pixelinfo.str()]->Fill(xvalsall[ii], yvalsall[ii]);
452  }
453 
454  // addTF1ToDQMMonitoringElement(bookkeeper_pixels_[detid][pixelinfo.str()],func_);
455 
456  if (writeSummary_) {
457  summary_ << "row_" << ipix->row() << " col_" << ipix->col();
458  summary_ << " status_" << status;
459  summary_ << endl;
460 
461  //std::cout<<detid<<" "<<"row " <<ipix->row()<<" col "<<ipix->col()<<" "<<status<<" "<<chi2<<" "<<prob<<" "<<npoints<<" "<<xvals[0]<<" "<<xvals[npoints-1]<<" "<<plateauval<<std::endl;
462  }
463  }
464  return true;
465 }
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_pixels_
static const double slope[3]
list status
Definition: mps_update.py:107
std::string translateDetIdToString(uint32_t detid)
int ii
Definition: cuy.py:589
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
MonitorElement * bookDQMHistogram1D(uint32_t detid, std::string name, std::string title, int nchX, double lowX, double highX)
T sqrt(T t)
Definition: SSEVec.h:19
T Abs(T a)
Definition: MathUtil.h:49
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static const int npoints
Log< level::Info, false > LogInfo
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_
Log< level::Warning, false > LogWarning
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
void SiPixelGainCalibrationAnalysis::doSetup ( const edm::ParameterSet )
void SiPixelGainCalibrationAnalysis::fillDatabase ( )
private

Definition at line 174 of file SiPixelGainCalibrationAnalysis.cc.

Referenced by calibrationEnd().

174  {
175  // only create when necessary.
176  // process the minimum and maximum gain & ped values...
177  edm::LogError("SiPixelGainCalibration::fillDatabase()")
178  << "PLEASE do not fill the database directly from the gain calibration analyzer. This function is currently "
179  "disabled and no DB payloads will be produced!"
180  << std::endl;
181 }
Log< level::Error, false > LogError
void SiPixelGainCalibrationAnalysis::newDetID ( uint32_t  detid)
overrideprivatevirtual

Reimplemented from SiPixelOfflineCalibAnalysisBase.

Definition at line 467 of file SiPixelGainCalibrationAnalysis.cc.

References SiPixelOfflineCalibAnalysisBase::bookDQMHistogram1D(), SiPixelOfflineCalibAnalysisBase::bookDQMHistoPlaquetteSummary2D(), bookkeeper_, maxChi2InHist_, maxGainInHist_, scalarVcalHigh_VcalLow_, SiPixelOfflineCalibAnalysisBase::setDQMDirectory(), AlCaHLTBitMon_QueryRunRegistry::string, and SiPixelOfflineCalibAnalysisBase::translateDetIdToString().

467  {
468  setDQMDirectory(detid);
469  std::string tempname = translateDetIdToString(detid);
470  bookkeeper_[detid]["gain_1d"] = bookDQMHistogram1D(detid, "Gain1d", "gain for " + tempname, 100, 0., maxGainInHist_);
471  bookkeeper_[detid]["gain_2d"] = bookDQMHistoPlaquetteSummary2D(detid, "Gain2d", "gain for " + tempname);
472  bookkeeper_[detid]["errorgain_2d"] =
473  bookDQMHistoPlaquetteSummary2D(detid, "ErrorGain2d", "error on gain for " + tempname);
474  bookkeeper_[detid]["ped_1d"] = bookDQMHistogram1D(detid, "Pedestal1d", "pedestal for " + tempname, 256, 0., 256.0);
475  bookkeeper_[detid]["ped_2d"] = bookDQMHistoPlaquetteSummary2D(detid, "Pedestal2d", "pedestal for " + tempname);
476  bookkeeper_[detid]["errorped_2d"] =
477  bookDQMHistoPlaquetteSummary2D(detid, "ErrorPedestal2d", "error on pedestal for " + tempname);
478  bookkeeper_[detid]["chi2_1d"] =
479  bookDQMHistogram1D(detid, "GainChi2NDF1d", "#chi^{2}/NDOF for " + tempname, 100, 0., maxChi2InHist_);
480  bookkeeper_[detid]["chi2_2d"] =
481  bookDQMHistoPlaquetteSummary2D(detid, "GainChi2NDF2d", "#chi^{2}/NDOF for " + tempname);
482  bookkeeper_[detid]["prob_1d"] =
483  bookDQMHistogram1D(detid, "GainChi2Prob1d", "P(#chi^{2},NDOF) for " + tempname, 100, 0., 1.0);
484  bookkeeper_[detid]["prob_2d"] =
485  bookDQMHistoPlaquetteSummary2D(detid, "GainChi2Prob2d", "P(#chi^{2},NDOF) for " + tempname);
486  bookkeeper_[detid]["status_2d"] =
487  bookDQMHistoPlaquetteSummary2D(detid, "GainFitResult2d", "Fit result for " + tempname);
488  bookkeeper_[detid]["endpoint_1d"] = bookDQMHistogram1D(
489  detid, "GainEndPoint1d", "point where fit meets ADC=255 for " + tempname, 256, 0., 256. * scalarVcalHigh_VcalLow_);
490  bookkeeper_[detid]["lowpoint_1d"] = bookDQMHistogram1D(
491  detid, "GainLowPoint1d", "lowest fit point for " + tempname, 256, 0., 256. * scalarVcalHigh_VcalLow_);
492  bookkeeper_[detid]["highpoint_1d"] = bookDQMHistogram1D(
493  detid, "GainHighPoint1d", "highest fit point for " + tempname, 256, 0., 256. * scalarVcalHigh_VcalLow_);
494  bookkeeper_[detid]["nfitpoints_1d"] =
495  bookDQMHistogram1D(detid, "GainNPoints1d", "number of fit point for " + tempname, 20, 0., 20);
496  bookkeeper_[detid]["dynamicrange_2d"] = bookDQMHistoPlaquetteSummary2D(
497  detid, "GainDynamicRange2d", "Difference lowest and highest points on gain curve for " + tempname);
498  bookkeeper_[detid]["lowpoint_2d"] =
499  bookDQMHistoPlaquetteSummary2D(detid, "GainLowPoint2d", "lowest fit point for " + tempname);
500  bookkeeper_[detid]["highpoint_2d"] =
501  bookDQMHistoPlaquetteSummary2D(detid, "GainHighPoint2d", "highest fit point for " + tempname);
502  bookkeeper_[detid]["plateau_2d"] =
503  bookDQMHistoPlaquetteSummary2D(detid, "GainSaturate2d", "Highest points on gain curve for " + tempname);
504 }
std::string translateDetIdToString(uint32_t detid)
MonitorElement * bookDQMHistogram1D(uint32_t detid, std::string name, std::string title, int nchX, double lowX, double highX)
MonitorElement * bookDQMHistoPlaquetteSummary2D(uint32_t detid, std::string name, std::string title)
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_
void SiPixelGainCalibrationAnalysis::printSummary ( )
private

Definition at line 125 of file SiPixelGainCalibrationAnalysis.cc.

References SplitLinear::begin, bookkeeper_, bookkeeper_pixels_, CalculateAveragePerColumn(), chi2Threshold_, mps_fire::i, cuy::ii, statusNumbers_, summary_, and SiPixelOfflineCalibAnalysisBase::translateDetIdToString().

Referenced by calibrationEnd().

125  {
126  uint32_t detid = 0;
127  for (std::map<uint32_t, std::map<std::string, MonitorElement *> >::const_iterator idet = bookkeeper_.begin();
128  idet != bookkeeper_.end();
129  ++idet) {
130  if (detid == idet->first)
131  continue; // only do things once per detid
132  detid = idet->first;
133  std::vector<float> gainvec = CalculateAveragePerColumn(detid, "gain_2d");
134  std::vector<float> pedvec = CalculateAveragePerColumn(detid, "ped_2d");
135  std::vector<float> chi2vec = CalculateAveragePerColumn(detid, "chi2_2d");
136  std::ostringstream summarytext;
137 
138  summarytext << "Summary for det ID " << detid << "(" << translateDetIdToString(detid) << ")\n";
139  summarytext << "\t Following: values per column: column #, gain, pedestal, chi2\n";
140  for (uint32_t i = 0; i < gainvec.size(); i++)
141  summarytext << "\t " << i << " \t" << gainvec[i] << " \t" << pedvec[i] << " \t" << chi2vec[i] << "\n";
142  summarytext << "\t list of pixels with high chi2 (chi2> " << chi2Threshold_ << "): \n";
143 
144  for (std::map<std::string, MonitorElement *>::const_iterator ipix = bookkeeper_pixels_[detid].begin();
145  ipix != bookkeeper_pixels_[detid].end();
146  ++ipix)
147  summarytext << "\t " << ipix->first << "\n";
148  edm::LogInfo("SiPixelGainCalibrationAnalysis") << summarytext.str() << std::endl;
149  }
150  if (summary_.is_open()) {
151  summary_.close();
152  summary_.open("Summary.txt");
153  summary_ << "Total Number of Pixel computed :" << statusNumbers_[9] << endl;
154  summary_ << "Number of pixel tagged with status :" << endl;
155  for (int ii = 0; ii < 9; ii++)
156  summary_ << ii << " -> " << statusNumbers_[ii] << " ~ "
157  << double(statusNumbers_[ii]) / double(statusNumbers_[9]) * 100. << " %" << endl;
158 
159  summary_.close();
160  }
161 }
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_pixels_
std::string translateDetIdToString(uint32_t detid)
int ii
Definition: cuy.py:589
std::map< uint32_t, std::map< std::string, MonitorElement * > > bookkeeper_
std::vector< float > CalculateAveragePerColumn(uint32_t detid, std::string label)

Member Data Documentation

bool SiPixelGainCalibrationAnalysis::appendMode_
private

Definition at line 100 of file SiPixelGainCalibrationAnalysis.h.

bool SiPixelGainCalibrationAnalysis::bookBIGCalibPayload_
private

Definition at line 86 of file SiPixelGainCalibrationAnalysis.h.

std::map<uint32_t, std::map<std::string, MonitorElement *> > SiPixelGainCalibrationAnalysis::bookkeeper_
private
std::map<uint32_t, std::map<std::string, MonitorElement *> > SiPixelGainCalibrationAnalysis::bookkeeper_pixels_
private

Definition at line 68 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and printSummary().

double SiPixelGainCalibrationAnalysis::chi2ProbThreshold_
private

Definition at line 89 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

double SiPixelGainCalibrationAnalysis::chi2Threshold_
private

Definition at line 88 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and printSummary().

edm::ParameterSet SiPixelGainCalibrationAnalysis::conf_
private

Definition at line 65 of file SiPixelGainCalibrationAnalysis.h.

uint32_t SiPixelGainCalibrationAnalysis::currentDetID_
private

Definition at line 117 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and SiPixelGainCalibrationAnalysis().

bool SiPixelGainCalibrationAnalysis::filldb_
private

Definition at line 95 of file SiPixelGainCalibrationAnalysis.h.

Referenced by calibrationEnd().

std::string SiPixelGainCalibrationAnalysis::fitfunction_
private

Definition at line 72 of file SiPixelGainCalibrationAnalysis.h.

Referenced by SiPixelGainCalibrationAnalysis().

TF1* SiPixelGainCalibrationAnalysis::func_
private

Definition at line 73 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and SiPixelGainCalibrationAnalysis().

float SiPixelGainCalibrationAnalysis::gainhi_
private

Definition at line 108 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

float SiPixelGainCalibrationAnalysis::gainlow_
private

Definition at line 107 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

TGraphErrors* SiPixelGainCalibrationAnalysis::graph_
private

Definition at line 74 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and SiPixelGainCalibrationAnalysis().

bool SiPixelGainCalibrationAnalysis::ignoreMode_
private

Definition at line 77 of file SiPixelGainCalibrationAnalysis.h.

Referenced by checkCorrectCalibrationType().

std::vector<uint32_t> SiPixelGainCalibrationAnalysis::listofdetids_
private

Definition at line 76 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

double SiPixelGainCalibrationAnalysis::maxChi2InHist_
private

Definition at line 91 of file SiPixelGainCalibrationAnalysis.h.

Referenced by newDetID().

double SiPixelGainCalibrationAnalysis::maxGainInHist_
private

Definition at line 90 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and newDetID().

uint16_t SiPixelGainCalibrationAnalysis::min_nentries_
private

Definition at line 111 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and SiPixelGainCalibrationAnalysis().

int SiPixelGainCalibrationAnalysis::nfitparameters_
private

Definition at line 71 of file SiPixelGainCalibrationAnalysis.h.

Referenced by SiPixelGainCalibrationAnalysis().

float SiPixelGainCalibrationAnalysis::pedhi_
private

Definition at line 110 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

float SiPixelGainCalibrationAnalysis::pedlow_
private

Definition at line 109 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

double SiPixelGainCalibrationAnalysis::plateau_max_slope_
private

Definition at line 83 of file SiPixelGainCalibrationAnalysis.h.

std::string SiPixelGainCalibrationAnalysis::recordName_
private

Definition at line 99 of file SiPixelGainCalibrationAnalysis.h.

bool SiPixelGainCalibrationAnalysis::reject_badpoints_
private

Definition at line 80 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

double SiPixelGainCalibrationAnalysis::reject_badpoints_frac_
private

Definition at line 85 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

bool SiPixelGainCalibrationAnalysis::reject_first_point_
private

Definition at line 84 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

bool SiPixelGainCalibrationAnalysis::reject_plateaupoints_
private

Definition at line 81 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

bool SiPixelGainCalibrationAnalysis::reject_single_entries_
private

Definition at line 82 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits(), and SiPixelGainCalibrationAnalysis().

bool SiPixelGainCalibrationAnalysis::saveALLHistograms_
private

Definition at line 92 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

bool SiPixelGainCalibrationAnalysis::savePixelHists_
private

Definition at line 87 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

double SiPixelGainCalibrationAnalysis::scalarVcalHigh_VcalLow_
private
int* SiPixelGainCalibrationAnalysis::statusNumbers_
private
bool SiPixelGainCalibrationAnalysis::sum_gain_cols_
private

Definition at line 94 of file SiPixelGainCalibrationAnalysis.h.

bool SiPixelGainCalibrationAnalysis::sum_ped_cols_
private

Definition at line 93 of file SiPixelGainCalibrationAnalysis.h.

std::ofstream SiPixelGainCalibrationAnalysis::summary_
private
bool SiPixelGainCalibrationAnalysis::useVcalHigh_
private

Definition at line 112 of file SiPixelGainCalibrationAnalysis.h.

Referenced by doFits().

bool SiPixelGainCalibrationAnalysis::writeSummary_
private

Definition at line 96 of file SiPixelGainCalibrationAnalysis.h.

Referenced by calibrationEnd(), and doFits().