41 for (
unsigned int i = 0;
i < dets.size();
i++) {
44 uint32_t subDet = detInfo.first;
48 if (this->
barrel(subDet)) {
49 r_or_z = dets[
i]->position().perp();
67 rangeRorZ_[detInfo] = std::pair<double, double>(minRZ, maxRZ);
70 #ifdef DEBUG_CHECKHITPATTERN 71 RZrangeMap::const_iterator
d;
74 std::pair<double, double> rangeRZ =
d->second;
75 std::std::cout <<
"CHECKHITPATTERN: Tracker subdetector type=" << detInfo.first <<
" layer=" << detInfo.second
76 <<
" has min r (or z) =" << rangeRZ.first <<
" and max r (or z) = " << rangeRZ.second
100 throw cms::Exception(
"CheckHitPattern::operator() called before CheckHitPattern::init");
108 bool trkGoesInsideOut =
109 fabs(reco::deltaPhi<const GlobalVector, const GlobalPoint>(p3_trk, vert.
position())) < 0.5 *
M_PI;
111 LogDebug(
"CHP") <<
"TRACK: in-->out ? " << trkGoesInsideOut <<
" dxy=" <<
track.dxy() <<
" sz=" <<
track.dz()
112 <<
" eta=" <<
track.eta() <<
" barrel hits=" <<
track.hitPattern().numberOfValidPixelHits() <<
"/" 113 <<
track.hitPattern().numberOfValidStripTIBHits() <<
"/" 114 <<
track.hitPattern().numberOfValidStripTOBHits();
122 unsigned int nHitBefore = 0;
144 unsigned int nMissHitAfter = 0;
157 if (vert.
position().
perp() < minRZ || !trkGoesInsideOut)
167 result.hitsInFrontOfVert = nHitBefore;
168 result.missHitsAfterVert = nMissHitAfter;
175 std::cout <<
"=== Hits on Track ===" << std::endl;
177 std::cout <<
"=== Hits before track ===" << std::endl;
187 std::cout <<
"hit " <<
i <<
" subdet=" << subdet <<
" layer=" <<
layer <<
" type " <<
hp.getHitType(
hit)
static uint32_t getLayer(uint16_t pattern)
std::pair< uint32_t, uint32_t > DetInfo
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
static bool missingHitFilter(uint16_t pattern)
unsigned int layer(const DetId &id) const
constexpr std::array< uint8_t, layerIndexSize > layer
static bool validHitFilter(uint16_t pattern)
reco::TransientTrack build(const reco::Track *p) const
U second(std::pair< T, U > const &p)
std::vector< const GeomDet * > DetContainer
TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const GlobalPoint &point) const
T const * product() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
static constexpr auto TOB
Result operator()(const reco::Track &track, const VertexState &vert) const
static uint32_t getSubStructure(uint16_t pattern)
void init(const edm::EventSetup &iSetup)
static bool trackerHitFilter(uint16_t pattern)
static constexpr auto TIB
static DetInfo interpretDetId(DetId detId, const TrackerTopology *tTopo)
static void print(const reco::Track &track)
static int position[264][3]
edm::ESHandle< TransientTrackBuilder > trkTool_
static bool barrel(uint32_t subDet)
GlobalPoint position() const