CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MeasurementTrackerEvent.h
Go to the documentation of this file.
1 #ifndef MeasurementTrackerEvent_H
2 #define MeasurementTrackerEvent_H
3 
4 #include <vector>
11 
15 #if defined(__GCCXML__) || defined(__CINT__)
16  #define MeasurementTrackerEvent_Hide_Impl
17  struct MeasurementTracker;
18 #else
20 #endif
21 
23 public:
24 #ifndef MeasurementTrackerEvent_Hide_Impl
26 #endif
27 
30 
32 
35  const std::vector<bool> & stripClustersToSkip = std::vector<bool>(),
36  const std::vector<bool> & pixelClustersToSkip = std::vector<bool>()):
37  theTracker(&tracker), theStripData(&strips), thePixelData(&pixels), theOwner(false),
39 
42  const std::vector<bool> & stripClustersToSkip = std::vector<bool>(),
43  const std::vector<bool> & pixelClustersToSkip = std::vector<bool>()):
44  theTracker(&tracker), theStripData(strips), thePixelData(pixels), theOwner(true),
46 
48  //MeasurementTrackerEvent(const MeasurementTrackerEvent &trackerEvent,
49  // const std::vector<bool> & stripClustersToSkip,
50  // const std::vector<bool> & pixelClustersToSkip):
51  // theTracker(trackerEvent.theTracker), theStripData(trackerEvent.theStripData), thePixelData(trackerEvent.thePixelData), theOwner(false)
52  // theStripClustersToSkip(stripClustersToSkip), thePixelClustersToSkip(pixelClustersToSkip) {}
53 
58 
63 
64 
66  theTracker(other.theTracker),
69  theOwner(false),
72  {
73  assert(other.theOwner == false && "trying to copy an owning pointer");
74  }
75 
77  {
78  if (&other != this) {
80  copy.swap(*this);
81  }
82  return *this;
83  }
84 
85 #ifndef MeasurementTrackerEvent_Hide_Impl
87  theTracker(other.theTracker),
90  theOwner(other.theOwner),
93  {
94  other.theTracker = 0;
95  other.theStripData = 0; other.thePixelData = 0;
96  other.theOwner = false;
97  }
98 
100  {
101  if (&other != this) {
103  copy.swap(*this);
104  }
105  return *this;
106  }
107 #endif
108 
109  void swap(MeasurementTrackerEvent &other) ;
110 
111  const MeasurementTracker & measurementTracker() const { return * theTracker; }
112  const StMeasurementDetSet & stripData() const { return * theStripData; }
113  const PxMeasurementDetSet & pixelData() const { return * thePixelData; }
114  const std::vector<bool> & stripClustersToSkip() const { return theStripClustersToSkip; }
115  const std::vector<bool> & pixelClustersToSkip() const { return thePixelClustersToSkip; }
116  bool isStripRegional() const ;
117 
118 #ifndef MeasurementTrackerEvent_Hide_Impl
119  // forwarded calls
122 
124  MeasurementDetWithData idToDet(const DetId& id) const { return measurementTracker().idToDet(id, *this); }
125 #endif
126 
127 protected:
131  bool theOwner; // do I own the two above?
132  // these two could be const pointers as well, but ContainerMask doesn't expose the vector
133  std::vector<bool> theStripClustersToSkip;
134  std::vector<bool> thePixelClustersToSkip;
135 };
136 
138 #endif // MeasurementTrackerEvent_H
void swap(ora::Record &rh, ora::Record &lh)
Definition: Record.h:70
MeasurementDetWithData idToDet(const DetId &id) const
Previous MeasurementDetSystem interface.
MeasurementTracker::QualityFlags QualityFlags
const TrackingGeometry * geomTracker() const
MeasurementTrackerEvent(const MeasurementTracker &tracker, const StMeasurementDetSet &strips, const PxMeasurementDetSet &pixels, const std::vector< bool > &stripClustersToSkip=std::vector< bool >(), const std::vector< bool > &pixelClustersToSkip=std::vector< bool >())
Real constructor 1: with the full data (not owned)
MeasurementTrackerEvent(MeasurementTrackerEvent &&other)
MeasurementTrackerEvent()
Dummy constructor used for I/O (even if it&#39;s a transient object)
const StMeasurementDetSet & stripData() const
const std::vector< bool > & pixelClustersToSkip() const
const std::vector< bool > & stripClustersToSkip() const
const StMeasurementDetSet * theStripData
void swap(MeasurementTrackerEvent &other)
const PxMeasurementDetSet * thePixelData
const PxMeasurementDetSet & pixelData() const
std::vector< bool > theStripClustersToSkip
const TrackingGeometry * geomTracker() const
MeasurementTrackerEvent & operator=(MeasurementTrackerEvent &&other)
const MeasurementTracker & measurementTracker() const
Definition: DetId.h:18
MeasurementTrackerEvent & operator=(const MeasurementTrackerEvent &other)
double b
Definition: hdecay.h:120
MeasurementTrackerEvent(const MeasurementTrackerEvent &other)
MeasurementTrackerEvent(const MeasurementTracker &tracker, const StMeasurementDetSet *strips, const PxMeasurementDetSet *pixels, const std::vector< bool > &stripClustersToSkip=std::vector< bool >(), const std::vector< bool > &pixelClustersToSkip=std::vector< bool >())
Real constructor 1: with the full data (owned)
double a
Definition: hdecay.h:121
const MeasurementTracker * theTracker
std::vector< bool > thePixelClustersToSkip
volatile std::atomic< bool > shutdown_flag false
const GeometricSearchTracker * geometricSearchTracker() const
const GeometricSearchTracker * geometricSearchTracker() const
virtual MeasurementDetWithData idToDet(const DetId &id, const MeasurementTrackerEvent &data) const =0
MeasurementDetSystem interface.