CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Public Attributes | Static Public Attributes
SiPixelDigitizerAlgorithm::PixelEfficiencies Struct Reference

Public Types

enum  shiftEnumerator { FPixRocIdShift = 3, BPixRocIdShift = 6 }
 

Public Member Functions

void init_from_db (const edm::ESHandle< TrackerGeometry > &, const edm::ESHandle< SiPixelDynamicInefficiency > &)
 
bool matches (const DetId &, const DetId &, const std::vector< uint32_t > &)
 
 PixelEfficiencies (const edm::ParameterSet &conf, bool AddPixelInefficiency, int NumberOfBarrelLayers, int NumberOfEndcapDisks)
 

Public Attributes

std::map< uint32_t, double > ChipGeomFactors
 
std::map< uint32_t, double > ColGeomFactors
 
unsigned int FPixIndex
 
bool FromConfig
 
std::map< uint32_t, size_t > iPU
 
std::unique_ptr< PixelFEDChannelCollectionPixelFEDChannelCollection_
 
std::map< uint32_t, double > PixelGeomFactors
 
std::map< uint32_t, std::vector< double > > PixelGeomFactorsROCBigPixels
 
std::map< uint32_t, std::vector< double > > PixelGeomFactorsROCStdPixels
 
std::vector< double > pu_scale
 
double theInnerEfficiency_FPix [20]
 
double theInstLumiScaleFactor
 
std::vector< double > theLadderEfficiency_BPix [20]
 
std::vector< double > theModuleEfficiency_BPix [20]
 
double theOuterEfficiency_FPix [20]
 
double thePixelChipEfficiency [20]
 
double thePixelColEfficiency [20]
 
double thePixelEfficiency [20]
 
std::vector< std::vector< double > > thePUEfficiency
 

Static Public Attributes

static const int rocIdMaskBits = 0x1F
 

Detailed Description

Internal use only.

Definition at line 254 of file SiPixelDigitizerAlgorithm.h.

Member Enumeration Documentation

Constructor & Destructor Documentation

SiPixelDigitizerAlgorithm::PixelEfficiencies::PixelEfficiencies ( const edm::ParameterSet conf,
bool  AddPixelInefficiency,
int  NumberOfBarrelLayers,
int  NumberOfEndcapDisks 
)

Definition at line 442 of file SiPixelDigitizerAlgorithm.cc.

References relativeConstraints::empty, Exception, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), mps_fire::i, SiPixelDigitizerAlgorithm::NumberOfBarrelLayers, SiPixelDigitizerAlgorithm::NumberOfEndcapDisks, and findQualityFiles::size.

