CMS 3D CMS Logo

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 Phase2OTMeasurementConditionSetphase2DetConditions () 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< TkGluedMeasurementDettheGluedDets
 
Phase2OTMeasurementConditionSet thePhase2DetConditions
 
std::vector< TkPhase2OTMeasurementDetthePhase2Dets
 
const SiPixelFedCablingthePixelCabling
 
std::vector< TkPixelMeasurementDetthePixelDets
 
PxMeasurementConditionSet thePxDetConditions
 
std::vector< TkStackMeasurementDettheStackDets
 
StMeasurementConditionSet theStDetConditions
 
std::vector< TkStripMeasurementDettheStripDets
 
- Protected Attributes inherited from MeasurementTracker
const GeometricSearchTrackertheGeometricSearchTracker
 
const TrackerGeometrytheTrackerGeom
 

Detailed Description

Definition at line 38 of file MeasurementTrackerImpl.h.

Member Typedef Documentation

◆ DetContainer

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

Definition at line 95 of file MeasurementTrackerImpl.h.

Member Enumeration Documentation

◆ QualityFlags

Enumerator
BadModules 
BadAPVFibers 
BadStrips 
MaskBad128StripBlocks 
BadROCs 

Definition at line 40 of file MeasurementTrackerImpl.h.

Constructor & Destructor Documentation

◆ MeasurementTrackerImpl()

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().

92  theStDetConditions(hitMatcher, stripCPE),
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)
const GeometricSearchTracker * geometricSearchTracker() const
PxMeasurementConditionSet thePxDetConditions
Phase2OTMeasurementConditionSet thePhase2DetConditions

◆ ~MeasurementTrackerImpl()

MeasurementTrackerImpl::~MeasurementTrackerImpl ( )
override

Definition at line 100 of file MeasurementTrackerImpl.cc.

100 {}

Member Function Documentation

◆ addDets()

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 }
virtual bool isLeaf() const
is a Unit
Definition: GeomDet.h:70
void addStripDet(const GeomDet *gd)
void addStackDet(const StackGeomDet *gd)
void addPixelDet(const GeomDet *gd)
void addPhase2Det(const GeomDet *gd)
void addGluedDet(const GluedGeomDet *gd)

◆ addGluedDet()

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 StripClusterParameterEstimator * stripCPE() const
const SiStripRecHitMatcher * matcher() const
std::vector< TkGluedMeasurementDet > theGluedDets

◆ addPhase2Det()

void MeasurementTrackerImpl::addPhase2Det ( const GeomDet gd)
protected

Definition at line 272 of file MeasurementTrackerImpl.cc.

References submitPVResolutionJobs::err, thePhase2DetConditions, and thePhase2Dets.

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
Phase2OTMeasurementConditionSet thePhase2DetConditions

◆ addPixelDet()

void MeasurementTrackerImpl::addPixelDet ( const GeomDet gd)
protected

Definition at line 264 of file MeasurementTrackerImpl.cc.

References submitPVResolutionJobs::err, thePixelDets, and thePxDetConditions.

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
PxMeasurementConditionSet thePxDetConditions

◆ addStackDet()

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

◆ addStripDet()

void MeasurementTrackerImpl::addStripDet ( const GeomDet gd)
protected

Definition at line 256 of file MeasurementTrackerImpl.cc.

References submitPVResolutionJobs::err, theStDetConditions, and theStripDets.

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

◆ allDets()

const DetContainer& MeasurementTrackerImpl::allDets ( ) const
inline

For debug only.

Definition at line 98 of file MeasurementTrackerImpl.h.

98 { return theDetMap; }

◆ checkDets()

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)

◆ findDet()

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  }

◆ geometricSearchTracker()

const GeometricSearchTracker* MeasurementTrackerImpl::geometricSearchTracker ( ) const
inline

Definition at line 75 of file MeasurementTrackerImpl.h.

References MeasurementTracker::theGeometricSearchTracker.

75 { return theGeometricSearchTracker; }
const GeometricSearchTracker * theGeometricSearchTracker

◆ geomTracker()

const TrackerGeometry* MeasurementTrackerImpl::geomTracker ( ) const
inline

Definition at line 73 of file MeasurementTrackerImpl.h.

References MeasurementTracker::theTrackerGeom.

