CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/RecoTracker/FinalTrackSelectors/interface/AnalyticalTrackSelector.h

Go to the documentation of this file.
00001 #ifndef RecoAlgos_AnalyticalTrackSelector_h
00002 #define RecoAlgos_AnalyticalTrackSelector_h
00003 
00015 #include <utility>
00016 #include <vector>
00017 #include <memory>
00018 #include <algorithm>
00019 #include <map>
00020 #include "FWCore/Framework/interface/EDProducer.h"
00021 #include "FWCore/Framework/interface/Event.h"
00022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00023 #include "FWCore/Utilities/interface/InputTag.h"
00024 
00025 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00026 #include "DataFormats/TrackReco/interface/Track.h"
00027 #include "DataFormats/TrackReco/interface/TrackExtra.h"
00028 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00029 #include "DataFormats/VertexReco/interface/Vertex.h"
00030 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00031 #include "TrackingTools/PatternTools/interface/Trajectory.h"
00032 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
00033 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h"
00034 #include "CommonTools/Utils/interface/StringCutObjectSelector.h"
00035 
00036 #include "RecoTracker/FinalTrackSelectors/src/MultiTrackSelector.h"
00037 
00038 namespace reco { namespace modules {
00039     //class MultiTrackSelector;
00040 
00041     class AnalyticalTrackSelector : public MultiTrackSelector {
00042         private:
00043         public:
00045             explicit AnalyticalTrackSelector( const edm::ParameterSet & cfg ) ;
00047             virtual ~AnalyticalTrackSelector() ;
00048 
00049         protected:
00050             typedef math::XYZPoint Point;
00052             void produce( edm::Event& evt, const edm::EventSetup& es ) ;
00053  
00055             bool copyExtras_;
00057             bool copyTrajectories_;
00059             double minEta_;
00060             double maxEta_;
00061                         
00063             std::auto_ptr<reco::TrackCollection> selTracks_;
00064             std::auto_ptr<reco::TrackExtraCollection> selTrackExtras_;
00065             std::auto_ptr< TrackingRecHitCollection>  selHits_;
00066             std::auto_ptr< std::vector<Trajectory> > selTrajs_;
00067             std::auto_ptr< std::vector<const Trajectory *> > selTrajPtrs_;
00068             std::auto_ptr< TrajTrackAssociationCollection >  selTTAss_;
00069             reco::TrackRefProd rTracks_;
00070             reco::TrackExtraRefProd rTrackExtras_;
00071             TrackingRecHitRefProd rHits_;
00072             edm::RefProd< std::vector<Trajectory> > rTrajectories_;
00073             std::vector<reco::TrackRef> trackRefs_;
00074 
00075     };
00076 
00077 } }
00078 
00079 #endif