|
|
Go to the documentation of this file.
59 const std::vector<TrajectoryMeasurement>&,
106 std::map<unsigned int, std::vector<PSimHit*> >
idHitsMap;
138 if (isim->processType() == 9)
154 template <
unsigned int D>
160 LogTrace(
"CkfDebugger") <<
"parametersError=" <<
recHit->parametersError();
162 VecD
r = asSVector<D>(
recHit->parameters()) -
me.measuredParameters<
D>(*
recHit);
163 LogTrace(
"CkfDebugger") <<
"me.measuredParameters=" <<
me.measuredParameters<
D>(*recHit);
164 LogTrace(
"CkfDebugger") <<
"me.measuredError=" <<
me.measuredError<
D>(*recHit);
165 SMatDD
R = asSMatrix<D>(
recHit->parametersError()) +
me.measuredError<
D>(*
recHit);
169 LogTrace(
"CkfDebugger") <<
"R(-1)=" <<
R;
170 LogTrace(
"CkfDebugger") <<
"chi2=" << ROOT::Math::Similarity(
r,
R);
171 double pullX = (-
r[0]) *
sqrt(
R(0, 0));
173 if (VecD::Dim() >= 2) {
176 double pullY = (-r_1) *
sqrt(
R(1, 1));
177 LogTrace(
"CkfDebugger") <<
"pullX=" << pullX;
178 LogTrace(
"CkfDebugger") <<
"pullY=" << pullY;
179 return std::pair<double, double>(pullX, pullY);
182 switch (
recHit->dimension()) {
184 return computePulls<1>(
recHit, startingState);
186 return computePulls<2>(
recHit, startingState);
188 return computePulls<3>(
recHit, startingState);
190 return computePulls<4>(
recHit, startingState);
192 return computePulls<5>(
recHit, startingState);
194 throw cms::Exception(
"CkfDebugger error: rechit of dimension not 1,2,3,4,5");
198 std::map<std::pair<int, int>,
int>
dump2;
199 std::map<std::pair<int, int>,
int>
dump3;
200 std::map<std::pair<int, int>,
int>
dump4;
201 std::map<std::pair<int, int>,
int>
dump5;
202 std::map<std::pair<int, int>,
int>
dump6;
unsigned int trackId() const
const MeasurementTrackerEvent * theMeasurementTracker
std::pair< double, double > computePulls(CTTRHp recHit, TSOS startingState)
TH2F * hPullGPXvsGPX_shst
const GeomDetUnit * theDet
std::map< std::string, TH1F * > hPullS_shst
float timeOfFlight() const
std::map< std::string, TH1F * > hPullY_shst
Global3DPoint position(const PSimHit *sh) const
bool correctTrajectory(const Trajectory &, unsigned int &) const
std::map< std::string, TH1F * > hPullM_strh
std::vector< const PSimHit * > nextCorrectHits(const Trajectory &, unsigned int &)
const MeasurementEstimator * theChi2
int layer(const GeomDet *det)
TrajectoryStateOnSurface TSOS
std::map< std::string, TH1F * > hPullY_strh
ROOT::Math::SMatrix< double, D1, D1, ROOT::Math::MatRepSym< double, D1 > > SymMatrix
const GeomDetUnit * det(const PSimHit *sh) const
unsigned short processType() const
TH2F * hPullGPXvsGPphi_shst
unsigned int layer(const DetId &id) const
std::map< std::string, TH1F * > hPullS_shrh
void printSimHits(const edm::Event &iEvent)
int analyseRecHitNotFound(const Trajectory &, CTTRHp)
double testSeed(CTTRHp, CTTRHp, TrajectoryStateOnSurface)
std::pair< CTTRHp, double > analyseRecHitExistance(const PSimHit &sh, const TSOS &startingState)
const TrackerTopology * theTopo
CkfDebugger(edm::EventSetup const &es, edm::ConsumesCollector &&iC)
TH2F * hPullGPXvsGPr_shst
bool hasDelta(const PSimHit *correctHit)
std::map< std::string, TH1F * > hPullX_shrh
TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::pair< double, double > computePulls(CTTRHp recHit, TSOS startingState)
unsigned int detUnitId() const
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
float pabs() const
fast and more accurate access to momentumAtEntry().mag()
void dumpSimHit(const SimHit &hit) const
unsigned short processType() const
SimHit(const PSimHit *phit, const GeomDetUnit *gdu)
TransientTrackingRecHit::ConstRecHitPointer CTTRHp
const MagneticField * theMagField
const GeometricSearchTracker * theGeomSearchTracker
Local3DPoint localPosition() const
int partner_det_not_fuond
void fillSeedHist(CTTRHp h1, CTTRHp h2, TrajectoryStateOnSurface t)
const GeomDetUnit * det() const
bool correctMeas(const TM &tm, const PSimHit *correctHit) const
std::map< std::pair< int, int >, int > dump2
void deleteHitAssociator()
Geom::Theta< float > thetaAtEntry() const
int assocTrackId(CTTRHp rechit) const
Geom::Phi< float > phiAtEntry() const
DetId geographicalId() const
The label of this GeomDet.
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
std::map< std::string, TH1F * > hPullM_shrh
bool analyseCompatibleMeasurements(const Trajectory &, const std::vector< TrajectoryMeasurement > &, const MeasurementTrackerEvent *, const Propagator *, const Chi2MeasurementEstimatorBase *, const TransientTrackingRecHitBuilder *)
LocalVector localDirection() const
Obsolete. Same as momentumAtEntry().unit(), for backward compatibility.
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
std::map< std::string, TH1F * > hPullX_strh
bool goodSimHit(const PSimHit &sh) const
const TrackerGeometry * theTrackerGeom
std::map< std::pair< int, int >, int > dump5
TH2F * hPullGPXvsGPZ_shst
NavigationSchool const * theNavSchool
std::map< std::string, TH1F * > hPullGP_Z_shst
Geom::Phi< float > phiAtEntry() const
fast and more accurate access to momentumAtEntry().phi()
int matched_not_associated
const PSimHit * pSimHit(unsigned int tkId, DetId detId)
std::map< std::pair< int, int >, int > dump4
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
TrackerHitAssociator * hitAssociator
std::map< unsigned int, std::vector< PSimHit * > > idHitsMap
LocalVector localDirection() const
DecomposeProduct< arg, typename Div::arg > D
TH2F * hPullGPXvsGPY_shst
const PSimHit & psimHit() const
GlobalPoint globalPosition() const
bool associated(CTTRHp rechit, const PSimHit &sh) const
float energyLoss() const
The energy deposit in the PSimHit, in ???.
std::map< std::string, TH1F * > hPullM_shst
unsigned int detUnitId() const
std::map< std::string, TH1F * > hPullY_shrh
std::map< std::string, TH1F * > hPullGP_X_shst
unsigned int trackId() const
const Propagator * theForwardPropagator
float timeOfFlight() const
std::map< std::string, TH1F * > hPullS_strh
std::map< std::string, TH1F * > hPullX_shst
TH2F * hPullGPXvsGPeta_shst
Geom::Theta< float > thetaAtEntry() const
fast and more accurate access to momentumAtEntry().theta()
std::map< std::string, TH1F * > hPullGP_Y_shst
ROOT::Math::SVector< double, D1 > Vector
LocalPoint localPosition() const
const TransientTrackingRecHitBuilder * theTTRHBuilder
std::map< std::pair< int, int >, int > dump6
std::map< std::pair< int, int >, int > dump3