CMS 3D CMS Logo

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

#include <TkMeasurementDetSet.h>

Classes

struct  BadStripBlock
 
struct  BadStripCuts
 

Public Types

enum  QualityFlags {
  BadModules = 1, BadAPVFibers = 2, BadStrips = 4, MaskBad128StripBlocks = 8,
  BadROCs = 2
}
 

Public Member Functions

bool bad128Strip (int offset) const
 note: index is 6*detector index + offset! More...
 
bool bad128Strip (int index, int strip) const
 
std::vector< BadStripBlock >
const & 
badStripBlocks (int i) const
 
const BadStripCutsbadStripCuts (int i) const
 
int find (unsigned int jd, int i=0) const
 
std::vector< BadStripBlock > & getBadStripBlocks (int i)
 
bool hasAny128StripBad (int i) const
 
unsigned int id (int i) const
 
void init (int size)
 
bool isActiveThisPeriod (int i) const
 
bool isMasked (int i, const SiStripCluster &cluster) const
 
bool maskBad128StripBlocks () const
 
const SiStripRecHitMatchermatcher () const
 
int nDet () const
 
void set128StripStatus (int i, bool good, int idx=-1)
 
void setActive (int i, bool active)
 Turn on/off the module for reconstruction, for the full run or lumi (using info from DB, usually) More...
 
void setMaskBad128StripBlocks (bool maskThem)
 
 StMeasurementConditionSet (const SiStripRecHitMatcher *matcher, const StripClusterParameterEstimator *cpe)
 
const
StripClusterParameterEstimator
stripCPE () const
 
unsigned char subId (int i) const
 
int totalStrips (int i) const
 

Private Attributes

std::vector< bool > activeThisPeriod_
 
std::vector< bool > bad128Strip_
 
std::vector< std::vector
< BadStripBlock > > 
badStripBlocks_
 
BadStripCuts badStripCuts_ [4]
 
std::vector< bool > hasAny128StripBad_
 
std::vector< unsigned int > id_
 
bool maskBad128StripBlocks_
 
std::vector< unsigned char > subId_
 
const
StripClusterParameterEstimator
theCPE
 
const SiStripRecHitMatchertheMatcher
 
std::vector< int > totalStrips_
 

Static Private Attributes

static const int nbad128 = 6
 

Friends

class MeasurementTrackerImpl
 

Detailed Description

Definition at line 38 of file TkMeasurementDetSet.h.

Member Enumeration Documentation

Enumerator
BadModules 
BadAPVFibers 
BadStrips 
MaskBad128StripBlocks 
BadROCs 

Definition at line 40 of file TkMeasurementDetSet.h.

Constructor & Destructor Documentation

StMeasurementConditionSet::StMeasurementConditionSet ( const SiStripRecHitMatcher matcher,
const StripClusterParameterEstimator cpe 
)
inline

Definition at line 61 of file TkMeasurementDetSet.h.

62  : theMatcher(matcher), theCPE(cpe) {}
const StripClusterParameterEstimator * theCPE
const SiStripRecHitMatcher * theMatcher

Member Function Documentation

bool StMeasurementConditionSet::bad128Strip ( int  offset) const
inline

note: index is 6*detector index + offset!

Definition at line 89 of file TkMeasurementDetSet.h.

References bad128Strip_, and hltrates_dqm_sourceclient-live_cfg::offset.

bool StMeasurementConditionSet::bad128Strip ( int  index,
int  strip 
) const
inline

Definition at line 90 of file TkMeasurementDetSet.h.

References bad128Strip_, and nbad128.

std::vector<BadStripBlock> const& StMeasurementConditionSet::badStripBlocks ( int  i) const
inline

Definition at line 93 of file TkMeasurementDetSet.h.

References badStripBlocks_, and mps_fire::i.

93 { return badStripBlocks_[i]; }
std::vector< std::vector< BadStripBlock > > badStripBlocks_
const BadStripCuts& StMeasurementConditionSet::badStripCuts ( int  i) const
inline

Definition at line 83 of file TkMeasurementDetSet.h.

References badStripCuts_, mps_fire::i, and subId_.

83 { return badStripCuts_[subId_[i]]; }
std::vector< unsigned char > subId_
int StMeasurementConditionSet::find ( unsigned int  jd,
int  i = 0 
) const
inline

Definition at line 73 of file TkMeasurementDetSet.h.

References mps_fire::i, id_, and cuda_std::lower_bound().

Referenced by StMeasurementDetSet::find().

