File indexing completed on 2023-03-17 11:21:18
0001 #ifndef RecoParticleFlow_PFTracking_PFCheckHitPattern_H
0002 #define RecoParticleFlow_PFTracking_PFCheckHitPattern_H
0003
0004
0005 #include <memory>
0006 #include "FWCore/Framework/interface/Frameworkfwd.h"
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "FWCore/Framework/interface/MakerMacros.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010
0011 #include "FWCore/Framework/interface/EventSetup.h"
0012 #include "DataFormats/TrackReco/interface/Track.h"
0013 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0014 #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h"
0015 #include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
0016 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0017
0018 #define DEBUG_CHECKHITPATTERN
0019
0020 class DetId;
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 class PFCheckHitPattern {
0034 public:
0035 PFCheckHitPattern() : geomInitDone_(false) {}
0036
0037 ~PFCheckHitPattern() {}
0038
0039 typedef std::pair<unsigned int, unsigned int> PFTrackHitInfo;
0040 typedef std::pair<PFTrackHitInfo, PFTrackHitInfo> PFTrackHitFullInfo;
0041
0042
0043
0044
0045
0046
0047 PFTrackHitFullInfo analyze(const TrackerTopology* tkerTopo,
0048 const TrackerGeometry* tkerGeom,
0049 const reco::TrackBaseRef track,
0050 const TransientVertex& vert);
0051
0052
0053 void print(const reco::TrackBaseRef track) const;
0054
0055 private:
0056
0057 void init(const TrackerTopology*, const TrackerGeometry*);
0058
0059
0060
0061 typedef std::pair<uint32_t, uint32_t> DetInfo;
0062
0063
0064 static bool barrel(uint32_t subDet);
0065
0066 void print(const reco::HitPattern::HitCategory, const reco::HitPattern& hp) const;
0067
0068 private:
0069
0070 bool geomInitDone_;
0071
0072
0073
0074 typedef std::map<DetInfo, std::pair<double, double> > RZrangeMap;
0075 RZrangeMap rangeRorZ_;
0076 };
0077
0078 #endif