73 { return theTrackerGeom; }
const TrackerGeometry * theTrackerGeom

◆ gluedDets()

const std::vector<TkGluedMeasurementDet>& MeasurementTrackerImpl::gluedDets ( ) const
inline

Definition at line 101 of file MeasurementTrackerImpl.h.

101 { return theGluedDets; }
std::vector< TkGluedMeasurementDet > theGluedDets

◆ idToDet()

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.

References data.

78  {
80  }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
const MeasurementDet * idToDetBare(const DetId &id, const MeasurementTrackerEvent &data) const

◆ idToDetBare()

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

◆ initGluedDet()

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 GluedGeomDet & specificGeomDet() const
Log< level::Error, false > LogError
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
const GeomDetUnit * monoDet() const
Definition: GluedGeomDet.h:19
const GeomDetUnit * stereoDet() const
Definition: GluedGeomDet.h:20
void init(const MeasurementDet *monoDet, const MeasurementDet *stereoDet, const TrackerTopology *tTopo)
const MeasurementDet * findDet(const DetId &id) const

◆ initialize()

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 DetContainer & detsTIB() const
std::vector< TkStripMeasurementDet > theStripDets
const DetContainer & detsPXB() const
std::vector< TkStackMeasurementDet > theStackDets
StMeasurementConditionSet theStDetConditions
unsigned int id(int i) const
void addDets(const TrackingGeometry::DetContainer &dets, bool subIsPixel, bool subIsOT)
const TrackerGeometry * theTrackerGeom
const DetContainer & detsPXF() const
std::vector< TkPhase2OTMeasurementDet > thePhase2Dets
unsigned int id(int i) const
void initGluedDet(TkGluedMeasurementDet &det, const TrackerTopology *trackerTopology)
const DetContainer & detsTOB() const
std::vector< TkPixelMeasurementDet > thePixelDets
void initPhase2OTMeasurementConditionSet(std::vector< TkPhase2OTMeasurementDet > &phase2Dets)
void initStMeasurementConditionSet(std::vector< TkStripMeasurementDet > &stripDets)
unsigned int id(int i) const
std::vector< TkGluedMeasurementDet > theGluedDets
PxMeasurementConditionSet thePxDetConditions
Phase2OTMeasurementConditionSet thePhase2DetConditions
const GeomDetEnumerators::SubDetector geomDetSubDetector(int subdet) const
const DetContainer & detsTEC() const
void initPxMeasurementConditionSet(std::vector< TkPixelMeasurementDet > &pixelDets)
void initStackDet(TkStackMeasurementDet &det)
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
const DetContainer & detsTID() const

◆ initializePixelStatus()

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, mps_fire::i, createfilelist::int, quality, 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 }
const TrackerGeometry * theTrackerGeom
std::vector< TkPixelMeasurementDet > thePixelDets
Log< level::Info, false > LogInfo
string quality

◆ initializeStripStatus()

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, HLTSiStripMonitoring_cff::badStripCuts, StMeasurementConditionSet::badStripCuts_, BadStrips, triggerObjects_cff::bit, StMeasurementConditionSet::getBadStripBlocks(), mps_fire::i, StMeasurementConditionSet::id(), createfilelist::int, dqmiolumiharvest::j, MaskBad128StripBlocks, StMeasurementConditionSet::nDet(), quality, FastTimerService_cff::range, StMeasurementConditionSet::set128StripStatus(), StMeasurementConditionSet::setActive(), StMeasurementConditionSet::setMaskBad128StripBlocks(), SiStripDetId::TEC, theStDetConditions, SiStripDetId::TIB, SiStripDetId::TID, SiStripDetId::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
std::vector< unsigned int >::const_iterator ContainerIterator
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)
unsigned int id(int i) const
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
void set128StripStatus(int i, bool good, int idx=-1)
string quality
static constexpr auto TEC
Definition: SiStripDetId.h:40

◆ initPhase2OTMeasurementConditionSet()

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 }
size
Write out results.
std::vector< unsigned int > id_
Phase2OTMeasurementConditionSet thePhase2DetConditions

◆ initPxMeasurementConditionSet()

void MeasurementTrackerImpl::initPxMeasurementConditionSet ( std::vector< TkPixelMeasurementDet > &  pixelDets)
protected