73 { return std::lower_bound(id_.begin() + i, id_.end(), jd) - id_.begin(); }
std::vector< unsigned int > id_
__host__ __device__ constexpr RandomIt lower_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
std::vector<BadStripBlock>& StMeasurementConditionSet::getBadStripBlocks ( int  i)
inline

Definition at line 92 of file TkMeasurementDetSet.h.

References badStripBlocks_, and mps_fire::i.

Referenced by MeasurementTrackerImpl::initializeStripStatus().

92 { return badStripBlocks_[i]; }
std::vector< std::vector< BadStripBlock > > badStripBlocks_
bool StMeasurementConditionSet::hasAny128StripBad ( int  i) const
inline

Definition at line 86 of file TkMeasurementDetSet.h.

References hasAny128StripBad_, and mps_fire::i.

86 { return hasAny128StripBad_[i]; }
std::vector< bool > hasAny128StripBad_
unsigned int StMeasurementConditionSet::id ( int  i) const
inline
void StMeasurementConditionSet::init ( int  size)

Definition at line 3 of file TkMeasurementDetSet.cc.

References activeThisPeriod_, bad128Strip_, badStripBlocks_, hasAny128StripBad_, id_, subId_, and totalStrips_.

Referenced by MeasurementTrackerImpl::initStMeasurementConditionSet().

3  {
4  activeThisPeriod_.resize(size, true);
5  id_.resize(size);
6  subId_.resize(size);
7  totalStrips_.resize(size);
8 
9  bad128Strip_.resize(size * 6);
10  hasAny128StripBad_.resize(size);
11  badStripBlocks_.resize(size);
12 }
std::vector< std::vector< BadStripBlock > > badStripBlocks_
std::vector< unsigned char > subId_
std::vector< int > totalStrips_
std::vector< bool > hasAny128StripBad_
std::vector< bool > activeThisPeriod_
std::vector< unsigned int > id_
std::vector< bool > bad128Strip_
tuple size
Write out results.
bool StMeasurementConditionSet::isActiveThisPeriod ( int  i) const
inline

Definition at line 75 of file TkMeasurementDetSet.h.

References activeThisPeriod_, and mps_fire::i.

Referenced by StMeasurementDetSet::isActive().

75 { return activeThisPeriod_[i]; }
std::vector< bool > activeThisPeriod_
bool StMeasurementConditionSet::isMasked ( int  i,
const SiStripCluster cluster 
) const
inline

Definition at line 95 of file TkMeasurementDetSet.h.

References SiStripCluster::amplitudes(), bad128Strip_, SiStripCluster::barycenter(), SiStripCluster::firstStrip(), mps_fire::i, nbad128, hltrates_dqm_sourceclient-live_cfg::offset, and SiStripCluster::size().

95  {
96  int offset = nbad128 * i;
97  if (bad128Strip_[offset + (cluster.firstStrip() >> 7)]) {
98  if (bad128Strip_[offset + ((cluster.firstStrip() + cluster.amplitudes().size()) >> 7)] ||
99  bad128Strip_[offset + (static_cast<int32_t>(cluster.barycenter() - 0.499999) >> 7)]) {
100  return true;
101  }
102  } else {
103  if (bad128Strip_[offset + ((cluster.firstStrip() + cluster.amplitudes().size()) >> 7)] &&
104  bad128Strip_[offset + (static_cast<int32_t>(cluster.barycenter() - 0.499999) >> 7)]) {
105  return true;
106  }
107  }
108  return false;
109  }
SiStripCluster const & amplitudes() const
uint16_t firstStrip() const
auto size() const
float barycenter() const
std::vector< bool > bad128Strip_
bool StMeasurementConditionSet::maskBad128StripBlocks ( ) const
inline

Definition at line 85 of file TkMeasurementDetSet.h.

References maskBad128StripBlocks_.

const SiStripRecHitMatcher* StMeasurementConditionSet::matcher ( ) const
inline

Definition at line 66 of file TkMeasurementDetSet.h.

References theMatcher.

Referenced by MeasurementTrackerImpl::addGluedDet().

66 { return theMatcher; }
const SiStripRecHitMatcher * theMatcher
int StMeasurementConditionSet::nDet ( ) const
inline

Definition at line 69 of file TkMeasurementDetSet.h.

References id_.

Referenced by MeasurementTrackerImpl::initializeStripStatus(), and StMeasurementDetSet::size().

69 { return id_.size(); }
std::vector< unsigned int > id_
void StMeasurementConditionSet::set128StripStatus ( int  i,
bool  good,
int  idx = -1 
)

Definition at line 14 of file TkMeasurementDetSet.cc.

References bad128Strip_, PVValHelper::fill(), good, hasAny128StripBad_, mps_fire::i, dqmiolumiharvest::j, nbad128, and hltrates_dqm_sourceclient-live_cfg::offset.

