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 | Protected Member Functions | Protected Attributes
MeasurementTrackerImpl Class Referencefinal

#include <MeasurementTrackerImpl.h>

Inheritance diagram for MeasurementTrackerImpl:
MeasurementTracker MeasurementDetSystem

Classes

struct  BadStripCutsDet
 

Public Types

typedef std::unordered_map
< unsigned int, MeasurementDet * > 
DetContainer
 
enum  QualityFlags {
  BadModules = 1, BadAPVFibers = 2, BadStrips = 4, MaskBad128StripBlocks = 8,
  BadROCs = 2
}
 
- Public Types inherited from MeasurementTracker
enum  QualityFlags {
  BadModules = 1, BadAPVFibers = 2, BadStrips = 4, MaskBad128StripBlocks = 8,
  BadROCs = 2
}
 

Public Member Functions

const DetContainerallDets () const
 For debug only. More...
 
const MeasurementDetfindDet (const DetId &id) const
 
const GeometricSearchTrackergeometricSearchTracker () const
 
const TrackerGeometrygeomTracker () const
 
const std::vector
< TkGluedMeasurementDet > & 
gluedDets () const
 
MeasurementDetWithData idToDet (const DetId &id, const MeasurementTrackerEvent &data) const override
 MeasurementDetSystem interface (won't be overloaded anymore) More...
 
const MeasurementDetidToDetBare (const DetId &id, const MeasurementTrackerEvent &data) const
 
 MeasurementTrackerImpl (const BadStripCutsDet &badStripCuts, const PixelClusterParameterEstimator *pixelCPE, const StripClusterParameterEstimator *stripCPE, const SiStripRecHitMatcher *hitMatcher, const TrackerTopology *trackerTopology, const TrackerGeometry *trackerGeom, const GeometricSearchTracker *geometricSearchTracker, const SiStripQuality *stripQuality, int stripQualityFlags, int stripQualityDebugFlags, const SiPixelQuality *pixelQuality, const SiPixelFedCabling *pixelCabling, int pixelQualityFlags, int pixelQualityDebugFlags, const ClusterParameterEstimator< Phase2TrackerCluster1D > *phase2OTCPE=nullptr)
 
const
Phase2OTMeasurementConditionSet
phase2DetConditions () const override
 
const PxMeasurementConditionSetpixelDetConditions () const override
 
const std::vector
< TkPixelMeasurementDet > & 
pixelDets () const
 
const std::vector
< TkStackMeasurementDet > & 
stackDets () const
 
const StMeasurementConditionSetstripDetConditions () const override
 Provide templates to be filled in. More...
 
const std::vector
< TkStripMeasurementDet > & 
stripDets () const
 
 ~MeasurementTrackerImpl () override
 
- Public Member Functions inherited from MeasurementTracker
const GeometricSearchTrackergeometricSearchTracker () const
 
const TrackerGeometrygeomTracker () const
 
 MeasurementTracker (TrackerGeometry const *trackerGeom, GeometricSearchTracker const *geometricSearchTracker)
 
 ~MeasurementTracker () override
 
- Public Member Functions inherited from MeasurementDetSystem
virtual ~MeasurementDetSystem ()=default
 

Protected Member Functions

void addDets (const TrackingGeometry::DetContainer &dets, bool subIsPixel, bool subIsOT)
 
void addGluedDet (const GluedGeomDet *gd)
 
void addPhase2Det (const GeomDet *gd)
 
void addPixelDet (const GeomDet *gd)
 
void addStackDet (const StackGeomDet *gd)
 
void addStripDet (const GeomDet *gd)
 
bool checkDets ()
 
void initGluedDet (TkGluedMeasurementDet &det, const TrackerTopology *trackerTopology)
 
void initialize (const TrackerTopology *trackerTopology)
 
void initializePixelStatus (const SiPixelQuality *stripQuality, const SiPixelFedCabling *pixelCabling, int qualityFlags, int qualityDebugFlags)
 
void initializeStripStatus (const BadStripCutsDet &badStripCuts, const SiStripQuality *stripQuality, int qualityFlags, int qualityDebugFlags)
 
void initPhase2OTMeasurementConditionSet (std::vector< TkPhase2OTMeasurementDet > &phase2Dets)
 
void initPxMeasurementConditionSet (std::vector< TkPixelMeasurementDet > &pixelDets)
 
void initStackDet (TkStackMeasurementDet &det)
 
void initStMeasurementConditionSet (std::vector< TkStripMeasurementDet > &stripDets)
 

Protected Attributes

DetContainer theDetMap
 
std::vector
< TkGluedMeasurementDet
theGluedDets
 
Phase2OTMeasurementConditionSet thePhase2DetConditions
 
std::vector
< TkPhase2OTMeasurementDet
thePhase2Dets
 
const SiPixelFedCablingthePixelCabling
 
std::vector
< TkPixelMeasurementDet
thePixelDets
 
PxMeasurementConditionSet thePxDetConditions
 
std::vector
< TkStackMeasurementDet
theStackDets
 
StMeasurementConditionSet theStDetConditions
 
std::vector
< TkStripMeasurementDet
theStripDets
 
- Protected Attributes inherited from MeasurementTracker
const GeometricSearchTrackertheGeometricSearchTracker
 
const TrackerGeometrytheTrackerGeom
 

Detailed Description

Definition at line 38 of file MeasurementTrackerImpl.h.

Member Typedef Documentation

typedef std::unordered_map<unsigned int, MeasurementDet*> MeasurementTrackerImpl::DetContainer

Definition at line 95 of file MeasurementTrackerImpl.h.

Member Enumeration Documentation

Enumerator
BadModules 
BadAPVFibers 
BadStrips 
MaskBad128StripBlocks 
BadROCs 

Definition at line 40 of file MeasurementTrackerImpl.h.

Constructor & Destructor Documentation

MeasurementTrackerImpl::MeasurementTrackerImpl ( const BadStripCutsDet badStripCuts,
const PixelClusterParameterEstimator pixelCPE,
const StripClusterParameterEstimator stripCPE,
const SiStripRecHitMatcher hitMatcher,
const TrackerTopology trackerTopology,
const TrackerGeometry trackerGeom,
const GeometricSearchTracker geometricSearchTracker,
const SiStripQuality stripQuality,
int  stripQualityFlags,
int  stripQualityDebugFlags,
const SiPixelQuality pixelQuality,
const SiPixelFedCabling pixelCabling,
int  pixelQualityFlags,
int  pixelQualityDebugFlags,
const ClusterParameterEstimator< Phase2TrackerCluster1D > *  phase2OTCPE = nullptr 
)

Definition at line 76 of file MeasurementTrackerImpl.cc.

References initialize(), initializePixelStatus(), and initializeStripStatus().

91  : MeasurementTracker(trackerGeom, geometricSearchTracker),
92  theStDetConditions(hitMatcher, stripCPE),
93  thePxDetConditions(pixelCPE),
94  thePhase2DetConditions(phase2OTCPE) {
95  this->initialize(trackerTopology);
96  this->initializeStripStatus(badStripCuts, stripQuality, stripQualityFlags, stripQualityDebugFlags);
97  this->initializePixelStatus(pixelQuality, pixelCabling, pixelQualityFlags, pixelQualityDebugFlags);
98 }
StMeasurementConditionSet theStDetConditions
void initializePixelStatus(const SiPixelQuality *stripQuality, const SiPixelFedCabling *pixelCabling, int qualityFlags, int qualityDebugFlags)
void initialize(const TrackerTopology *trackerTopology)
void initializeStripStatus(const BadStripCutsDet &badStripCuts, const SiStripQuality *stripQuality, int qualityFlags, int qualityDebugFlags)
MeasurementTracker(TrackerGeometry const *trackerGeom, GeometricSearchTracker const *geometricSearchTracker)
PxMeasurementConditionSet thePxDetConditions
Phase2OTMeasurementConditionSet thePhase2DetConditions
tuple badStripCuts
MeasurementTrackerImpl::~MeasurementTrackerImpl ( )
override

Definition at line 100 of file MeasurementTrackerImpl.cc.

100 {}

Member Function Documentation

void MeasurementTrackerImpl::addDets ( const TrackingGeometry::DetContainer dets,
bool  subIsPixel,
bool  subIsOT 
)
protected

Definition at line 218 of file MeasurementTrackerImpl.cc.

References addGluedDet(), addPhase2Det(), addPixelDet(), addStackDet(), addStripDet(), and GeomDet::isLeaf().

Referenced by initialize().

218  {
219  //in phase2, we can have composed subDetector made by Pixel or Strip
220  for (TrackerGeometry::DetContainer::const_iterator gd = dets.begin(); gd != dets.end(); gd++) {
221  const GeomDetUnit* gdu = dynamic_cast<const GeomDetUnit*>(*gd);
222 
223  //Pixel or Strip GeomDetUnit
224  if (gdu->isLeaf()) {
225  if (subIsPixel) {
226  if (!subIsOT) {
227  addPixelDet(*gd);
228  } else {
229  addPhase2Det(*gd);
230  }
231  } else {
232  addStripDet(*gd);
233  }
234  } else {
235  //Glued or Stack GeomDet
236  const GluedGeomDet* gluedDet = dynamic_cast<const GluedGeomDet*>(*gd);
237  const StackGeomDet* stackDet = dynamic_cast<const StackGeomDet*>(*gd);
238 
239  if ((gluedDet == nullptr && stackDet == nullptr) || (gluedDet != nullptr && stackDet != nullptr)) {
240  throw MeasurementDetException("MeasurementTracker ERROR: GeomDet neither DetUnit nor GluedDet nor StackDet");
241  }
242  if (gluedDet != nullptr)
243  addGluedDet(gluedDet);
244  else
245  addStackDet(stackDet);
246  }
247  }
248 }
void addStripDet(const GeomDet *gd)
void addStackDet(const StackGeomDet *gd)
void addPixelDet(const GeomDet *gd)
virtual bool isLeaf() const
is a Unit
Definition: GeomDet.h:70
void addPhase2Det(const GeomDet *gd)
void addGluedDet(const GluedGeomDet *gd)
void MeasurementTrackerImpl::addGluedDet ( const GluedGeomDet gd)
protected

Definition at line 280 of file MeasurementTrackerImpl.cc.

References StMeasurementConditionSet::matcher(), StMeasurementConditionSet::stripCPE(), theGluedDets, and theStDetConditions.

Referenced by addDets().

280  {
282 }
StMeasurementConditionSet theStDetConditions
const SiStripRecHitMatcher * matcher() const
const StripClusterParameterEstimator * stripCPE() const
std::vector< TkGluedMeasurementDet > theGluedDets
void MeasurementTrackerImpl::addPhase2Det ( const GeomDet gd)
protected

Definition at line 272 of file MeasurementTrackerImpl.cc.

References submitPVValidationJobs::err, thePhase2DetConditions, thePhase2Dets, and cms::Exception::what().

Referenced by addDets().

272  {
273  try {
275  } catch (MeasurementDetException& err) {
276  edm::LogError("MeasurementDet") << "Oops, got a MeasurementDetException: " << err.what();
277  }
278 }
std::vector< TkPhase2OTMeasurementDet > thePhase2Dets
Log< level::Error, false > LogError
char const * what() const noexceptoverride
Definition: Exception.cc:103
Phase2OTMeasurementConditionSet thePhase2DetConditions
void MeasurementTrackerImpl::addPixelDet ( const GeomDet gd)
protected

Definition at line 264 of file MeasurementTrackerImpl.cc.

References submitPVValidationJobs::err, thePixelDets, thePxDetConditions, and cms::Exception::what().

Referenced by addDets().

264  {
265  try {
267  } catch (MeasurementDetException& err) {
268  edm::LogError("MeasurementDet") << "Oops, got a MeasurementDetException: " << err.what();
269  }
270 }
Log< level::Error, false > LogError
std::vector< TkPixelMeasurementDet > thePixelDets
char const * what() const noexceptoverride
Definition: Exception.cc:103
PxMeasurementConditionSet thePxDetConditions
void MeasurementTrackerImpl::addStackDet ( const StackGeomDet gd)
protected

Definition at line 284 of file MeasurementTrackerImpl.cc.

References PxMeasurementConditionSet::pixelCPE(), thePxDetConditions, and theStackDets.

Referenced by addDets().

284  {
285  //since the Stack will be composed by PS or 2S,
286  //both cluster parameter estimators are needed? - right now just the thePixelCPE is used.
288 }
std::vector< TkStackMeasurementDet > theStackDets
PxMeasurementConditionSet thePxDetConditions
const PixelClusterParameterEstimator * pixelCPE() const
void MeasurementTrackerImpl::addStripDet ( const GeomDet gd)
protected

Definition at line 256 of file MeasurementTrackerImpl.cc.

References submitPVValidationJobs::err, theStDetConditions, theStripDets, and cms::Exception::what().

Referenced by addDets().

256  {
257  try {
259  } catch (MeasurementDetException& err) {
260  edm::LogError("MeasurementDet") << "Oops, got a MeasurementDetException: " << err.what();
261  }
262 }
std::vector< TkStripMeasurementDet > theStripDets
StMeasurementConditionSet theStDetConditions
Log< level::Error, false > LogError
char const * what() const noexceptoverride
Definition: Exception.cc:103
const DetContainer& MeasurementTrackerImpl::allDets ( ) const
inline

For debug only.

Definition at line 98 of file MeasurementTrackerImpl.h.

98 { return theDetMap; }
bool MeasurementTrackerImpl::checkDets ( )
protected

Definition at line 250 of file MeasurementTrackerImpl.cc.

References TrackerGeometry::dets(), theDetMap, and MeasurementTracker::theTrackerGeom.

Referenced by initialize().

250  {
251  if (theTrackerGeom->dets().size() == theDetMap.size())
252  return true;
253  return false;
254 }
const TrackerGeometry * theTrackerGeom
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
const MeasurementDet* MeasurementTrackerImpl::findDet ( const DetId id) const
inline

Definition at line 84 of file MeasurementTrackerImpl.h.

Referenced by initGluedDet(), and initStackDet().

84  {
85  auto it = theDetMap.find(id);
86  if (it != theDetMap.end()) {
87  return it->second;
88  } else {
89  //throw exception;
90  }
91 
92  return nullptr; //to avoid compile warning
93  }
const GeometricSearchTracker* MeasurementTrackerImpl::geometricSearchTracker ( ) const
inline

Definition at line 75 of file MeasurementTrackerImpl.h.

References MeasurementTracker::theGeometricSearchTracker.

75 { return theGeometricSearchTracker; }
const GeometricSearchTracker * theGeometricSearchTracker
const TrackerGeometry* MeasurementTrackerImpl::geomTracker ( ) const
inline

Definition at line 73 of file MeasurementTrackerImpl.h.

References MeasurementTracker::theTrackerGeom.

73 { return theTrackerGeom; }
const TrackerGeometry * theTrackerGeom
const std::vector<TkGluedMeasurementDet>& MeasurementTrackerImpl::gluedDets ( ) const
inline

Definition at line 101 of file MeasurementTrackerImpl.h.

101 { return theGluedDets; }
std::vector< TkGluedMeasurementDet > theGluedDets
MeasurementDetWithData MeasurementTrackerImpl::idToDet ( const DetId id,
const MeasurementTrackerEvent data 
) const
inlineoverridevirtual

MeasurementDetSystem interface (won't be overloaded anymore)

Implements MeasurementTracker.

Definition at line 78 of file MeasurementTrackerImpl.h.

78  {
79  return MeasurementDetWithData(*idToDetBare(id, data), data);
80  }
const MeasurementDet * idToDetBare(const DetId &id, const MeasurementTrackerEvent &data) const
const MeasurementDet* MeasurementTrackerImpl::idToDetBare ( const DetId id,
const MeasurementTrackerEvent data 
) const
inline

Definition at line 82 of file MeasurementTrackerImpl.h.

82 { return findDet(id); }
const MeasurementDet * findDet(const DetId &id) const
void MeasurementTrackerImpl::initGluedDet ( TkGluedMeasurementDet det,
const TrackerTopology trackerTopology 
)
protected

Definition at line 290 of file MeasurementTrackerImpl.cc.

References findDet(), GeomDet::geographicalId(), TkGluedMeasurementDet::init(), GluedGeomDet::monoDet(), TkGluedMeasurementDet::specificGeomDet(), GluedGeomDet::stereoDet(), and theDetMap.

Referenced by initialize().

290  {
291  const GluedGeomDet& gd = det.specificGeomDet();
292  const MeasurementDet* monoDet = findDet(gd.monoDet()->geographicalId());
293  const MeasurementDet* stereoDet = findDet(gd.stereoDet()->geographicalId());
294  if (monoDet == nullptr || stereoDet == nullptr) {
295  edm::LogError("MeasurementDet") << "MeasurementTracker ERROR: GluedDet components not found as MeasurementDets ";
296  throw MeasurementDetException("MeasurementTracker ERROR: GluedDet components not found as MeasurementDets");
297  }
298  det.init(monoDet, stereoDet, trackerTopology);
299  theDetMap[gd.geographicalId()] = &det;
300 }
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:19
const MeasurementDet * findDet(const DetId &id) const
Log< level::Error, false > LogError
const GluedGeomDet & specificGeomDet() const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
void init(const MeasurementDet *monoDet, const MeasurementDet *stereoDet, const TrackerTopology *tTopo)
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:20
void MeasurementTrackerImpl::initialize ( const TrackerTopology trackerTopology)
protected

Definition at line 102 of file MeasurementTrackerImpl.cc.

References addDets(), checkDets(), TrackerGeometry::detsPXB(), TrackerGeometry::detsPXF(), TrackerGeometry::detsTEC(), TrackerGeometry::detsTIB(), TrackerGeometry::detsTID(), TrackerGeometry::detsTOB(), TrackerGeometry::geomDetSubDetector(), mps_fire::i, StMeasurementConditionSet::id(), PxMeasurementConditionSet::id(), Phase2OTMeasurementConditionSet::id(), initGluedDet(), initPhase2OTMeasurementConditionSet(), initPxMeasurementConditionSet(), initStackDet(), initStMeasurementConditionSet(), GeomDetEnumerators::isTrackerPixel(), theDetMap, theGluedDets, thePhase2DetConditions, thePhase2Dets, thePixelDets, thePxDetConditions, theStackDets, theStDetConditions, theStripDets, and MeasurementTracker::theTrackerGeom.

Referenced by MeasurementTrackerImpl().

102  {
103  bool subIsPixel = false;
104  //FIXME:just temporary solution for phase2 :
105  //the OT is defined as PixelSubDetector!
106  bool subIsOT = false;
107 
108  //if the TkGeometry has the subDet vector filled, the theDetMap is filled, otherwise nothing should happen
109  if (!theTrackerGeom->detsPXB().empty()) {
111  theTrackerGeom->geomDetSubDetector(theTrackerGeom->detsPXB().front()->geographicalId().subdetId()));
112  addDets(theTrackerGeom->detsPXB(), subIsPixel, subIsOT);
113  }
114 
115  if (!theTrackerGeom->detsPXF().empty()) {
117  theTrackerGeom->geomDetSubDetector(theTrackerGeom->detsPXF().front()->geographicalId().subdetId()));
118  addDets(theTrackerGeom->detsPXF(), subIsPixel, subIsOT);
119  }
120 
121  subIsOT = true;
122 
123  if (!theTrackerGeom->detsTIB().empty()) {
125  theTrackerGeom->geomDetSubDetector(theTrackerGeom->detsTIB().front()->geographicalId().subdetId()));
126  addDets(theTrackerGeom->detsTIB(), subIsPixel, subIsOT);
127  }
128 
129  if (!theTrackerGeom->detsTID().empty()) {
131  theTrackerGeom->geomDetSubDetector(theTrackerGeom->detsTID().front()->geographicalId().subdetId()));
132  addDets(theTrackerGeom->detsTID(), subIsPixel, subIsOT);
133  }
134 
135  if (!theTrackerGeom->detsTOB().empty()) {
137  theTrackerGeom->geomDetSubDetector(theTrackerGeom->detsTOB().front()->geographicalId().subdetId()));
138  addDets(theTrackerGeom->detsTOB(), subIsPixel, subIsOT);
139  }
140 
141  if (!theTrackerGeom->detsTEC().empty()) {
143  theTrackerGeom->geomDetSubDetector(theTrackerGeom->detsTEC().front()->geographicalId().subdetId()));
144  addDets(theTrackerGeom->detsTEC(), subIsPixel, subIsOT);
145  }
146 
147  // fist all stripdets
148  sortTKD(theStripDets);
150  for (unsigned int i = 0; i != theStripDets.size(); ++i)
152 
153  // now the glued dets
154  sortTKD(theGluedDets);
155  for (unsigned int i = 0; i != theGluedDets.size(); ++i)
156  initGluedDet(theGluedDets[i], trackerTopology);
157 
158  // then the pixels
159  sortTKD(thePixelDets);
161  for (unsigned int i = 0; i != thePixelDets.size(); ++i)
163 
164  // then the phase2 dets
165  sortTKD(thePhase2Dets);
167  for (unsigned int i = 0; i != thePhase2Dets.size(); ++i)
169 
170  // and then the stack dets, at last
171  sortTKD(theStackDets);
172  for (unsigned int i = 0; i != theStackDets.size(); ++i)
174 
175  if (!checkDets())
176  throw MeasurementDetException("Number of dets in MeasurementTracker not consistent with TrackerGeometry!");
177 }
const GeomDetEnumerators::SubDetector geomDetSubDetector(int subdet) const
unsigned int id(int i) const
std::vector< TkStripMeasurementDet > theStripDets
std::vector< TkStackMeasurementDet > theStackDets
StMeasurementConditionSet theStDetConditions
void addDets(const TrackingGeometry::DetContainer &dets, bool subIsPixel, bool subIsOT)
const TrackerGeometry * theTrackerGeom
std::vector< TkPhase2OTMeasurementDet > thePhase2Dets
unsigned int id(int i) const
unsigned int id(int i) const
void initGluedDet(TkGluedMeasurementDet &det, const TrackerTopology *trackerTopology)
const DetContainer & detsTEC() const
std::vector< TkPixelMeasurementDet > thePixelDets
void initPhase2OTMeasurementConditionSet(std::vector< TkPhase2OTMeasurementDet > &phase2Dets)
void initStMeasurementConditionSet(std::vector< TkStripMeasurementDet > &stripDets)
const DetContainer & detsPXB() const
const DetContainer & detsTIB() const
std::vector< TkGluedMeasurementDet > theGluedDets
PxMeasurementConditionSet thePxDetConditions
Phase2OTMeasurementConditionSet thePhase2DetConditions
const DetContainer & detsPXF() const
const DetContainer & detsTOB() const
void initPxMeasurementConditionSet(std::vector< TkPixelMeasurementDet > &pixelDets)
void initStackDet(TkStackMeasurementDet &det)
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
const DetContainer & detsTID() const
void MeasurementTrackerImpl::initializePixelStatus ( const SiPixelQuality stripQuality,
const SiPixelFedCabling pixelCabling,
int  qualityFlags,
int  qualityDebugFlags 
)
protected

