13 #include <Riostream.h>
52 LogTrace(
"Reco|TrackingTools|SeedTransformer") <<
"SeedTransformer constructor called." << endl << endl;
55 theMuonRecHitBuilderName = iConfig.
getParameter<
string>(
"MuonRecHitBuilder");
56 thePropagatorName = iConfig.
getParameter<
string>(
"Propagator");
58 nMinRecHits = iConfig.
getParameter<
unsigned int>(
"NMinRecHits");
59 errorRescale = iConfig.
getParameter<
double>(
"RescaleError");
60 useSubRecHits = iConfig.
getParameter<
bool>(
"UseSubRecHits");
65 LogTrace(
"Reco|TrackingTools|SeedTransformer") <<
"SeedTransformer destructor called." << endl << endl;
81 const string metname =
"Reco|TrackingTools|SeedTransformer";
83 LogTrace(metname) <<
" Number of valid RecHits: " << aSeed.
nHits() << endl;
85 if( aSeed.
nHits() < nMinRecHits ) {
86 LogTrace(metname) <<
" --- Too few RecHits, no refit performed! ---" << endl;
87 return vector<Trajectory>();
95 vector<TransientTrackingRecHit::ConstRecHitPointer> recHits;
96 unsigned int countRH = 0;
98 for(TrajectorySeed::recHitContainer::const_iterator itRecHits=aSeed.
recHits().first; itRecHits!=aSeed.
recHits().second; ++itRecHits, ++countRH) {
99 if((*itRecHits).isValid()) {
105 copy(subHits.begin(),subHits.end(),back_inserter(recHits));
108 recHits.push_back(ttrh);
116 LogTrace(metname) <<
" --- Initial state for refit not valid! ---" << endl;
117 return vector<Trajectory>();
120 vector<Trajectory> refittedSeed = theFitter->fit(aSeed, recHits, aInitTSOS);
122 if(refittedSeed.empty()) {
123 LogTrace(metname) <<
" --- Seed fit failed! ---" << endl;
124 return vector<Trajectory>();
127 else if(!refittedSeed.front().isValid()) {
128 LogTrace(metname) <<
" --- Seed fitted, but trajectory not valid! ---" << endl;
129 return vector<Trajectory>();
133 LogTrace(metname) <<
" +++ Seed fit succeded! +++" << endl;
143 const GeomDet* tmpGeomDet = theTrackingGeometry->idToDet(tmpDetId);
void rescaleError(double factor)
T getParameter(std::string const &) const
const std::string metname
static TransientTrackingRecHit::ConstRecHitContainer breakInSubRecHits(TransientTrackingRecHit::ConstRecHitPointer, int granularity)
takes a muon rechit and returns its sub-rechits given a certain granularity
unsigned int detId() const
std::vector< ConstRecHitPointer > ConstRecHitContainer
PTrajectoryStateOnDet const & startingState() const
unsigned int nHits() const
const Surface & surface() const