Definition at line 194 of file MeasurementTrackerImpl.cc.

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

Referenced by initialize().

194  {
195  // assume vector is full and ordered!
196  int size = pixelDets.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 }
size
Write out results.
std::vector< unsigned int > id_
PxMeasurementConditionSet thePxDetConditions
const std::vector< TkPixelMeasurementDet > & pixelDets() const

◆ initStackDet()

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 GeomDetUnit * upperDet() const
Definition: StackGeomDet.h:20
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 MeasurementDet * findDet(const DetId &id) const
const StackGeomDet & specificGeomDet() const

◆ initStMeasurementConditionSet()

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, stripDets(), DetId::subdetId(), StMeasurementConditionSet::subId_, theStDetConditions, and StMeasurementConditionSet::totalStrips_.

Referenced by initialize().

179  {
180  // assume vector is full and ordered!
181  int size = stripDets.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 }
size
Write out results.
StMeasurementConditionSet theStDetConditions
std::vector< unsigned char > subId_
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_
const std::vector< TkStripMeasurementDet > & stripDets() const
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
std::vector< unsigned int > id_

◆ phase2DetConditions()

const Phase2OTMeasurementConditionSet& MeasurementTrackerImpl::phase2DetConditions ( ) const
inlineoverridevirtual

Implements MeasurementTracker.

Definition at line 106 of file MeasurementTrackerImpl.h.

106 { return thePhase2DetConditions; }
Phase2OTMeasurementConditionSet thePhase2DetConditions

◆ pixelDetConditions()

const PxMeasurementConditionSet& MeasurementTrackerImpl::pixelDetConditions ( ) const
inlineoverridevirtual

Implements MeasurementTracker.

Definition at line 105 of file MeasurementTrackerImpl.h.

105 { return thePxDetConditions; }
PxMeasurementConditionSet thePxDetConditions

◆ pixelDets()

const std::vector<TkPixelMeasurementDet>& MeasurementTrackerImpl::pixelDets ( ) const
inline

Definition at line 100 of file MeasurementTrackerImpl.h.

Referenced by initPxMeasurementConditionSet().

100 { return thePixelDets; }
std::vector< TkPixelMeasurementDet > thePixelDets

◆ stackDets()

const std::vector<TkStackMeasurementDet>& MeasurementTrackerImpl::stackDets ( ) const
inline

Definition at line 102 of file MeasurementTrackerImpl.h.

102 { return theStackDets; }
std::vector< TkStackMeasurementDet > theStackDets

◆ stripDetConditions()

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

◆ stripDets()

const std::vector<TkStripMeasurementDet>& MeasurementTrackerImpl::stripDets ( ) const
inline

Definition at line 99 of file MeasurementTrackerImpl.h.

Referenced by initStMeasurementConditionSet().

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

Member Data Documentation

◆ theDetMap

DetContainer MeasurementTrackerImpl::theDetMap
protected

Definition at line 113 of file MeasurementTrackerImpl.h.

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

◆ theGluedDets

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

Definition at line 118 of file MeasurementTrackerImpl.h.

Referenced by addGluedDet(), and initialize().

◆ thePhase2DetConditions

Phase2OTMeasurementConditionSet MeasurementTrackerImpl::thePhase2DetConditions
protected

◆ thePhase2Dets

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

Definition at line 117 of file MeasurementTrackerImpl.h.

Referenced by addPhase2Det(), and initialize().

◆ thePixelCabling

const SiPixelFedCabling* MeasurementTrackerImpl::thePixelCabling
protected

Definition at line 121 of file MeasurementTrackerImpl.h.

◆ thePixelDets

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

Definition at line 115 of file MeasurementTrackerImpl.h.

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

◆ thePxDetConditions

PxMeasurementConditionSet MeasurementTrackerImpl::thePxDetConditions
protected

◆ theStackDets

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

Definition at line 119 of file MeasurementTrackerImpl.h.

Referenced by addStackDet(), and initialize().

◆ theStDetConditions

StMeasurementConditionSet MeasurementTrackerImpl::theStDetConditions
protected

◆ theStripDets

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

Definition at line 116 of file MeasurementTrackerImpl.h.

Referenced by addStripDet(), and initialize().