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()
122 unsigned int nHitBefore = 0;
128 DetInfo detInfo(subDet, layer);
144 unsigned int nMissHitAfter = 0;
151 DetInfo detInfo(subDet, layer);
157 if (vert.
position().
perp() < minRZ || !trkGoesInsideOut)
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
static const char category[]
Result operator()(const reco::Track &track, const VertexState &vert) const
static bool missingHitFilter(uint16_t pattern)
GlobalPoint position() const
int numberOfValidStripTOBHits() const
constexpr std::array< uint8_t, layerIndexSize > layer
static bool validHitFilter(uint16_t pattern)
U second(std::pair< T, U > const &p)
unsigned int missHitsAfterVert
std::vector< const GeomDet * > DetContainer
unsigned int hitsInFrontOfVert
double eta() const
pseudorapidity of momentum vector
static uint32_t getHitType(uint16_t pattern)
if(conf_.getParameter< bool >("UseStripCablingDB"))
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
int numberOfAllHits(HitCategory category) const
static constexpr auto TOB
static uint32_t getSubStructure(uint16_t pattern)
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
void init(const edm::EventSetup &iSetup)
static bool trackerHitFilter(uint16_t pattern)
static constexpr auto TIB
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
static DetInfo interpretDetId(DetId detId, const TrackerTopology *tTopo)
TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const GlobalPoint &point) const
static void print(const reco::Track &track)
T const * product() const
int numberOfValidStripTIBHits() const
unsigned int layer(const DetId &id) const
static int position[264][3]
int numberOfValidPixelHits() const
edm::ESHandle< TransientTrackBuilder > trkTool_
static bool barrel(uint32_t subDet)
uint16_t getHitPattern(HitCategory category, int position) const
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...