442  {
443  // pixel inefficiency
444  // Don't use Hard coded values, read inefficiencies in from DB/python config or don't use any
445  int NumberOfTotLayers = NumberOfBarrelLayers + NumberOfEndcapDisks;
448  FromConfig =
449  conf.exists("thePixelColEfficiency_BPix1") && conf.exists("thePixelColEfficiency_BPix2") && conf.exists("thePixelColEfficiency_BPix3") &&
450  conf.exists("thePixelColEfficiency_FPix1") && conf.exists("thePixelColEfficiency_FPix2") &&
451  conf.exists("thePixelEfficiency_BPix1") && conf.exists("thePixelEfficiency_BPix2") && conf.exists("thePixelEfficiency_BPix3") &&
452  conf.exists("thePixelEfficiency_FPix1") && conf.exists("thePixelEfficiency_FPix2") &&
453  conf.exists("thePixelChipEfficiency_BPix1") && conf.exists("thePixelChipEfficiency_BPix2") && conf.exists("thePixelChipEfficiency_BPix3") &&
454  conf.exists("thePixelChipEfficiency_FPix1") && conf.exists("thePixelChipEfficiency_FPix2");
455  if (NumberOfBarrelLayers==3) FromConfig = FromConfig && conf.exists("theLadderEfficiency_BPix1") && conf.exists("theLadderEfficiency_BPix2") && conf.exists("theLadderEfficiency_BPix3") &&
456  conf.exists("theModuleEfficiency_BPix1") && conf.exists("theModuleEfficiency_BPix2") && conf.exists("theModuleEfficiency_BPix3") &&
457  conf.exists("thePUEfficiency_BPix1") && conf.exists("thePUEfficiency_BPix2") && conf.exists("thePUEfficiency_BPix3") &&
458  conf.exists("theInnerEfficiency_FPix1") && conf.exists("theInnerEfficiency_FPix2") &&
459  conf.exists("theOuterEfficiency_FPix1") && conf.exists("theOuterEfficiency_FPix2") &&
460  conf.exists("thePUEfficiency_FPix_Inner") && conf.exists("thePUEfficiency_FPix_Outer") &&
461  conf.exists("theInstLumiScaleFactor");
462  if (NumberOfBarrelLayers>=4) FromConfig = FromConfig && conf.exists("thePixelColEfficiency_BPix4") &&
463  conf.exists("thePixelEfficiency_BPix4") && conf.exists("thePixelChipEfficiency_BPix4");
464  if (NumberOfEndcapDisks>=3) FromConfig = FromConfig && conf.exists("thePixelColEfficiency_FPix4") &&
465  conf.exists("thePixelEfficiency_FPix3") && conf.exists("thePixelChipEfficiency_FPix3");
466  if (FromConfig) {
467  LogInfo ("PixelDigitizer ") <<"The PixelDigitizer inefficiency configuration is read from the config file.\n";
468  theInstLumiScaleFactor = conf.getParameter<double>("theInstLumiScaleFactor");
469  int i=0;
470  thePixelColEfficiency[i++] = conf.getParameter<double>("thePixelColEfficiency_BPix1");
471  thePixelColEfficiency[i++] = conf.getParameter<double>("thePixelColEfficiency_BPix2");
472  thePixelColEfficiency[i++] = conf.getParameter<double>("thePixelColEfficiency_BPix3");
473  if (NumberOfBarrelLayers>=4){thePixelColEfficiency[i++] = conf.getParameter<double>("thePixelColEfficiency_BPix4");}
474  //
475  i=0;
476  thePixelEfficiency[i++] = conf.getParameter<double>("thePixelEfficiency_BPix1");
477  thePixelEfficiency[i++] = conf.getParameter<double>("thePixelEfficiency_BPix2");
478  thePixelEfficiency[i++] = conf.getParameter<double>("thePixelEfficiency_BPix3");
479  if (NumberOfBarrelLayers>=4){thePixelEfficiency[i++] = conf.getParameter<double>("thePixelEfficiency_BPix4");}
480  //
481  i=0;
482  thePixelChipEfficiency[i++] = conf.getParameter<double>("thePixelChipEfficiency_BPix1");
483  thePixelChipEfficiency[i++] = conf.getParameter<double>("thePixelChipEfficiency_BPix2");
484  thePixelChipEfficiency[i++] = conf.getParameter<double>("thePixelChipEfficiency_BPix3");
485  if (NumberOfBarrelLayers>=4){thePixelChipEfficiency[i++] = conf.getParameter<double>("thePixelChipEfficiency_BPix4");}
486  //
487  if (NumberOfBarrelLayers==3){
488  i=0;
489  theLadderEfficiency_BPix[i++] = conf.getParameter<std::vector<double> >("theLadderEfficiency_BPix1");
490  theLadderEfficiency_BPix[i++] = conf.getParameter<std::vector<double> >("theLadderEfficiency_BPix2");
491  theLadderEfficiency_BPix[i++] = conf.getParameter<std::vector<double> >("theLadderEfficiency_BPix3");
492  if ( ((theLadderEfficiency_BPix[0].size()!=20) || (theLadderEfficiency_BPix[1].size()!=32) ||
493  (theLadderEfficiency_BPix[2].size()!=44)) && (NumberOfBarrelLayers==3) )
494  throw cms::Exception("Configuration") << "Wrong ladder number in efficiency config!";
495  //
496  i=0;
497  theModuleEfficiency_BPix[i++] = conf.getParameter<std::vector<double> >("theModuleEfficiency_BPix1");
498  theModuleEfficiency_BPix[i++] = conf.getParameter<std::vector<double> >("theModuleEfficiency_BPix2");
499  theModuleEfficiency_BPix[i++] = conf.getParameter<std::vector<double> >("theModuleEfficiency_BPix3");
500  if ( ((theModuleEfficiency_BPix[0].size()!=4) || (theModuleEfficiency_BPix[1].size()!=4) ||
501  (theModuleEfficiency_BPix[2].size()!=4)) && (NumberOfBarrelLayers==3) )
502  throw cms::Exception("Configuration") << "Wrong module number in efficiency config!";
503  //
504  thePUEfficiency.push_back(conf.getParameter<std::vector<double> >("thePUEfficiency_BPix1"));
505  thePUEfficiency.push_back(conf.getParameter<std::vector<double> >("thePUEfficiency_BPix2"));
506  thePUEfficiency.push_back(conf.getParameter<std::vector<double> >("thePUEfficiency_BPix3"));
507  if ( ((thePUEfficiency[0].empty()) || (thePUEfficiency[1].empty()) ||
508  (thePUEfficiency[2].empty())) && (NumberOfBarrelLayers==3) )
509  throw cms::Exception("Configuration") << "At least one PU efficiency (BPix) number is needed in efficiency config!";
510  }
511  // The next is needed for Phase2 Tracker studies
512  if (NumberOfBarrelLayers>=5){
513  if (NumberOfTotLayers>20){throw cms::Exception("Configuration") <<"SiPixelDigitizer was given more layers than it can handle";}
514  // For Phase2 tracker layers just set the outermost BPix inefficiency to 99.9% THESE VALUES ARE HARDCODED ALSO ELSEWHERE IN THIS FILE
515  for (int j=5 ; j<=NumberOfBarrelLayers ; j++){
516  thePixelColEfficiency[j-1]=0.999;
517  thePixelEfficiency[j-1]=0.999;
518  thePixelChipEfficiency[j-1]=0.999;
519  }
520  }
521  //
522  i=FPixIndex;
523  thePixelColEfficiency[i++] = conf.getParameter<double>("thePixelColEfficiency_FPix1");
524  thePixelColEfficiency[i++] = conf.getParameter<double>("thePixelColEfficiency_FPix2");
525  if (NumberOfEndcapDisks>=3){thePixelColEfficiency[i++] = conf.getParameter<double>("thePixelColEfficiency_FPix3");}
526  i=FPixIndex;
527  thePixelEfficiency[i++] = conf.getParameter<double>("thePixelEfficiency_FPix1");
528  thePixelEfficiency[i++] = conf.getParameter<double>("thePixelEfficiency_FPix2");
529  if (NumberOfEndcapDisks>=3){thePixelEfficiency[i++] = conf.getParameter<double>("thePixelEfficiency_FPix3");}
530  i=FPixIndex;
531  thePixelChipEfficiency[i++] = conf.getParameter<double>("thePixelChipEfficiency_FPix1");
532  thePixelChipEfficiency[i++] = conf.getParameter<double>("thePixelChipEfficiency_FPix2");
533  if (NumberOfEndcapDisks>=3){thePixelChipEfficiency[i++] = conf.getParameter<double>("thePixelChipEfficiency_FPix3");}
534  // The next is needed for Phase2 Tracker studies
535  if (NumberOfEndcapDisks>=4){
536  if (NumberOfTotLayers>20){throw cms::Exception("Configuration") <<"SiPixelDigitizer was given more layers than it can handle";}
537  // For Phase2 tracker layers just set the extra FPix disk inefficiency to 99.9% THESE VALUES ARE HARDCODED ALSO ELSEWHERE IN THIS FILE
538  for (int j=4+FPixIndex ; j<=NumberOfEndcapDisks+NumberOfBarrelLayers ; j++){
539  thePixelColEfficiency[j-1]=0.999;
540  thePixelEfficiency[j-1]=0.999;
541  thePixelChipEfficiency[j-1]=0.999;
542  }
543  }
544  //FPix Dynamic Inefficiency
545  if (NumberOfBarrelLayers==3){
546  i=FPixIndex;
547  theInnerEfficiency_FPix[i++] = conf.getParameter<double>("theInnerEfficiency_FPix1");
548  theInnerEfficiency_FPix[i++] = conf.getParameter<double>("theInnerEfficiency_FPix2");
549  i=FPixIndex;
550  theOuterEfficiency_FPix[i++] = conf.getParameter<double>("theOuterEfficiency_FPix1");
551  theOuterEfficiency_FPix[i++] = conf.getParameter<double>("theOuterEfficiency_FPix2");
552  thePUEfficiency.push_back(conf.getParameter<std::vector<double> >("thePUEfficiency_FPix_Inner"));
553  thePUEfficiency.push_back(conf.getParameter<std::vector<double> >("thePUEfficiency_FPix_Outer"));
554  if ( ((thePUEfficiency[3].empty()) || (thePUEfficiency[4].empty())) && (NumberOfEndcapDisks==2) )
555  throw cms::Exception("Configuration") << "At least one (FPix) PU efficiency number is needed in efficiency config!";
556  pu_scale.resize(thePUEfficiency.size());
557  }
558  }
559  else LogInfo ("PixelDigitizer ") <<"The PixelDigitizer inefficiency configuration is read from the database.\n";
560  }
561  // the first "NumberOfBarrelLayers" settings [0],[1], ... , [NumberOfBarrelLayers-1] are for the barrel pixels
562  // the next "NumberOfEndcapDisks" settings [NumberOfBarrelLayers],[NumberOfBarrelLayers+1], ... [NumberOfEndcapDisks+NumberOfBarrelLayers-1]
563 }
size
Write out results.
T getParameter(std::string const &) const
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::vector< std::vector< double > > thePUEfficiency