Definition at line 392 of file MeasurementTrackerImpl.cc.

References BadModules, BadROCs, SiPixelQuality::getBadRocPositions(), SiPixelQuality::getBadRocs(), mps_fire::i, SiPixelQuality::IsModuleUsable(), thePixelDets, MeasurementTracker::theTrackerGeom, and compareTotals::tot.

Referenced by MeasurementTrackerImpl().

395  {
396  if ((quality != nullptr) && (qualityFlags != 0)) {
397  edm::LogInfo("MeasurementTracker") << "qualityFlags = " << qualityFlags;
398  unsigned int on = 0, tot = 0, badrocs = 0;
399  for (std::vector<TkPixelMeasurementDet>::iterator i = thePixelDets.begin(); i != thePixelDets.end(); i++) {
400  uint32_t detid = ((*i).geomDet().geographicalId()).rawId();
401  if (qualityFlags & BadModules) {
402  bool isOn = quality->IsModuleUsable(detid);
403  (i)->setActive(isOn);
404  tot++;
405  on += (unsigned int)isOn;
406  if (qualityDebugFlags & BadModules) {
407  edm::LogInfo("MeasurementTracker")
408  << "MeasurementTrackerImpl::initializePixelStatus : detid " << detid << " is " << (isOn ? "on" : "off");
409  }
410  } else {
411  (i)->setActive(true);
412  }
413  if ((qualityFlags & BadROCs) && (quality->getBadRocs(detid) != 0)) {
414  std::vector<LocalPoint> badROCs = quality->getBadRocPositions(detid, *theTrackerGeom, pixelCabling);
415  badrocs += badROCs.size();
416  (i)->setBadRocPositions(badROCs);
417  } else {
418  (i)->clearBadRocPositions();
419  }
420  }
421  if (qualityDebugFlags & BadModules) {
422  edm::LogInfo("MeasurementTracker PixelModuleStatus")
423  << " Total modules: " << tot << ", active " << on << ", inactive " << (tot - on);
424  }
425  if (qualityDebugFlags & BadROCs) {
426  edm::LogInfo("MeasurementTracker PixelROCStatus") << " Total of bad ROCs: " << badrocs;
427  }
428  } else {
429  for (std::vector<TkPixelMeasurementDet>::iterator i = thePixelDets.begin(); i != thePixelDets.end(); i++) {
430  (i)->setActive(true); // module ON
431  }
432  }
433 }
uint32_t const *__restrict__ Quality * quality
const TrackerGeometry * theTrackerGeom
std::vector< TkPixelMeasurementDet > thePixelDets
Log< level::Info, false > LogInfo
void MeasurementTrackerImpl::initializeStripStatus ( const BadStripCutsDet badStripCuts,
const SiStripQuality stripQuality,
int  qualityFlags,
int  qualityDebugFlags 
)
protected

