CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OnDemandMeasurementTracker.h
Go to the documentation of this file.
1 #ifndef RecoTracker_MeasurementDet_OnDemandMeasurementTracker_H
2 #define RecoTracker_MeasurementDet_OnDemandMeasurementTracker_H
3 
9 
10 #include "TkStripMeasurementDet.h"
11 #include<unordered_map>
12 
14 public:
17  const PixelClusterParameterEstimator* pixelCPE,
18  const StripClusterParameterEstimator* stripCPE,
19  const SiStripRecHitMatcher* hitMatcher,
20  const TrackerGeometry* trackerGeom,
22  const SiStripQuality *stripQuality,
23  int stripQualityFlags,
24  int stripQualityDebugFlags,
25  const SiPixelQuality *pixelQuality,
26  const SiPixelFedCabling *pixelCabling,
27  int pixelQualityFlags,
28  int pixelQualityDebugFlags,
29  const SiStripRegionCabling * stripRegionCabling,
30  bool isRegional=false);
33 
36 
39  RefGetter &, StMeasurementDetSet & ) const;
40 
42  const MeasurementDet * idToDetBare(const DetId& id, const MeasurementTrackerEvent &data) const ;
43 
44  private:
53 
56 
57  class DetODStatus {
58  public:
59  enum Kind { Pixel, Strip, Glued };
60  DetODStatus(const MeasurementDet * m) : mdet(m), index(-1), kind(Pixel) {}
62  int index;
64  };
65 
66  typedef std::unordered_map<unsigned int, DetODStatus> DetODContainer;
69  //int theNumberOfGluedDets;
70 
72  typedef std::vector<std::pair<SiStripRegionCabling::ElementIndex, std::vector<DetODContainer::const_iterator> > > RegionalMap;
74 
76  void assign(const TkStripMeasurementDet * csmdet,
77  const MeasurementTrackerEvent &data) const;
78 
80  std::string dumpCluster(const std::vector<SiStripCluster> ::const_iterator & begin, const std::vector<SiStripCluster> ::const_iterator& end)const;
81  std::string dumpRegion(std::pair<unsigned int,unsigned int> indexes,
82  const RefGetter & theGetter,
83  bool stayUnpacked = false)const;
84 
85 
86 };
87 
88 #endif
OnDemandMeasurementTracker(const edm::ParameterSet &conf, const PixelClusterParameterEstimator *pixelCPE, const StripClusterParameterEstimator *stripCPE, const SiStripRecHitMatcher *hitMatcher, const TrackerGeometry *trackerGeom, const GeometricSearchTracker *geometricSearchTracker, const SiStripQuality *stripQuality, int stripQualityFlags, int stripQualityDebugFlags, const SiPixelQuality *pixelQuality, const SiPixelFedCabling *pixelCabling, int pixelQualityFlags, int pixelQualityDebugFlags, const SiStripRegionCabling *stripRegionCabling, bool isRegional=false)
constructor
const MeasurementDet * idToDetBare(const DetId &id, const MeasurementTrackerEvent &data) const
MeasurementTrackerImpl interface.
void define(const edm::Handle< edm::LazyGetter< SiStripCluster > > &, RefGetter &, StMeasurementDetSet &) const
OnDemandMeasurementTracker specific function to be called to define the region in the RefGetter accor...
bool PixelOnDemand_
internal flag to do pixel on demand (not configurable) false by default
std::unordered_map< unsigned int, DetODStatus > DetODContainer
std::vector< std::pair< SiStripRegionCabling::ElementIndex, std::vector< DetODContainer::const_iterator > > > RegionalMap
mapping of elementIndex -&gt; iterator to the DetODMap: to know what are the regions that needs to be de...
const SiStripRegionCabling * theStripRegionCabling
the cabling region tool to update a RefGetter
void assign(const TkStripMeasurementDet *csmdet, const MeasurementTrackerEvent &data) const
assigne the cluster iterator to the TkStipMeasurementDet (const_cast in the way)
std::string dumpCluster(const std::vector< SiStripCluster >::const_iterator &begin, const std::vector< SiStripCluster >::const_iterator &end) const
some printouts, exclusively under LogDebug
edm::LazyGetter< SiStripCluster > LazyGetter
edm::RefGetter< SiStripCluster > RefGetter
DetODContainer theDetODMap
mapping of detid -&gt; MeasurementDet+flags+region_range
bool StayPacked_
internal flag to avoid unpacking things with LogDebug on
#define end
Definition: vmac.h:37
tuple conf
Definition: dbtoconf.py:185
bool StripOnDemand_
internal flag to do strip on demand (not configurable) true by default
std::string category_
log category
Definition: DetId.h:18
virtual ~OnDemandMeasurementTracker()
destructor
#define begin
Definition: vmac.h:30
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
std::string dumpRegion(std::pair< unsigned int, unsigned int > indexes, const RefGetter &theGetter, bool stayUnpacked=false) const
const GeometricSearchTracker * geometricSearchTracker() const