Member Function Documentation

void SiPixelDigitizerAlgorithm::PixelEfficiencies::init_from_db ( const edm::ESHandle< TrackerGeometry > &  geom,
const edm::ESHandle< SiPixelDynamicInefficiency > &  SiPixelDynamicInefficiency 
)

Definition at line 574 of file SiPixelDigitizerAlgorithm.cc.

References PixelTopology::colsperroc(), TrackerGeometry::detUnits(), Exception, SiPixelDynamicInefficiency::getChipGeomFactors(), SiPixelDynamicInefficiency::getColGeomFactors(), SiPixelDynamicInefficiency::getDetIdmasks(), SiPixelDynamicInefficiency::getPixelGeomFactors(), SiPixelDynamicInefficiency::getPUFactors(), SiPixelDynamicInefficiency::gettheInstLumiScaleFactor(), mps_fire::i, TrackerGeometry::idToDet(), TrackerGeometry::isThere(), patRefSel_triggerMatching_cfi::matches, SiStripPI::max, min(), GeomDetEnumerators::P1PXB, GeomDetEnumerators::P1PXEC, PixelSubdetector::PixelBarrel, DetId::rawId(), PixelTopology::rowsperroc(), edm::shift, PixelGeomDetUnit::specificTopology(), DetId::subdetId(), and ecaldqm::topology().

