Go to the documentation of this file.00001 #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h"
00002
00003 #include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h"
00004 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
00005 #include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h"
00006 #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h"
00007
00008
00009 #include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h"
00010 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h"
00011 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
00012 #include "TrackingTools/PatternTools/interface/TrajectoryStateUpdator.h"
00013 #include "TrackingTools/TrajectoryState/interface/BasicSingleTrajectoryState.h"
00014 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimatorBase.h"
00015
00016 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h"
00017 #include "TrackingTools/PatternTools/interface/TempTrajectory.h"
00018 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00019
00020 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00021
00022 std::string PrintoutHelper::dumpMeasurements(const std::vector<TrajectoryMeasurement> & v)
00023 {
00024 std::stringstream buffer;
00025 buffer<<v.size()<<" total measurements\n";
00026 std::vector<TrajectoryMeasurement>::const_iterator it=v.begin();
00027 for (; it!=v.end();++it){
00028 buffer<<dumpMeasurement(*it);
00029 buffer<<"\n";}
00030 return buffer.str();
00031 }
00032 std::string PrintoutHelper::dumpMeasurements(const cmsutils::bqueue<TrajectoryMeasurement> & v)
00033 {
00034 std::stringstream buffer;
00035 buffer<<v.size()<<" total measurements\n";
00036 cmsutils::bqueue<TrajectoryMeasurement>::const_iterator it=v.rbegin();
00037 for (; it!=v.rend();--it){
00038 buffer<<dumpMeasurement(*it);
00039 buffer<<"\n";}
00040 return buffer.str();
00041 }
00042 std::string PrintoutHelper::dumpMeasurement(const TrajectoryMeasurement & tm)
00043 {
00044 std::stringstream buffer;
00045 buffer
00046 <<"layer pointer: "<<tm.layer()<<"\n"
00047 <<"estimate: "<<tm.estimate()<<"\n";
00048 if (tm.updatedState().isValid())
00049 buffer<<"updated state: \n"
00050 <<"x: "<<tm.updatedState().globalPosition()<<"\n"
00051 <<"p: "<<tm.updatedState().globalMomentum()<<"\n";
00052 else if (tm.forwardPredictedState().isValid())
00053 buffer<<"forward predicted state: \n"
00054 <<"x: "<<tm.forwardPredictedState().globalPosition()<<"\n"
00055 <<"p: "<<tm.forwardPredictedState().globalMomentum()<<"\n";
00056 else if(tm.predictedState().isValid())
00057 buffer<<"predicted state: \n"
00058 <<"x: "<<tm.predictedState().globalPosition()<<"\n"
00059 <<"p: "<<tm.predictedState().globalMomentum()<<"\n";
00060 else buffer<<"no valid state\n";
00061 buffer
00062
00063 <<"detId: "<<tm.recHit()->geographicalId().rawId();
00064 if (tm.recHit()->isValid()){
00065 buffer<<"\n hit global x: "<<tm.recHit()->globalPosition()
00066 <<"\n hit global error: "<<tm.recHit()->globalPositionError().matrix()
00067 <<"\n hit local x:"<<tm.recHit()->localPosition()
00068 <<"\n hit local error"<<tm.recHit()->localPositionError();
00069 }else buffer<<"\n (-,-,-)";
00070 buffer<<"\n fwdPred " << tm.forwardPredictedState().isValid()
00071 <<"\n bwdPred " << tm.backwardPredictedState().isValid()
00072 <<"\n upPred " << tm.updatedState().isValid();
00073
00074 return buffer.str();
00075 }
00076
00077
00078 std::string PrintoutHelper::regressionTest(const TrackerGeometry & tracker,
00079 std::vector<Trajectory> & unsmoothedResult
00080 ){
00081 std::stringstream buffer;
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 buffer<< "number of finalTrajectories: " << unsmoothedResult.size()<<std::endl;
00097 for (std::vector<Trajectory>::const_iterator it = unsmoothedResult.begin();
00098 it != unsmoothedResult.end(); it++) {
00099 if (it->lastMeasurement().updatedState().isValid()) {
00100 buffer<< "candidate's n valid and invalid hit, chi2, pt : "
00101 << it->foundHits() << " , "
00102 << it->lostHits() <<" , "
00103 << it->chiSquared() << " , "
00104 << it->lastMeasurement().updatedState().globalMomentum().perp()<<std::endl;
00105 } else if (it->lastMeasurement().predictedState().isValid()) {
00106 buffer<< "candidate's n valid and invalid hit, chi2, pt : "
00107 << it->foundHits() << " , "
00108 << it->lostHits() <<" , "
00109 << it->chiSquared() << " , "
00110 << it->lastMeasurement().predictedState().globalMomentum().perp()<<std::endl;
00111 } else buffer<< "candidate with invalid last measurement state!"<<std::endl;
00112 }
00113 buffer<<"=================================================";
00114 return buffer.str();
00115 }