CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoMuon/StandAloneTrackFinder/interface/StandAloneTrajectoryBuilder.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_TrackFinder_StandAloneTrajectoryBuilder_H
00002 #define RecoMuon_TrackFinder_StandAloneTrajectoryBuilder_H
00003 
00012 #include "RecoMuon/TrackingTools/interface/MuonTrajectoryBuilder.h"
00013 
00014 #include "RecoMuon/TrackingTools/interface/RecoMuonEnumerators.h"
00015 
00016 
00017 class TrajectorySeed;
00018 class StandAloneMuonFilter;
00019 class StandAloneMuonBackwardFilter;
00020 class StandAloneMuonRefitter;
00021 class MuonServiceProxy;
00022 class SeedTransformer;
00023 
00024 namespace edm {class ParameterSet;}
00025 
00026 class StandAloneMuonTrajectoryBuilder : public MuonTrajectoryBuilder{
00027 
00028  public:
00029   typedef std::pair<const DetLayer*,TrajectoryStateOnSurface> DetLayerWithState;    
00030   
00031  public:
00033   StandAloneMuonTrajectoryBuilder(const edm::ParameterSet&, const MuonServiceProxy*);
00034 
00036   virtual ~StandAloneMuonTrajectoryBuilder();
00037 
00038   // Returns a vector of the reconstructed trajectories compatible with
00039   // the given seed.
00040   TrajectoryContainer trajectories(const TrajectorySeed&);
00041 
00043   virtual CandidateContainer trajectories(const TrackCand&) {return CandidateContainer();}
00044 
00046   StandAloneMuonFilter* filter() const {return theFilter;}
00047 
00049   StandAloneMuonFilter* bwfilter() const {return theBWFilter;}
00050 
00052   StandAloneMuonRefitter* refitter() const {return theRefitter;}
00053 
00055   virtual void setEvent(const edm::Event& event);
00056   
00057  protected:
00058 
00059  private:
00060   
00061   DetLayerWithState propagateTheSeedTSOS(TrajectoryStateOnSurface& aTSOS, DetId& aDetId);
00062 
00063  private:
00064 
00067   std::string theNavigationType;
00068 
00069   recoMuon::SeedPosition theSeedPosition;
00070   
00072   std::string theSeedPropagatorName;
00073   
00074   StandAloneMuonFilter* theFilter;
00075   StandAloneMuonFilter* theBWFilter;
00076   // FIXME
00077   //  StandAloneMuonBackwardFilter* theBWFilter;
00078   StandAloneMuonRefitter* theRefitter;
00079   SeedTransformer* theSeedTransformer;
00080 
00081   bool doBackwardFilter;
00082   bool doRefit;
00083   bool doSeedRefit;
00084   std::string theBWSeedType;
00085 
00086   const MuonServiceProxy *theService;
00087 };
00088 #endif