Referenced by SiPixelDigitizerAlgorithm::init_DynIneffDB().

574  {
575 
576  theInstLumiScaleFactor = SiPixelDynamicInefficiency->gettheInstLumiScaleFactor();
577  const std::map<uint32_t, double>& PixelGeomFactorsDBIn = SiPixelDynamicInefficiency->getPixelGeomFactors();
578  const std::map<uint32_t, double>& ColGeomFactorsDB = SiPixelDynamicInefficiency->getColGeomFactors();
579  const std::map<uint32_t, double>& ChipGeomFactorsDB = SiPixelDynamicInefficiency->getChipGeomFactors();
580  const std::map<uint32_t, std::vector<double> >& PUFactors = SiPixelDynamicInefficiency->getPUFactors();
581  std::vector<uint32_t > DetIdmasks = SiPixelDynamicInefficiency->getDetIdmasks();
582 
583  // Loop on all modules, initialize map for easy access
584  for( const auto& it_module : geom->detUnits()) {
585  if( dynamic_cast<PixelGeomDetUnit const*>(it_module)==nullptr) continue;
586  const DetId detid = it_module->geographicalId();
587  uint32_t rawid = detid.rawId();
588  PixelGeomFactors[rawid] = 1;
589  ColGeomFactors[rawid] = 1;
590  ChipGeomFactors[rawid] = 1;
591  PixelGeomFactorsROCStdPixels[rawid] = std::vector<double>(16,1);
592  PixelGeomFactorsROCBigPixels[rawid] = std::vector<double>(16,1);
593  }
594 
595  // ROC level inefficiency for phase 1 (disentangle scale factors for big and std size pixels)
596  std::map<uint32_t, double> PixelGeomFactorsDB;
597 
600  for (auto db_factor : PixelGeomFactorsDBIn){
601  int shift = DetId(db_factor.first).subdetId() ==
603  unsigned int rocMask = rocIdMaskBits << shift;
604  unsigned int rocId = (((db_factor.first) & rocMask) >> shift);
605  if (rocId != 0) {
606  rocId--;
607  unsigned int rawid = db_factor.first & (~rocMask);
608  const PixelGeomDetUnit * theGeomDet = dynamic_cast<const PixelGeomDetUnit*> (geom->idToDet(rawid));
609  PixelTopology const * topology = &(theGeomDet->specificTopology());
610  const int nPixelsInROC = topology->rowsperroc()*topology->colsperroc();
611  const int nBigPixelsInROC = 2*topology->rowsperroc()+topology->colsperroc()-2;
612  double factor = db_factor.second;
613  double badFraction = 1 - factor;
614  double bigPixelFraction = static_cast<double> (nBigPixelsInROC)/nPixelsInROC;
615  double stdPixelFraction = 1. - bigPixelFraction;
616 
617  double badFractionBig = std::min(bigPixelFraction, badFraction);
618  double badFractionStd = std::max(0., badFraction - badFractionBig);
619  double badFractionBigReNormalized = badFractionBig/bigPixelFraction;
620  double badFractionStdReNormalized = badFractionStd/stdPixelFraction;
621  PixelGeomFactorsROCStdPixels[rawid][rocId] *= (1. - badFractionStdReNormalized);
622  PixelGeomFactorsROCBigPixels[rawid][rocId] *= (1. - badFractionBigReNormalized);
623  }
624  else{
625  PixelGeomFactorsDB[db_factor.first] = db_factor.second;
626  }
627  }
628  } // is Phase 1 geometry
629  else{
630  PixelGeomFactorsDB = PixelGeomFactorsDBIn;
631  }
632 
633  // Loop on all modules, store module level geometrical scale factors
634  for( const auto& it_module : geom->detUnits()) {
635  if( dynamic_cast<PixelGeomDetUnit const*>(it_module)==nullptr) continue;
636  const DetId detid = it_module->geographicalId();
637  uint32_t rawid = detid.rawId();
638  for (auto db_factor : PixelGeomFactorsDB) if (matches(detid, DetId(db_factor.first), DetIdmasks)) PixelGeomFactors[rawid] *= db_factor.second;
639  for (auto db_factor : ColGeomFactorsDB) if (matches(detid, DetId(db_factor.first), DetIdmasks)) ColGeomFactors[rawid] *= db_factor.second;
640  for (auto db_factor : ChipGeomFactorsDB) if (matches(detid, DetId(db_factor.first), DetIdmasks)) ChipGeomFactors[rawid] *= db_factor.second;
641  }
642 
643  // piluep scale factors are calculated once per event
644  // therefore vector index is stored in a map for each module that matches to a db_id
645  size_t i=0;
646  for (auto factor : PUFactors) {
647  const DetId db_id = DetId(factor.first);
648  for( const auto& it_module : geom->detUnits()) {
649  if( dynamic_cast<PixelGeomDetUnit const*>(it_module)==nullptr) continue;
650  const DetId detid = it_module->geographicalId();
651  if (!matches(detid, db_id, DetIdmasks)) continue;
652  if (iPU.count(detid.rawId())) {
653  throw cms::Exception("Database")<<"Multiple db_ids match to same module in SiPixelDynamicInefficiency DB Object";
654  } else {
655  iPU[detid.rawId()] = i;
656  }
657  }
658  thePUEfficiency.push_back(factor.second);
659  ++i;
660  }
661  pu_scale.resize(thePUEfficiency.size());
662 }
virtual int rowsperroc() const =0
CaloTopology const * topology(0)
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
std::vector< std::vector< double > > thePUEfficiency
bool isThere(GeomDetEnumerators::SubDetector subdet) const
const std::vector< uint32_t > getDetIdmasks() const
virtual int colsperroc() const =0
std::map< uint32_t, std::vector< double > > PixelGeomFactorsROCBigPixels
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
T min(T a, T b)
Definition: MathUtil.h:58
Definition: DetId.h:18
std::map< uint32_t, std::vector< double > > PixelGeomFactorsROCStdPixels
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
bool matches(const DetId &, const DetId &, const std::vector< uint32_t > &)
const TrackerGeomDet * idToDet(DetId) const override
static unsigned int const shift
const std::map< unsigned int, std::vector< double > > & getPUFactors() const
const std::map< unsigned int, double > & getColGeomFactors() const
const std::map< unsigned int, double > & getPixelGeomFactors() const
const std::map< unsigned int, double > & getChipGeomFactors() const
bool SiPixelDigitizerAlgorithm::PixelEfficiencies::matches ( const DetId detid,
const DetId db_id,
const std::vector< uint32_t > &  DetIdmasks 
)