Definition at line 314 of file MeasurementTrackerImpl.cc.

References BadAPVFibers, BadModules, StMeasurementConditionSet::badStripCuts_, BadStrips, SiStripBadStrip::decode(), SiStripQuality::getBadApvs(), SiStripQuality::getBadFibers(), StMeasurementConditionSet::getBadStripBlocks(), SiStripBadStrip::getRange(), mps_fire::i, StMeasurementConditionSet::id(), SiStripQuality::IsModuleUsable(), dqmiolumiharvest::j, MaskBad128StripBlocks, StMeasurementConditionSet::nDet(), sistrip::SpyUtilities::range(), StMeasurementConditionSet::set128StripStatus(), StMeasurementConditionSet::setActive(), StMeasurementConditionSet::setMaskBad128StripBlocks(), SiStripDetId::TEC, MeasurementTrackerImpl::BadStripCutsDet::tec, theStDetConditions, SiStripDetId::TIB, MeasurementTrackerImpl::BadStripCutsDet::tib, SiStripDetId::TID, MeasurementTrackerImpl::BadStripCutsDet::tid, SiStripDetId::TOB, MeasurementTrackerImpl::BadStripCutsDet::tob, and compareTotals::tot.

Referenced by MeasurementTrackerImpl().

317  {
318  if (qualityFlags & BadStrips) {
323  }
325 
326  if ((quality != nullptr) && (qualityFlags != 0)) {
327  edm::LogInfo("MeasurementTracker") << "qualityFlags = " << qualityFlags;
328  unsigned int on = 0, tot = 0;
329  unsigned int foff = 0, ftot = 0, aoff = 0, atot = 0;
330  for (int i = 0; i != theStDetConditions.nDet(); i++) {
331  uint32_t detid = theStDetConditions.id(i);
332  if (qualityFlags & BadModules) {
333  bool isOn = quality->IsModuleUsable(detid);
335  tot++;
336  on += (unsigned int)isOn;
337  if (qualityDebugFlags & BadModules) {
338  edm::LogInfo("MeasurementTracker")
339  << "MeasurementTrackerImpl::initializeStripStatus : detid " << detid << " is " << (isOn ? "on" : "off");
340  }
341  } else {
343  }
344  // first turn all APVs and fibers ON
346  if (qualityFlags & BadAPVFibers) {
347  short badApvs = quality->getBadApvs(detid);
348  short badFibers = quality->getBadFibers(detid);
349  for (int j = 0; j < 6; j++) {
350  atot++;
351  if (badApvs & (1 << j)) {
353  aoff++;
354  }
355  }
356  for (int j = 0; j < 3; j++) {
357  ftot++;
358  if (badFibers & (1 << j)) {
360  theStDetConditions.set128StripStatus(i, false, 2 * j + 1);
361  foff++;
362  }
363  }
364  }
365  auto& badStrips = theStDetConditions.getBadStripBlocks(i);
366  badStrips.clear();
367  if (qualityFlags & BadStrips) {
368  SiStripBadStrip::Range range = quality->getRange(detid);
369  for (SiStripBadStrip::ContainerIterator bit = range.first; bit != range.second; ++bit) {
370  badStrips.push_back(quality->decode(*bit));
371  }
372  }
373  }
374  if (qualityDebugFlags & BadModules) {
375  edm::LogInfo("MeasurementTracker StripModuleStatus")
376  << " Total modules: " << tot << ", active " << on << ", inactive " << (tot - on);
377  }
378  if (qualityDebugFlags & BadAPVFibers) {
379  edm::LogInfo("MeasurementTracker StripAPVStatus")
380  << " Total APVs: " << atot << ", active " << (atot - aoff) << ", inactive " << (aoff);
381  edm::LogInfo("MeasurementTracker StripFiberStatus")
382  << " Total Fibers: " << ftot << ", active " << (ftot - foff) << ", inactive " << (foff);
383  }
384  } else {
385  for (int i = 0; i != theStDetConditions.nDet(); i++) {
386  theStDetConditions.setActive(i, true); // module ON
387  theStDetConditions.set128StripStatus(i, true); // all APVs and fibers ON
388  }
389  }
390 }
StMeasurementConditionSet theStDetConditions
static constexpr auto TID
Definition: SiStripDetId.h:38
uint32_t const *__restrict__ Quality * quality
std::vector< unsigned int >::const_iterator ContainerIterator
const uint16_t range(const Frame &aFrame)
unsigned int id(int i) const
void setActive(int i, bool active)
Turn on/off the module for reconstruction, for the full run or lumi (using info from DB...
std::vector< BadStripBlock > & getBadStripBlocks(int i)
static constexpr auto TOB
Definition: SiStripDetId.h:39
Log< level::Info, false > LogInfo
void setMaskBad128StripBlocks(bool maskThem)
static constexpr auto TIB
Definition: SiStripDetId.h:37
std::pair< ContainerIterator, ContainerIterator > Range
tuple badStripCuts
void set128StripStatus(int i, bool good, int idx=-1)
static constexpr auto TEC
Definition: SiStripDetId.h:40
void MeasurementTrackerImpl::initPhase2OTMeasurementConditionSet ( std::vector< TkPhase2OTMeasurementDet > &  phase2Dets)
protected

Definition at line 206 of file MeasurementTrackerImpl.cc.

References mps_fire::i, Phase2OTMeasurementConditionSet::id_, Phase2OTMeasurementConditionSet::init(), findQualityFiles::size, and thePhase2DetConditions.

Referenced by initialize().

206  {
207  // assume vector is full and ordered!
208  int size = phase2Dets.size();
210 
211  for (int i = 0; i != size; ++i) {
212  auto& mdet = phase2Dets[i];
213  mdet.setIndex(i);
214  thePhase2DetConditions.id_[i] = mdet.specificGeomDet().geographicalId().rawId();
215  }
216 }
std::vector< unsigned int > id_
Phase2OTMeasurementConditionSet thePhase2DetConditions
tuple size
Write out results.
void MeasurementTrackerImpl::initPxMeasurementConditionSet ( std::vector< TkPixelMeasurementDet > &  pixelDets)
protected

Definition at line 194 of file MeasurementTrackerImpl.cc.

References mps_fire::i, PxMeasurementConditionSet::id_, PxMeasurementConditionSet::init(), findQualityFiles::size, and thePxDetConditions.

Referenced by initialize().

194  {
195  // assume vector is full and ordered!
196  int size = pixelDets.size();
197  thePxDetConditions.init(size);
198 
199  for (int i = 0; i != size; ++i) {
200  auto& mdet = pixelDets[i];
201  mdet.setIndex(i);
202  thePxDetConditions.id_[i] = mdet.specificGeomDet().geographicalId().rawId();
203  }
204 }
const std::vector< TkPixelMeasurementDet > & pixelDets() const
std::vector< unsigned int > id_
PxMeasurementConditionSet thePxDetConditions
tuple size
Write out results.
void MeasurementTrackerImpl::initStackDet ( TkStackMeasurementDet det)
protected

Definition at line 302 of file MeasurementTrackerImpl.cc.

References findDet(), GeomDet::geographicalId(), TkStackMeasurementDet::init(), StackGeomDet::lowerDet(), TkStackMeasurementDet::specificGeomDet(), theDetMap, and StackGeomDet::upperDet().

Referenced by initialize().

302  {
303  const StackGeomDet& gd = det.specificGeomDet();
304  const MeasurementDet* lowerDet = findDet(gd.lowerDet()->geographicalId());
305  const MeasurementDet* upperDet = findDet(gd.upperDet()->geographicalId());
306  if (lowerDet == nullptr || upperDet == nullptr) {
307  edm::LogError("MeasurementDet") << "MeasurementTracker ERROR: StackDet components not found as MeasurementDets ";
308  throw MeasurementDetException("MeasurementTracker ERROR: StackDet components not found as MeasurementDets");
309  }
310  det.init(lowerDet, upperDet);
311  theDetMap[gd.geographicalId()] = &det;
312 }
const GeomDetUnit * lowerDet() const
Definition: StackGeomDet.h:19
const MeasurementDet * findDet(const DetId &id) const
Log< level::Error, false > LogError
void init(const MeasurementDet *lowerDet, const MeasurementDet *upperDet)
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
const GeomDetUnit * upperDet() const
Definition: StackGeomDet.h:20
const StackGeomDet & specificGeomDet() const
void MeasurementTrackerImpl::initStMeasurementConditionSet ( std::vector< TkStripMeasurementDet > &  stripDets)
protected

Definition at line 179 of file MeasurementTrackerImpl.cc.

References mps_fire::i, StMeasurementConditionSet::id_, StMeasurementConditionSet::init(), findQualityFiles::size, DetId::subdetId(), StMeasurementConditionSet::subId_, theStDetConditions, and StMeasurementConditionSet::totalStrips_.

Referenced by initialize().

179  {
180  // assume vector is full and ordered!
181  int size = stripDets.size();
182  theStDetConditions.init(size);
183  for (int i = 0; i != size; ++i) {
184  auto& mdet = stripDets[i];
185  mdet.setIndex(i);
186  //intialize the detId !
187  theStDetConditions.id_[i] = mdet.specificGeomDet().geographicalId().rawId();
189  //initalize the total number of strips
190  theStDetConditions.totalStrips_[i] = mdet.specificGeomDet().specificTopology().nstrips();
191  }
192 }
StMeasurementConditionSet theStDetConditions
std::vector< unsigned char > subId_
const std::vector< TkStripMeasurementDet > & stripDets() 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
std::vector< int > totalStrips_
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
std::vector< unsigned int > id_
tuple size
Write out results.
const Phase2OTMeasurementConditionSet& MeasurementTrackerImpl::phase2DetConditions ( ) const
inlineoverridevirtual

Implements MeasurementTracker.

Definition at line 106 of file MeasurementTrackerImpl.h.

106 { return thePhase2DetConditions; }
Phase2OTMeasurementConditionSet thePhase2DetConditions
const PxMeasurementConditionSet& MeasurementTrackerImpl::pixelDetConditions ( ) const
inlineoverridevirtual

Implements MeasurementTracker.

Definition at line 105 of file MeasurementTrackerImpl.h.

105 { return thePxDetConditions; }
PxMeasurementConditionSet thePxDetConditions
const std::vector<TkPixelMeasurementDet>& MeasurementTrackerImpl::pixelDets ( ) const
inline

Definition at line 100 of file MeasurementTrackerImpl.h.

100 { return thePixelDets; }
std::vector< TkPixelMeasurementDet > thePixelDets
const std::vector<TkStackMeasurementDet>& MeasurementTrackerImpl::stackDets ( ) const
inline

Definition at line 102 of file MeasurementTrackerImpl.h.

102 { return theStackDets; }
std::vector< TkStackMeasurementDet > theStackDets
const StMeasurementConditionSet& MeasurementTrackerImpl::stripDetConditions ( ) const
inlineoverridevirtual

Provide templates to be filled in.

Implements MeasurementTracker.

Definition at line 104 of file MeasurementTrackerImpl.h.

104 { return theStDetConditions; }
StMeasurementConditionSet theStDetConditions
const std::vector<TkStripMeasurementDet>& MeasurementTrackerImpl::stripDets ( ) const
inline

Definition at line 99 of file MeasurementTrackerImpl.h.

99 { return theStripDets; }
std::vector< TkStripMeasurementDet > theStripDets

Member Data Documentation

DetContainer MeasurementTrackerImpl::theDetMap
protected

Definition at line 113 of file MeasurementTrackerImpl.h.

Referenced by checkDets(), initGluedDet(), initialize(), and initStackDet().

std::vector<TkGluedMeasurementDet> MeasurementTrackerImpl::theGluedDets
protected

Definition at line 118 of file MeasurementTrackerImpl.h.

Referenced by addGluedDet(), and initialize().

Phase2OTMeasurementConditionSet MeasurementTrackerImpl::thePhase2DetConditions
protected
std::vector<TkPhase2OTMeasurementDet> MeasurementTrackerImpl::thePhase2Dets
protected

Definition at line 117 of file MeasurementTrackerImpl.h.

Referenced by addPhase2Det(), and initialize().

const SiPixelFedCabling* MeasurementTrackerImpl::thePixelCabling
protected

Definition at line 121 of file MeasurementTrackerImpl.h.

std::vector<TkPixelMeasurementDet> MeasurementTrackerImpl::thePixelDets
protected

Definition at line 115 of file MeasurementTrackerImpl.h.

Referenced by addPixelDet(), initialize(), and initializePixelStatus().

PxMeasurementConditionSet MeasurementTrackerImpl::thePxDetConditions
protected
std::vector<TkStackMeasurementDet> MeasurementTrackerImpl::theStackDets
protected

Definition at line 119 of file MeasurementTrackerImpl.h.

Referenced by addStackDet(), and initialize().

StMeasurementConditionSet MeasurementTrackerImpl::theStDetConditions
protected
std::vector<TkStripMeasurementDet> MeasurementTrackerImpl::theStripDets
protected

Definition at line 116 of file MeasurementTrackerImpl.h.

Referenced by addStripDet(), and initialize().