Referenced by MeasurementTrackerImpl::initializeStripStatus().

14  {
15  int offset = nbad128 * i;
16  if (idx == -1) {
17  std::fill(bad128Strip_.begin() + offset, bad128Strip_.begin() + offset + 6, !good);
19  } else {
20  bad128Strip_[offset + idx] = !good;
21  if (good == false) {
22  hasAny128StripBad_[i] = false;
23  } else { // this should not happen, as usually you turn on all fibers
24  // and then turn off the bad ones, and not vice-versa,
25  // so I don't care if it's not optimized
26  hasAny128StripBad_[i] = true;
27  for (int j = 0; i < (totalStrips_[j] >> 7); j++) {
28  if (bad128Strip_[j + offset] == false) {
29  hasAny128StripBad_[i] = false;
30  break;
31  }
32  }
33  }
34  }
35 }
std::vector< bool > hasAny128StripBad_
void fill(std::map< std::string, TH1 * > &h, const std::string &s, double x)
auto const good
min quality of good
std::vector< bool > bad128Strip_
void StMeasurementConditionSet::setActive ( int  i,
bool  active 
)
inline

Turn on/off the module for reconstruction, for the full run or lumi (using info from DB, usually)

Definition at line 78 of file TkMeasurementDetSet.h.

References activeThisPeriod_, and mps_fire::i.

Referenced by MeasurementTrackerImpl::initializeStripStatus().

78 { activeThisPeriod_[i] = active; }
std::vector< bool > activeThisPeriod_
void StMeasurementConditionSet::setMaskBad128StripBlocks ( bool  maskThem)
inline
const StripClusterParameterEstimator* StMeasurementConditionSet::stripCPE ( ) const
inline

Definition at line 67 of file TkMeasurementDetSet.h.

References theCPE.

Referenced by MeasurementTrackerImpl::addGluedDet().

67 { return theCPE; }
const StripClusterParameterEstimator * theCPE
unsigned char StMeasurementConditionSet::subId ( int  i) const
inline

Definition at line 71 of file TkMeasurementDetSet.h.

References mps_fire::i, and subId_.

71 { return subId_[i]; }
std::vector< unsigned char > subId_
int StMeasurementConditionSet::totalStrips ( int  i) const
inline

Definition at line 80 of file TkMeasurementDetSet.h.

References mps_fire::i, and totalStrips_.

80 { return totalStrips_[i]; }
std::vector< int > totalStrips_

Friends And Related Function Documentation

friend class MeasurementTrackerImpl
friend

Definition at line 114 of file TkMeasurementDetSet.h.

Member Data Documentation

std::vector<bool> StMeasurementConditionSet::activeThisPeriod_
private

Definition at line 135 of file TkMeasurementDetSet.h.

Referenced by init(), isActiveThisPeriod(), and setActive().

std::vector<bool> StMeasurementConditionSet::bad128Strip_
private

Definition at line 130 of file TkMeasurementDetSet.h.

Referenced by bad128Strip(), init(), isMasked(), and set128StripStatus().

std::vector<std::vector<BadStripBlock> > StMeasurementConditionSet::badStripBlocks_
private

Definition at line 133 of file TkMeasurementDetSet.h.

Referenced by badStripBlocks(), getBadStripBlocks(), and init().

BadStripCuts StMeasurementConditionSet::badStripCuts_[4]
private
std::vector<bool> StMeasurementConditionSet::hasAny128StripBad_
private

Definition at line 131 of file TkMeasurementDetSet.h.

Referenced by hasAny128StripBad(), init(), and set128StripStatus().

std::vector<unsigned int> StMeasurementConditionSet::id_
private
bool StMeasurementConditionSet::maskBad128StripBlocks_
private

Definition at line 120 of file TkMeasurementDetSet.h.

Referenced by maskBad128StripBlocks(), and setMaskBad128StripBlocks().

const int StMeasurementConditionSet::nbad128 = 6
staticprivate

Definition at line 129 of file TkMeasurementDetSet.h.

Referenced by bad128Strip(), isMasked(), and set128StripStatus().

std::vector<unsigned char> StMeasurementConditionSet::subId_
private
const StripClusterParameterEstimator* StMeasurementConditionSet::theCPE
private

Definition at line 118 of file TkMeasurementDetSet.h.

Referenced by stripCPE().

const SiStripRecHitMatcher* StMeasurementConditionSet::theMatcher
private

Definition at line 117 of file TkMeasurementDetSet.h.

Referenced by matcher().

std::vector<int> StMeasurementConditionSet::totalStrips_
private