Definition at line 664 of file SiPixelDigitizerAlgorithm.cc.

References DetId::det(), mps_fire::i, DetId::rawId(), and DetId::subdetId().

664  {
665  if (detid.subdetId() != db_id.subdetId()) return false;
666  for (size_t i=0; i<DetIdmasks.size(); ++i) {
667  DetId maskid = DetId(DetIdmasks.at(i));
668  if (maskid.subdetId() != db_id.subdetId()) continue;
669  if ((detid.rawId()&maskid.rawId()) != (db_id.rawId()&maskid.rawId()) &&
670  (db_id.rawId()&maskid.rawId()) != DetId(db_id.det(), db_id.subdetId()).rawId()) return false;
671  }
672  return true;
673 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
Definition: DetId.h:18
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:39

Member Data Documentation

std::map<uint32_t, double> SiPixelDigitizerAlgorithm::PixelEfficiencies::ChipGeomFactors
std::map<uint32_t, double> SiPixelDigitizerAlgorithm::PixelEfficiencies::ColGeomFactors
unsigned int SiPixelDigitizerAlgorithm::PixelEfficiencies::FPixIndex
bool SiPixelDigitizerAlgorithm::PixelEfficiencies::FromConfig
std::map<uint32_t, size_t > SiPixelDigitizerAlgorithm::PixelEfficiencies::iPU
std::unique_ptr<PixelFEDChannelCollection> SiPixelDigitizerAlgorithm::PixelEfficiencies::PixelFEDChannelCollection_
std::map<uint32_t, double> SiPixelDigitizerAlgorithm::PixelEfficiencies::PixelGeomFactors
std::map<uint32_t, std::vector<double> > SiPixelDigitizerAlgorithm::PixelEfficiencies::PixelGeomFactorsROCBigPixels
std::map<uint32_t, std::vector<double> > SiPixelDigitizerAlgorithm::PixelEfficiencies::PixelGeomFactorsROCStdPixels
std::vector<double> SiPixelDigitizerAlgorithm::PixelEfficiencies::pu_scale
const int SiPixelDigitizerAlgorithm::PixelEfficiencies::rocIdMaskBits = 0x1F
static

Definition at line 282 of file SiPixelDigitizerAlgorithm.h.

double SiPixelDigitizerAlgorithm::PixelEfficiencies::theInnerEfficiency_FPix[20]
double SiPixelDigitizerAlgorithm::PixelEfficiencies::theInstLumiScaleFactor
std::vector<double> SiPixelDigitizerAlgorithm::PixelEfficiencies::theLadderEfficiency_BPix[20]
std::vector<double> SiPixelDigitizerAlgorithm::PixelEfficiencies::theModuleEfficiency_BPix[20]
double SiPixelDigitizerAlgorithm::PixelEfficiencies::theOuterEfficiency_FPix[20]
double SiPixelDigitizerAlgorithm::PixelEfficiencies::thePixelChipEfficiency[20]
double SiPixelDigitizerAlgorithm::PixelEfficiencies::thePixelColEfficiency[20]
double SiPixelDigitizerAlgorithm::PixelEfficiencies::thePixelEfficiency[20]
std::vector<std::vector<double> > SiPixelDigitizerAlgorithm::PixelEfficiencies::thePUEfficiency