#include <GlobalTrajectoryBuilderBase.h>
Base class for GlobalMuonTrajectoryBuilder and L3MuonTrajectoryBuilder Provide common tools and interface to reconstruct muons starting from a muon track reconstructed in the standalone muon system (with DT, CSC and RPC information). It tries to reconstruct the corresponding track in the tracker and performs matching between the reconstructed tracks in the muon system and the tracker.
Definition at line 49 of file GlobalTrajectoryBuilderBase.h.
typedef MuonTransientTrackingRecHit::ConstMuonRecHitContainer GlobalTrajectoryBuilderBase::ConstMuonRecHitContainer |
Definition at line 61 of file GlobalTrajectoryBuilderBase.h.
typedef MuonTransientTrackingRecHit::ConstMuonRecHitPointer GlobalTrajectoryBuilderBase::ConstMuonRecHitPointer |
Definition at line 59 of file GlobalTrajectoryBuilderBase.h.
typedef TransientTrackingRecHit::ConstRecHitContainer GlobalTrajectoryBuilderBase::ConstRecHitContainer |
Definition at line 54 of file GlobalTrajectoryBuilderBase.h.
Definition at line 56 of file GlobalTrajectoryBuilderBase.h.
typedef MuonTransientTrackingRecHit::MuonRecHitContainer GlobalTrajectoryBuilderBase::MuonRecHitContainer |
Definition at line 60 of file GlobalTrajectoryBuilderBase.h.
typedef MuonTransientTrackingRecHit::MuonRecHitPointer GlobalTrajectoryBuilderBase::MuonRecHitPointer |
Definition at line 58 of file GlobalTrajectoryBuilderBase.h.
Definition at line 53 of file GlobalTrajectoryBuilderBase.h.
Definition at line 55 of file GlobalTrajectoryBuilderBase.h.
typedef std::vector<Trajectory> GlobalTrajectoryBuilderBase::TC |
Definition at line 63 of file GlobalTrajectoryBuilderBase.h.
typedef TC::const_iterator GlobalTrajectoryBuilderBase::TI |
Definition at line 64 of file GlobalTrajectoryBuilderBase.h.
enum GlobalTrajectoryBuilderBase::RefitDirection [protected] |
Definition at line 82 of file GlobalTrajectoryBuilderBase.h.
GlobalTrajectoryBuilderBase::GlobalTrajectoryBuilderBase | ( | const edm::ParameterSet & | par, |
const MuonServiceProxy * | service | ||
) |
constructor with Parameter Set and MuonServiceProxy
Definition at line 90 of file GlobalTrajectoryBuilderBase.cc.
References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), GlobalMuonRefitter_cff::GlobalMuonRefitter, GlobalMuonTrackMatcher_cff::GlobalMuonTrackMatcher, theCacheId_TRH, theCategory, theGlbRefitter, theMuonHitsOption, theMuonRecHitBuilderName, thePCut, thePtCut, theRegionBuilder, theRPCInTheFit, theService, theTECxScale, theTECyScale, theTrackerPropagatorName, theTrackerRecHitBuilderName, theTrackMatcher, and theTrackTransformer.
: theTrackMatcher(0),theLayerMeasurements(0),theTrackTransformer(0),theRegionBuilder(0), theService(service),theGlbRefitter(0) { theCategory = par.getUntrackedParameter<string>("Category", "Muon|RecoMuon|GlobalMuon|GlobalTrajectoryBuilderBase"); ParameterSet trackMatcherPSet = par.getParameter<ParameterSet>("GlobalMuonTrackMatcher"); theTrackMatcher = new GlobalMuonTrackMatcher(trackMatcherPSet,theService); theTrackerPropagatorName = par.getParameter<string>("TrackerPropagator"); ParameterSet trackTransformerPSet = par.getParameter<ParameterSet>("TrackTransformer"); theTrackTransformer = new TrackTransformer(trackTransformerPSet); ParameterSet regionBuilderPSet = par.getParameter<ParameterSet>("MuonTrackingRegionBuilder"); theRegionBuilder = new MuonTrackingRegionBuilder(regionBuilderPSet,theService); // TrackRefitter parameters ParameterSet refitterParameters = par.getParameter<ParameterSet>("GlbRefitterParameters"); theGlbRefitter = new GlobalMuonRefitter(refitterParameters, theService); theMuonHitsOption = refitterParameters.getParameter<int>("MuonHitsOption"); theTrackerRecHitBuilderName = par.getParameter<string>("TrackerRecHitBuilder"); theMuonRecHitBuilderName = par.getParameter<string>("MuonRecHitBuilder"); theRPCInTheFit = par.getParameter<bool>("RefitRPCHits"); theTECxScale = par.getParameter<double>("ScaleTECxFactor"); theTECyScale = par.getParameter<double>("ScaleTECyFactor"); thePtCut = par.getParameter<double>("PtCut"); thePCut = par.getParameter<double>("PCut"); theCacheId_TRH = 0; }
GlobalTrajectoryBuilderBase::~GlobalTrajectoryBuilderBase | ( | ) | [virtual] |
destructor
Definition at line 133 of file GlobalTrajectoryBuilderBase.cc.
References theGlbRefitter, theRegionBuilder, theTrackMatcher, and theTrackTransformer.
{ if (theTrackMatcher) delete theTrackMatcher; if (theRegionBuilder) delete theRegionBuilder; if (theTrackTransformer) delete theTrackTransformer; if (theGlbRefitter) delete theGlbRefitter; }
void GlobalTrajectoryBuilderBase::addTraj | ( | TrackCand & | ) | [inline, protected] |
if TrackCand has only a TrackRef, attempt to add Trajectory*
Definition at line 126 of file GlobalTrajectoryBuilderBase.h.
{}
MuonCandidate::CandidateContainer GlobalTrajectoryBuilderBase::build | ( | const TrackCand & | staCand, |
MuonTrajectoryBuilder::CandidateContainer & | tkTrajs | ||
) | const [protected] |
build combined trajectory from sta Track and tracker RecHits
Definition at line 170 of file GlobalTrajectoryBuilderBase.cc.
References checkRecHitsOrdering(), fixTEC(), getTransientRecHits(), LogDebug, LogTrace, MuonCandidate::muonTrack(), outToIn, GlobalMuonRefitter::refit(), selectTrackerHits(), Trajectory::setSeedRef(), theCategory, theGlbRefitter, theMuonHitsOption, thePCut, thePtCut, theService, theTECxScale, theTECyScale, theTrackTransformer, MuonCandidate::trackerTrack(), MuonCandidate::trackerTrajectory(), trackProbability(), MuonCandidate::trajectory(), and TrackTransformer::transform().
Referenced by L3MuonTrajectoryBuilder::trajectories(), and GlobalMuonTrajectoryBuilder::trajectories().
{ LogTrace(theCategory) << " Begin Build" << endl; // tracker trajectory should be built and refit before this point if ( tkTrajs.empty() ) return CandidateContainer(); // add muon hits and refit/smooth trajectories CandidateContainer refittedResult; ConstRecHitContainer muonRecHits = getTransientRecHits(*(staCand.second)); // check order of muon measurements if ( (muonRecHits.size() > 1) && ( muonRecHits.front()->globalPosition().mag() > muonRecHits.back()->globalPosition().mag() ) ) { LogTrace(theCategory)<< " reverse order: "; } for ( CandidateContainer::const_iterator it = tkTrajs.begin(); it != tkTrajs.end(); it++ ) { // cut on tracks with low momenta LogTrace(theCategory)<< " Track p and pT " << (*it)->trackerTrack()->p() << " " << (*it)->trackerTrack()->pt(); if( (*it)->trackerTrack()->p() < thePCut || (*it)->trackerTrack()->pt() < thePtCut ) continue; ConstRecHitContainer trackerRecHits; if ((*it)->trackerTrack().isNonnull()) { trackerRecHits = getTransientRecHits(*(*it)->trackerTrack()); } else { LogDebug(theCategory)<<" NEED HITS FROM TRAJ"; //trackerRecHits = (*it)->trackerTrajectory()->recHits(); } // check for single TEC RecHits in trajectories in the overalp region if ( fabs((*it)->trackerTrack()->eta()) > 0.95 && fabs((*it)->trackerTrack()->eta()) < 1.15 && (*it)->trackerTrack()->pt() < 60 ) { if ( theTECxScale < 0 || theTECyScale < 0 ) trackerRecHits = selectTrackerHits(trackerRecHits); else fixTEC(trackerRecHits,theTECxScale,theTECyScale); } RefitDirection recHitDir = checkRecHitsOrdering(trackerRecHits); if ( recHitDir == outToIn ) reverse(trackerRecHits.begin(),trackerRecHits.end()); reco::TransientTrack tTT((*it)->trackerTrack(),&*theService->magneticField(),theService->trackingGeometry()); TrajectoryStateOnSurface innerTsos = tTT.innermostMeasurementState(); edm::RefToBase<TrajectorySeed> tmpSeed; if((*it)->trackerTrack()->seedRef().isAvailable()) tmpSeed = (*it)->trackerTrack()->seedRef(); if ( !innerTsos.isValid() ) { LogTrace(theCategory) << " inner Trajectory State is invalid. "; continue; } innerTsos.rescaleError(100.); TC refitted0,refitted1; MuonCandidate* finalTrajectory = 0; Trajectory *tkTrajectory = 0; // tracker only track if ( ! ((*it)->trackerTrajectory() && (*it)->trackerTrajectory()->isValid()) ) { refitted0 = theTrackTransformer->transform((*it)->trackerTrack()) ; if (!refitted0.empty()) tkTrajectory = new Trajectory(*(refitted0.begin())); else LogWarning(theCategory)<< " Failed to load tracker track trajectory"; } else tkTrajectory = (*it)->trackerTrajectory(); if (tkTrajectory) tkTrajectory->setSeedRef(tmpSeed); // full track with all muon hits using theGlbRefitter ConstRecHitContainer allRecHits = trackerRecHits; allRecHits.insert(allRecHits.end(), muonRecHits.begin(),muonRecHits.end()); refitted1 = theGlbRefitter->refit( *(*it)->trackerTrack(), tTT, allRecHits,theMuonHitsOption); LogTrace(theCategory)<<" This track-sta refitted to " << refitted1.size() << " trajectories"; Trajectory *glbTrajectory1 = 0; if (!refitted1.empty()) glbTrajectory1 = new Trajectory(*(refitted1.begin())); else LogDebug(theCategory)<< " Failed to load global track trajectory 1"; if (glbTrajectory1) glbTrajectory1->setSeedRef(tmpSeed); finalTrajectory = 0; if(glbTrajectory1 && tkTrajectory) finalTrajectory = new MuonCandidate(glbTrajectory1, (*it)->muonTrack(), (*it)->trackerTrack(), tkTrajectory? new Trajectory(*tkTrajectory) : 0); if ( finalTrajectory ) refittedResult.push_back(finalTrajectory); if(tkTrajectory) delete tkTrajectory; } // choose the best global fit for this Standalone Muon based on the track probability CandidateContainer selectedResult; MuonCandidate* tmpCand = 0; if ( refittedResult.size() > 0 ) tmpCand = *(refittedResult.begin()); double minProb = 9999; for (CandidateContainer::const_iterator iter=refittedResult.begin(); iter != refittedResult.end(); iter++) { double prob = trackProbability(*(*iter)->trajectory()); LogTrace(theCategory)<<" refitted-track-sta with pT " << (*iter)->trackerTrack()->pt() << " has probability " << prob; if (prob < minProb) { minProb = prob; tmpCand = (*iter); } } if ( tmpCand ) selectedResult.push_back(new MuonCandidate(new Trajectory(*(tmpCand->trajectory())), tmpCand->muonTrack(), tmpCand->trackerTrack(), (tmpCand->trackerTrajectory())? new Trajectory( *(tmpCand->trackerTrajectory()) ):0 ) ); for (CandidateContainer::const_iterator it = refittedResult.begin(); it != refittedResult.end(); ++it) { if ( (*it)->trajectory() ) delete (*it)->trajectory(); if ( (*it)->trackerTrajectory() ) delete (*it)->trackerTrajectory(); if ( *it ) delete (*it); } refittedResult.clear(); return selectedResult; }
void GlobalTrajectoryBuilderBase::checkMuonHits | ( | const reco::Track & | , |
ConstRecHitContainer & | , | ||
ConstRecHitContainer & | , | ||
std::vector< int > & | |||
) | const [protected] |
check muon RecHits, calculate chamber occupancy and select hits to be used in the final fit
GlobalTrajectoryBuilderBase::RefitDirection GlobalTrajectoryBuilderBase::checkRecHitsOrdering | ( | const ConstRecHitContainer & | recHits | ) | const [protected] |
This does nothing now.
check order of RechIts on a trajectory
Definition at line 400 of file GlobalTrajectoryBuilderBase.cc.
References inToOut, outToIn, theCategory, and undetermined.
Referenced by build().
{ if ( !recHits.empty() ) { ConstRecHitContainer::const_iterator frontHit = recHits.begin(); ConstRecHitContainer::const_iterator backHit = recHits.end() - 1; while ( !(*frontHit)->isValid() && frontHit != backHit ) {frontHit++;} while ( !(*backHit)->isValid() && backHit != frontHit ) {backHit--;} double rFirst = (*frontHit)->globalPosition().mag(); double rLast = (*backHit) ->globalPosition().mag(); if ( rFirst < rLast ) return inToOut; else if (rFirst > rLast) return outToIn; else { LogError(theCategory) << "Impossible to determine the rechits order" << endl; return undetermined; } } else { LogError(theCategory) << "Impossible to determine the rechits order" << endl; return undetermined; } }
vector< GlobalTrajectoryBuilderBase::TrackCand > GlobalTrajectoryBuilderBase::chooseRegionalTrackerTracks | ( | const TrackCand & | , |
const std::vector< TrackCand > & | |||
) | [protected] |
choose tracker tracks within region of interest
Definition at line 295 of file GlobalTrajectoryBuilderBase.cc.
References defineRegionOfInterest(), deltaR(), TrackingRegionBase::direction(), PV3DBase< T, PVType, FrameType >::eta(), MuonErrorMatrixValues_cff::etaRange, RectangularEtaPhiTrackingRegion::etaRange(), PV3DBase< T, PVType, FrameType >::phi(), RectangularEtaPhiTrackingRegion::phiMargin(), and query::result.
Referenced by GlobalMuonTrajectoryBuilder::makeTkCandCollection().
{ // define eta-phi region RectangularEtaPhiTrackingRegion regionOfInterest = defineRegionOfInterest(staCand.second); // get region's etaRange and phiMargin PixelRecoRange<float> etaRange = regionOfInterest.etaRange(); TkTrackingRegionsMargin<float> phiMargin = regionOfInterest.phiMargin(); vector<TrackCand> result; double deltaR_max = 1.0; for ( vector<TrackCand>::const_iterator is = tkTs.begin(); is != tkTs.end(); ++is ) { // check if each trackCand is in region of interest // bool inEtaRange = etaRange.inside(is->second->eta()); // bool inPhiRange = (fabs(Geom::Phi<float>(is->second->phi()) - Geom::Phi<float>(regionOfInterest.direction().phi())) < phiMargin.right() ) ? true : false ; double deltaR_tmp = deltaR(static_cast<double>(regionOfInterest.direction().eta()), static_cast<double>(regionOfInterest.direction().phi()), is->second->eta(), is->second->phi()); // for each trackCand in region, add trajectory and add to result //if ( inEtaRange && inPhiRange ) { if (deltaR_tmp < deltaR_max) { TrackCand tmpCand = TrackCand(*is); result.push_back(tmpCand); } } return result; }
const Trajectory* GlobalTrajectoryBuilderBase::chooseTrajectory | ( | const std::vector< Trajectory * > & | , |
int | |||
) | const [protected] |
choose final trajectory
RectangularEtaPhiTrackingRegion GlobalTrajectoryBuilderBase::defineRegionOfInterest | ( | const reco::TrackRef & | staTrack | ) | const [protected] |
define region of interest with tracker
Definition at line 335 of file GlobalTrajectoryBuilderBase.cc.
References TrackingRegionBase::direction(), RectangularEtaPhiTrackingRegion::etaRange(), TrackingRegionBase::origin(), TrackingRegionBase::originRBound(), TrackingRegionBase::originZBound(), RectangularEtaPhiTrackingRegion::phiMargin(), TrackingRegionBase::ptMin(), MuonTrackingRegionBuilder::region(), and theRegionBuilder.
Referenced by chooseRegionalTrackerTracks().
{ RectangularEtaPhiTrackingRegion* region1 = theRegionBuilder->region(staTrack); TkTrackingRegionsMargin<float> etaMargin(fabs(region1->etaRange().min() - region1->etaRange().mean()), fabs(region1->etaRange().max() - region1->etaRange().mean())); RectangularEtaPhiTrackingRegion region2(region1->direction(), region1->origin(), region1->ptMin(), region1->originRBound(), region1->originZBound(), etaMargin, region1->phiMargin()); delete region1; return region2; }
void GlobalTrajectoryBuilderBase::fixTEC | ( | ConstRecHitContainer & | all, |
double | scl_x, | ||
double | scl_y | ||
) | const [protected] |
rescale errors of outermost TEC RecHit
Definition at line 453 of file GlobalTrajectoryBuilderBase.cc.
References angle(), MuonTransientTrackingRecHit::build(), SiStripRecHit2D::cluster(), SiStripRecHit2D::cluster_regional(), TransientTrackingRecHit::det(), error, i, TSiStripRecHit2DLocalPos::localPosition(), TSiStripRecHit2DLocalPos::localPositionError(), pos, LocalError::rotate(), strip(), StripTopology::strip(), StripTopology::stripAngle(), sistripsummary::TEC, DetId::Tracker, LocalError::xx(), and LocalError::yy().
Referenced by build().
{ int nTEC(0); ConstRecHitContainer::iterator lone_tec; for ( ConstRecHitContainer::iterator i = all.begin(); i != all.end(); i++) { if ( !(*i)->isValid() ) continue; if ( (*i)->det()->geographicalId().det() == DetId::Tracker && (*i)->det()->geographicalId().subdetId() == StripSubdetector::TEC) { lone_tec = i; nTEC++; if ( (i+1) != all.end() && (*(i+1))->isValid() && (*(i+1))->det()->geographicalId().det() == DetId::Tracker && (*(i+1))->det()->geographicalId().subdetId() == StripSubdetector::TEC) { nTEC++; break; } } if (nTEC > 1) break; } if ( nTEC == 1 && (*lone_tec)->hit()->isValid() && (*lone_tec)->hit()->geographicalId().det() == DetId::Tracker && (*lone_tec)->hit()->geographicalId().subdetId() == StripSubdetector::TEC) { // rescale the TEC rechit error matrix in its rotated frame const SiStripRecHit2D* strip = dynamic_cast<const SiStripRecHit2D*>((*lone_tec)->hit()); const TSiStripRecHit2DLocalPos* Tstrip = dynamic_cast<const TSiStripRecHit2DLocalPos*>((*lone_tec).get()); if (strip && Tstrip->det() && Tstrip) { LocalPoint pos = Tstrip->localPosition(); if ((*lone_tec)->detUnit()) { const StripTopology* topology = dynamic_cast<const StripTopology*>(&(*lone_tec)->detUnit()->topology()); if (topology) { // rescale the local error along/perp the strip by a factor float angle = topology->stripAngle(topology->strip((*lone_tec)->hit()->localPosition())); LocalError error = Tstrip->localPositionError(); LocalError rotError = error.rotate(angle); LocalError scaledError(rotError.xx() * scl_x * scl_x, 0, rotError.yy() * scl_y * scl_y); error = scaledError.rotate(-angle); MuonTransientTrackingRecHit* mtt_rechit; if (strip->cluster().isNonnull()) { SiStripRecHit2D* st = new SiStripRecHit2D(pos,error, (*lone_tec)->geographicalId().rawId(), strip->cluster()); *lone_tec = mtt_rechit->build((*lone_tec)->det(),st); } else { SiStripRecHit2D* st = new SiStripRecHit2D(pos,error, (*lone_tec)->geographicalId().rawId(), strip->cluster_regional()); *lone_tec = mtt_rechit->build((*lone_tec)->det(),st); } } } } } }
TransientTrackingRecHit::ConstRecHitContainer GlobalTrajectoryBuilderBase::getTransientRecHits | ( | const reco::Track & | track | ) | const [protected] |
get transient RecHits of a Track
Definition at line 525 of file GlobalTrajectoryBuilderBase.cc.
References DetId::det(), LogDebug, DetId::Muon, reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), query::result, theCategory, theMuonRecHitBuilder, theRPCInTheFit, theTrackerRecHitBuilder, and align::Tracker.
Referenced by build().
{ TransientTrackingRecHit::ConstRecHitContainer result; for (trackingRecHit_iterator hit = track.recHitsBegin(); hit != track.recHitsEnd(); ++hit) { if((*hit)->isValid()) { DetId recoid = (*hit)->geographicalId(); if ( recoid.det() == DetId::Tracker ) { result.push_back(theTrackerRecHitBuilder->build(&**hit)); } else if ( recoid.det() == DetId::Muon ) { if ( (*hit)->geographicalId().subdetId() == 3 && !theRPCInTheFit) { LogDebug(theCategory) << "RPC Rec Hit discarded"; continue; } result.push_back(theMuonRecHitBuilder->build(&**hit)); } } } return result; }
virtual std::vector<TrackCand> GlobalTrajectoryBuilderBase::makeTkCandCollection | ( | const TrackCand & | ) | [protected, pure virtual] |
make a TrackCand collection using tracker Track, Trajectory information
Implemented in GlobalMuonTrajectoryBuilder, and L3MuonTrajectoryBuilder.
void GlobalTrajectoryBuilderBase::printHits | ( | const ConstRecHitContainer & | hits | ) | const [protected] |
print all RecHits of a trajectory
Definition at line 374 of file GlobalTrajectoryBuilderBase.cc.
References LogTrace, pos, mathSSE::sqrt(), theCategory, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ LogTrace(theCategory) << "Used RecHits: " << hits.size(); for (ConstRecHitContainer::const_iterator ir = hits.begin(); ir != hits.end(); ir++ ) { if ( !(*ir)->isValid() ) { LogTrace(theCategory) << "invalid RecHit"; continue; } const GlobalPoint& pos = (*ir)->globalPosition(); LogTrace(theCategory) << "r = " << sqrt(pos.x() * pos.x() + pos.y() * pos.y()) << " z = " << pos.z() << " dimension = " << (*ir)->dimension() << " " << (*ir)->det()->geographicalId().det() << " " << (*ir)->det()->subDetector(); } }
ConstRecHitContainer GlobalTrajectoryBuilderBase::selectMuonHits | ( | const Trajectory & | , |
const std::vector< int > & | |||
) | const [protected] |
select muon hits compatible with trajectory; check hits in chambers with showers
GlobalTrajectoryBuilderBase::ConstRecHitContainer GlobalTrajectoryBuilderBase::selectTrackerHits | ( | const ConstRecHitContainer & | all | ) | const [protected] |
select tracker hits; exclude some tracker hits in the global trajectory
Definition at line 429 of file GlobalTrajectoryBuilderBase.cc.
References cond::ecalcond::all, i, sistripsummary::TEC, and DetId::Tracker.
Referenced by build().
{ int nTEC(0); ConstRecHitContainer hits; for (ConstRecHitContainer::const_iterator i = all.begin(); i != all.end(); i++) { if ( !(*i)->isValid() ) continue; if ( (*i)->det()->geographicalId().det() == DetId::Tracker && (*i)->det()->geographicalId().subdetId() == StripSubdetector::TEC) { nTEC++; } else { hits.push_back((*i).get()); } if ( nTEC > 1 ) return all; } return hits; }
const MuonServiceProxy* GlobalTrajectoryBuilderBase::service | ( | ) | const [inline, protected] |
Definition at line 139 of file GlobalTrajectoryBuilderBase.h.
References theService.
{ return theService; }
void GlobalTrajectoryBuilderBase::setEvent | ( | const edm::Event & | event | ) | [virtual] |
pass the Event to the algo at each event
Implements MuonTrajectoryBuilder.
Reimplemented in GlobalMuonTrajectoryBuilder, and L3MuonTrajectoryBuilder.
Definition at line 145 of file GlobalTrajectoryBuilderBase.cc.
References event(), LogDebug, GlobalMuonRefitter::setEvent(), MuonTrackingRegionBuilder::setEvent(), GlobalMuonRefitter::setServices(), TrackTransformer::setServices(), theCacheId_TRH, theCategory, theEvent, theGlbRefitter, theMuonRecHitBuilder, theMuonRecHitBuilderName, theRegionBuilder, theService, theTrackerRecHitBuilder, theTrackerRecHitBuilderName, and theTrackTransformer.
{ theEvent = &event; theTrackTransformer->setServices(theService->eventSetup()); theRegionBuilder->setEvent(event); theGlbRefitter->setEvent(event); theGlbRefitter->setServices(theService->eventSetup()); unsigned long long newCacheId_TRH = theService->eventSetup().get<TransientRecHitRecord>().cacheIdentifier(); if ( newCacheId_TRH != theCacheId_TRH ) { LogDebug(theCategory) << "TransientRecHitRecord changed!"; theCacheId_TRH = newCacheId_TRH; theService->eventSetup().get<TransientRecHitRecord>().get(theTrackerRecHitBuilderName,theTrackerRecHitBuilder); theService->eventSetup().get<TransientRecHitRecord>().get(theMuonRecHitBuilderName,theMuonRecHitBuilder); } }
GlobalMuonTrackMatcher* GlobalTrajectoryBuilderBase::trackMatcher | ( | ) | const [inline, protected] |
Definition at line 136 of file GlobalTrajectoryBuilderBase.h.
References theTrackMatcher.
Referenced by L3MuonTrajectoryBuilder::trajectories(), and GlobalMuonTrajectoryBuilder::trajectories().
{ return theTrackMatcher; }
double GlobalTrajectoryBuilderBase::trackProbability | ( | const Trajectory & | track | ) | const [protected] |
calculate chi2 probability (-ln(P))
Definition at line 360 of file GlobalTrajectoryBuilderBase.cc.
References Trajectory::chiSquared(), LnChiSquaredProbability(), and Trajectory::ndof().
Referenced by build().
{ if ( track.ndof() > 0 && track.chiSquared() > 0 ) { return -LnChiSquaredProbability(track.chiSquared(), track.ndof()); } else { return 0.0; } }
MuonTrajectoryBuilder::TrajectoryContainer GlobalTrajectoryBuilderBase::trajectories | ( | const TrajectorySeed & | ) | [inline, virtual] |
dummy implementation, unused in this class
Implements MuonTrajectoryBuilder.
Definition at line 75 of file GlobalTrajectoryBuilderBase.h.
{ return MuonTrajectoryBuilder::TrajectoryContainer(); }
unsigned long long GlobalTrajectoryBuilderBase::theCacheId_TRH [private] |
Definition at line 175 of file GlobalTrajectoryBuilderBase.h.
Referenced by GlobalTrajectoryBuilderBase(), and setEvent().
std::string GlobalTrajectoryBuilderBase::theCategory [protected] |
Definition at line 163 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), checkRecHitsOrdering(), getTransientRecHits(), GlobalTrajectoryBuilderBase(), printHits(), and setEvent().
const edm::Event* GlobalTrajectoryBuilderBase::theEvent [private] |
Definition at line 183 of file GlobalTrajectoryBuilderBase.h.
Referenced by setEvent().
Definition at line 174 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), GlobalTrajectoryBuilderBase(), setEvent(), and ~GlobalTrajectoryBuilderBase().
Definition at line 170 of file GlobalTrajectoryBuilderBase.h.
int GlobalTrajectoryBuilderBase::theMuonHitsOption [private] |
Definition at line 178 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), and GlobalTrajectoryBuilderBase().
edm::ESHandle<TransientTrackingRecHitBuilder> GlobalTrajectoryBuilderBase::theMuonRecHitBuilder [private] |
Definition at line 189 of file GlobalTrajectoryBuilderBase.h.
Referenced by getTransientRecHits(), and setEvent().
std::string GlobalTrajectoryBuilderBase::theMuonRecHitBuilderName [private] |
Definition at line 188 of file GlobalTrajectoryBuilderBase.h.
Referenced by GlobalTrajectoryBuilderBase(), and setEvent().
float GlobalTrajectoryBuilderBase::thePCut [protected] |
Definition at line 165 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), and GlobalTrajectoryBuilderBase().
float GlobalTrajectoryBuilderBase::thePtCut [protected] |
Definition at line 164 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), GlobalTrajectoryBuilderBase(), L3MuonTrajectoryBuilder::trajectories(), and GlobalMuonTrajectoryBuilder::trajectories().
Definition at line 172 of file GlobalTrajectoryBuilderBase.h.
Referenced by defineRegionOfInterest(), GlobalTrajectoryBuilderBase(), setEvent(), and ~GlobalTrajectoryBuilderBase().
bool GlobalTrajectoryBuilderBase::theRPCInTheFit [private] |
Definition at line 176 of file GlobalTrajectoryBuilderBase.h.
Referenced by getTransientRecHits(), and GlobalTrajectoryBuilderBase().
const MuonServiceProxy* GlobalTrajectoryBuilderBase::theService [private] |
Definition at line 173 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), GlobalTrajectoryBuilderBase(), service(), and setEvent().
float GlobalTrajectoryBuilderBase::theTECxScale [private] |
Definition at line 179 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), and GlobalTrajectoryBuilderBase().
float GlobalTrajectoryBuilderBase::theTECyScale [private] |
Definition at line 180 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), and GlobalTrajectoryBuilderBase().
std::string GlobalTrajectoryBuilderBase::theTrackerPropagatorName [private] |
Definition at line 181 of file GlobalTrajectoryBuilderBase.h.
Referenced by GlobalTrajectoryBuilderBase().
edm::ESHandle<TransientTrackingRecHitBuilder> GlobalTrajectoryBuilderBase::theTrackerRecHitBuilder [private] |
Definition at line 186 of file GlobalTrajectoryBuilderBase.h.
Referenced by getTransientRecHits(), and setEvent().
std::string GlobalTrajectoryBuilderBase::theTrackerRecHitBuilderName [private] |
Definition at line 185 of file GlobalTrajectoryBuilderBase.h.
Referenced by GlobalTrajectoryBuilderBase(), and setEvent().
Definition at line 169 of file GlobalTrajectoryBuilderBase.h.
Referenced by GlobalTrajectoryBuilderBase(), trackMatcher(), and ~GlobalTrajectoryBuilderBase().
Definition at line 171 of file GlobalTrajectoryBuilderBase.h.
Referenced by build(), GlobalTrajectoryBuilderBase(), setEvent(), and ~GlobalTrajectoryBuilderBase().