CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GlobalTrajectoryBuilderBase.h
Go to the documentation of this file.
1 #ifndef RecoMuon_GlobalTrackingTools_GlobalTrajectoryBuilderBase_H
2 #define RecoMuon_GlobalTrackingTools_GlobalTrajectoryBuilderBase_H
3 
29 
34 class MuonServiceProxy;
35 class Trajectory;
36 class TrackTransformer;
37 class TrajectoryFitter;
40 class GlobalMuonRefitter;
41 
42 namespace edm {class ParameterSet; class Event;}
43 namespace reco {class TransientTrack;}
44 
45 // ---------------------
46 // -- Class Interface --
47 // ---------------------
48 
50 
51  public:
52 
57 
62 
63  typedef std::vector<Trajectory> TC;
64  typedef TC::const_iterator TI;
65 
66  public:
67 
70 
73 
76 
78  virtual void setEvent(const edm::Event&);
79 
80  protected:
81 
83 
87 
89  virtual std::vector<TrackCand> makeTkCandCollection(const TrackCand&) = 0;
90 
92  std::vector<TrackCand> chooseRegionalTrackerTracks(const TrackCand&,
93  const std::vector<TrackCand>&);
94 
97 
99  void checkMuonHits(const reco::Track&,
102  std::vector<int>&) const;
103 
106  const std::vector<int>&) const;
107 
110 
113  double scl_x,
114  double scl_y) const;
115 
117  const Trajectory* chooseTrajectory(const std::vector<Trajectory*>&, int) const;
118 
120  double trackProbability(const Trajectory&) const;
121 
123  void printHits(const ConstRecHitContainer&) const;
124 
126  void addTraj(TrackCand&){}
127 
130 
133  getTransientRecHits(const reco::Track&) const;
134 
137 
139  const MuonServiceProxy* service() const { return theService; }
140 
142 
145  bool barrel_a = ( a->det()->subDetector() == GeomDetEnumerators::DT ||
146  a->det()->subDetector() == GeomDetEnumerators::RPCBarrel );
147 
148  bool barrel_b = ( b->det()->subDetector() == GeomDetEnumerators::DT ||
149  b->det()->subDetector() == GeomDetEnumerators::RPCBarrel );
150 
151  if ( barrel_a && barrel_b ) return a->det()->surface().position().perp() < b->det()->surface().position().perp();
152 
153  else if ( !barrel_a && !barrel_b ) return fabs(a->globalPosition().z()) < fabs(b->globalPosition().z());
154  else if ( barrel_a && !barrel_b ) return true;
155  else if ( !barrel_a && barrel_b ) return false;
156  //shouldn;t really get here in any case (there's some sense to throw here )
157  return false;
158  }
159  };
160 
161  protected:
162 
163  std::string theCategory;
164  float thePtCut;
165  float thePCut;
166 
167  private:
168 
175  unsigned long long theCacheId_TRH;
177 
182 
184 
187 
190 
191 };
192 #endif
MuonCandidate::CandidateContainer CandidateContainer
void printHits(const ConstRecHitContainer &) const
print all RecHits of a trajectory
GlobalMuonTrackMatcher * trackMatcher() const
ConstRecHitContainer selectTrackerHits(const ConstRecHitContainer &) const
select tracker hits; exclude some tracker hits in the global trajectory
virtual void setEvent(const edm::Event &)
pass the Event to the algo at each event
virtual std::vector< TrackCand > makeTkCandCollection(const TrackCand &)=0
make a TrackCand collection using tracker Track, Trajectory information
void addTraj(TrackCand &)
if TrackCand has only a TrackRef, attempt to add Trajectory*
std::pair< const Trajectory *, reco::TrackRef > TrackCand
GlobalTrajectoryBuilderBase(const edm::ParameterSet &, const MuonServiceProxy *)
constructor with Parameter Set and MuonServiceProxy
TransientTrackingRecHit::RecHitPointer RecHitPointer
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
MuonTransientTrackingRecHit::ConstMuonRecHitContainer ConstMuonRecHitContainer
MuonCandidate::TrajectoryContainer TrajectoryContainer
bool operator()(const TransientTrackingRecHit::ConstRecHitPointer &a, const TransientTrackingRecHit::ConstRecHitPointer &b) const
std::vector< TrackCand > chooseRegionalTrackerTracks(const TrackCand &, const std::vector< TrackCand > &)
choose tracker tracks within region of interest
MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer
std::vector< ConstRecHitPointer > RecHitContainer
void fixTEC(ConstRecHitContainer &all, double scl_x, double scl_y) const
rescale errors of outermost TEC RecHit
double trackProbability(const Trajectory &) const
calculate chi2 probability (-ln(P))
MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer
virtual ~GlobalTrajectoryBuilderBase()
destructor
MuonDetLayerMeasurements * theLayerMeasurements
TransientTrackingRecHit::RecHitContainer RecHitContainer
TransientTrackingRecHit::ConstRecHitContainer getTransientRecHits(const reco::Track &) const
get transient RecHits of a Track
MuonTrajectoryBuilder::TrajectoryContainer trajectories(const TrajectorySeed &)
dummy implementation, unused in this class
const MuonServiceProxy * service() const
ConstRecHitContainer selectMuonHits(const Trajectory &, const std::vector< int > &) const
select muon hits compatible with trajectory; check hits in chambers with showers
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
std::vector< ConstMuonRecHitPointer > ConstMuonRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
GlobalMuonTrackMatcher * theTrackMatcher
MuonTrajectoryBuilder::CandidateContainer build(const TrackCand &, MuonTrajectoryBuilder::CandidateContainer &) const
build combined trajectory from sta Track and tracker RecHits
double b
Definition: hdecay.h:120
RectangularEtaPhiTrackingRegion defineRegionOfInterest(const reco::TrackRef &) const
define region of interest with tracker
const Trajectory * chooseTrajectory(const std::vector< Trajectory * > &, int) const
choose final trajectory
double a
Definition: hdecay.h:121
RefitDirection checkRecHitsOrdering(const ConstRecHitContainer &) const
This does nothing now.
TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
MuonTrackingRegionBuilder * theRegionBuilder
std::vector< MuonRecHitPointer > MuonRecHitContainer
edm::ESHandle< TransientTrackingRecHitBuilder > theTrackerRecHitBuilder
void checkMuonHits(const reco::Track &, ConstRecHitContainer &, ConstRecHitContainer &, std::vector< int > &) const
check muon RecHits, calculate chamber occupancy and select hits to be used in the final fit ...