|
|
#include <SimpleDAFHitCollector.h>
Definition at line 17 of file SimpleDAFHitCollector.h.
◆ SimpleDAFHitCollector()
◆ ~SimpleDAFHitCollector()
SimpleDAFHitCollector::~SimpleDAFHitCollector |
( |
| ) |
|
|
inlineoverride |
◆ clone()
◆ Debug()
Definition at line 156 of file SimpleDAFHitCollector.cc.
158 for (vector<TrajectoryMeasurement>::const_iterator itrajmeas = TM.begin(); itrajmeas < TM.end(); itrajmeas++) {
159 if (itrajmeas->recHit()->isValid()) {
160 LogTrace(
"MultiRecHitCollector") <<
" Valid Hit with DetId " << itrajmeas->recHit()->geographicalId().rawId()
162 << itrajmeas->recHit()->dimension()
164 <<
" local position " << itrajmeas->recHit()->hit()->localPosition()
165 <<
" global position " << itrajmeas->recHit()->hit()->globalPosition()
166 <<
" and r " << itrajmeas->recHit()->hit()->globalPosition().perp();
168 DetId hitId = itrajmeas->recHit()->geographicalId();
191 LogTrace(
"MultiRecHitCollector") <<
" UNKNOWN TRACKER HIT TYPE ";
202 LogTrace(
"MultiRecHitCollector") <<
" UNKNOWN MUON HIT TYPE ";
204 LogTrace(
"MultiRecHitCollector") <<
" UNKNOWN HIT TYPE ";
206 LogTrace(
"MultiRecHitCollector") <<
" TSOS predicted_fwd " << itrajmeas->predictedState().localPosition();
207 LogTrace(
"MultiRecHitCollector") <<
" TSOS predicted_bwd "
208 << itrajmeas->backwardPredictedState().localPosition();
209 LogTrace(
"MultiRecHitCollector") <<
" TSOS smoothtsos " << itrajmeas->updatedState().localPosition();
211 LogTrace(
"MultiRecHitCollector") <<
" Invalid Hit with DetId " << itrajmeas->recHit()->geographicalId().rawId();
213 LogTrace(
"MultiRecHitCollector") <<
"\n";
References MuonSubdetId::CSC, DetId::det(), MuonSubdetId::DT, LogTrace, DetId::Muon, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, MuonSubdetId::RPC, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, and DetId::Tracker.
◆ getEstimator()
◆ getPropagator()
const Propagator* SimpleDAFHitCollector::getPropagator |
( |
| ) |
const |
|
inline |
◆ getUpdator()
◆ recHits()
Implements MultiRecHitCollector.
Definition at line 28 of file SimpleDAFHitCollector.cc.
30 LogTrace(
"MultiRecHitCollector") <<
" Calling SimpleDAFHitCollector::recHits" << std::endl;
34 const vector<TrajectoryMeasurement>& meas = traj.
measurements();
35 unsigned int hitcounter = 1;
38 return vector<TrajectoryMeasurement>();
40 LogTrace(
"MultiRecHitCollector") <<
" Original measurements are:";
45 vector<TrajectoryMeasurement>
result;
46 for (vector<TrajectoryMeasurement>::const_reverse_iterator itrajmeas = meas.rbegin(); itrajmeas < meas.rend();
47 itrajmeas++, hitcounter++) {
48 DetId id = itrajmeas->recHit()->geographicalId();
52 std::vector<const TrackingRecHit*>
hits;
53 std::vector<std::unique_ptr<const TrackingRecHit>> hitsOwner;
62 LogTrace(
"MultiRecHitCollector") <<
"Something wrong! no valid TSOS found in current group ";
68 if (hitcounter == meas.size())
69 combtsos = predtsos_fwd;
70 else if (hitcounter == 1)
71 combtsos = predtsos_bwd;
73 combtsos =
combiner(predtsos_bwd, predtsos_fwd);
77 LogTrace(
"MultiRecHitCollector") <<
" Found " << tmps.
size() <<
" compatible measurements";
79 for (std::size_t
i = 0;
i != tmps.
size(); ++
i) {
80 DetId idtemps = tmps.
hits[
i]->geographicalId();
82 if (idtemps ==
id && tmps.
hits[
i]->hit()->isValid()) {
83 LogTrace(
"MultiRecHitCollector") <<
" This is valid with position " << tmps.
hits[
i]->hit()->localPosition()
84 <<
" and error " << tmps.
hits[
i]->hit()->localPositionError();
90 hits.push_back(hitsOwner.back().get());
99 LogTrace(
"MultiRecHitCollector") <<
" -> but no valid hits found in current group.";
109 if (!itrajmeas->recHit()->isValid())
111 <<
" -> " <<
hits.size() <<
" valid hits for this sensor. (IT WAS INVALID!!!)";
113 LogTrace(
"MultiRecHitCollector") <<
" -> " <<
hits.size() <<
" valid hits for this sensor.";
119 LogTrace(
"MultiRecHitCollector") <<
" No measurements found in current group.";
130 LogTrace(
"MultiRecHitCollector") <<
" Ending SimpleDAFHitCollector::recHits >> " <<
result.size();
140 for (vector<TrajectoryMeasurement>::const_iterator iimeas =
result.begin(); iimeas !=
result.end(); ++iimeas) {
141 if (iimeas->recHit()->isValid())
148 return vector<TrajectoryMeasurement>();
152 return vector<TrajectoryMeasurement>();
References heavyFlavorValidationHarvestingSequence_cff::combiner, Debug, MeasurementDet::geomDet(), hfClusterShapes_cfi::hits, tracking::TempMeasurements::hits, mps_fire::i, TrajectoryStateOnSurface::isValid(), LogTrace, MeasurementDetWithData::mdet(), MeasurementDetWithData::measurements(), Trajectory::measurements(), TrackingRecHit::missing, eostools::move(), mps_fire::result, and tracking::TempMeasurements::size().
◆ rightdimension()
Definition at line 55 of file SimpleDAFHitCollector.h.
56 if (!
hit.isValid() || (
hit.dimension() != 2)) {
57 return std::unique_ptr<TrackingRecHit>{
hit.clone()};
59 auto const& thit = static_cast<BaseTrackerRecHit const&>(
hit);
60 auto const& clus = thit.firstClusterRef();
62 return std::unique_ptr<TrackingRecHit>{
hit.clone()};
63 else if (clus.isPhase2())
64 return std::unique_ptr<TrackingRecHit>{
hit.clone()};
65 else if (thit.isMatched()) {
66 LogDebug(
"MultiRecHitCollector") <<
" SiStripMatchedRecHit2D to check!!!";
67 return std::unique_ptr<TrackingRecHit>{
hit.clone()};
68 }
else if (thit.isProjected()) {
69 edm::LogError(
"MultiRecHitCollector") <<
" ProjectedSiStripRecHit2D should not be present at this stage!!!";
70 return std::unique_ptr<TrackingRecHit>{
hit.clone()};
References clone(), and LogDebug.
◆ debug_
const bool SimpleDAFHitCollector::debug_ |
|
private |
◆ theEstimator
◆ theHitCloner
◆ thePropagator
const Propagator* SimpleDAFHitCollector::thePropagator |
|
private |
◆ theTopology
◆ theUpdator
const TrackerTopology * theTopology
void Debug(const std::vector< TrajectoryMeasurement > TM) const
TrackingRecHit::ConstRecHitPointer makeShared(SiPixelRecHit const &hit, TrajectoryStateOnSurface const &tsos) const override
constexpr Detector det() const
get the detector field from this detid
MultiRecHitCollector(const MeasurementTracker *meas)
const MeasurementEstimator * theEstimator
std::shared_ptr< TrackingRecHit const > RecHitPointer
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
unsigned int tidWheel(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
const TransientTrackingRecHitBuilder * getBuilder() const
static constexpr auto TIB
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
std::unique_ptr< TrackingRecHit > clone(BaseTrackerRecHit const &hit2D) const
TkClonerImpl theHitCloner
virtual TransientTrackingRecHit::RecHitPointer buildMultiRecHit(const std::vector< const TrackingRecHit * > &rhv, const TrajectoryStateOnSurface &tsos, MeasurementDetWithData &measDet, float annealing=1.) const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const SiTrackerMultiRecHitUpdator * theUpdator
unsigned int pxfDisk(const DetId &id) const
Log< level::Error, false > LogError
DataContainer const & measurements() const
const MeasurementDet & mdet() const
std::unique_ptr< TrackingRecHit > rightdimension(TrackingRecHit const &hit) const
unsigned int tobLayer(const DetId &id) const
static constexpr auto TEC
const Propagator * thePropagator
static constexpr auto TOB
unsigned int tecWheel(const DetId &id) const
static constexpr auto TID
bool measurements(const TrajectoryStateOnSurface &stateOnThisDet, const MeasurementEstimator &est, TempMeasurements &result) const
unsigned int tibLayer(const DetId &id) const
virtual const GeomDet & geomDet() const
const MeasurementEstimator * getEstimator() const