CMS 3D CMS Logo

TrackAssociatorByHits.h

Go to the documentation of this file.
00001 #ifndef TrackAssociatorByHits_h
00002 #define TrackAssociatorByHits_h
00003 
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005 #include "FWCore/Framework/interface/Event.h"
00006 #include "FWCore/Framework/interface/EventSetup.h"
00007 #include "FWCore/Framework/interface/ESHandle.h"
00008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00009 #include "DataFormats/Common/interface/EDProduct.h"
00010 #include "DataFormats/Common/interface/Ref.h"
00011 #include "SimTracker/TrackerHitAssociation/interface/TrackerHitAssociator.h"
00012 
00013 //reco track
00014 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00015 #include "DataFormats/TrackReco/interface/Track.h"
00016 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
00017 //TrackingParticle
00018 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h"
00019 #include "SimDataFormats/EncodedEventId/interface/EncodedEventId.h"
00020 #include "SimTracker/TrackAssociation/interface/TrackAssociatorBase.h"
00021 
00022 class TrackAssociatorByHits : public TrackAssociatorBase {
00023   
00024  public:
00025   explicit TrackAssociatorByHits( const edm::ParameterSet& );  
00026   ~TrackAssociatorByHits();
00027   
00028   /* Associate SimTracks to RecoTracks By Hits */
00029  
00031   reco::RecoToSimCollection associateRecoToSim(edm::RefToBaseVector<reco::Track>&,
00032                                                edm::RefVector<TrackingParticleCollection>&,
00033                                                const edm::Event * event = 0 ) const ;
00035   reco::SimToRecoCollection associateSimToReco(edm::RefToBaseVector<reco::Track>&,
00036                                                edm::RefVector<TrackingParticleCollection>&,
00037                                                const edm::Event * event = 0 ) const ;
00038   
00040   reco::RecoToSimCollection associateRecoToSim(edm::Handle<edm::View<reco::Track> >& tCH, 
00041                                                edm::Handle<TrackingParticleCollection>& tPCH, 
00042                                                const edm::Event * event = 0) const {
00043     return TrackAssociatorBase::associateRecoToSim(tCH,tPCH,event);
00044   }
00045   
00047   reco::SimToRecoCollection associateSimToReco(edm::Handle<edm::View<reco::Track> >& tCH, 
00048                                                edm::Handle<TrackingParticleCollection>& tPCH,
00049                                                const edm::Event * event = 0) const {
00050     return TrackAssociatorBase::associateSimToReco(tCH,tPCH,event);
00051   }  
00052 
00053   //seed
00054   reco::RecoToSimCollectionSeed associateRecoToSim(edm::Handle<edm::View<TrajectorySeed> >&, 
00055                                                    edm::Handle<TrackingParticleCollection>&, 
00056                                                    const edm::Event * event = 0) const;
00057   
00058   reco::SimToRecoCollectionSeed associateSimToReco(edm::Handle<edm::View<TrajectorySeed> >&, 
00059                                                    edm::Handle<TrackingParticleCollection>&, 
00060                                                    const edm::Event * event = 0) const;
00061   template<typename iter>
00062   void getMatchedIds(std::vector<SimHitIdpr>&, 
00063                      std::vector<SimHitIdpr>&, 
00064                      int&, 
00065                      iter,
00066                      iter,
00067                      TrackerHitAssociator*) const;
00068   
00069   int getShared(std::vector<SimHitIdpr>&, 
00070                 std::vector<SimHitIdpr>&,
00071                 TrackingParticleCollection::const_iterator) const;
00072 
00073  private:
00074   // ----- member data
00075   const edm::ParameterSet& conf_;
00076   const bool AbsoluteNumberOfHits;
00077   const std::string SimToRecoDenominator;
00078   const double quality_SimToReco;
00079   const double purity_SimToReco;
00080   const double cut_RecoToSim;
00081   const bool UsePixels;
00082   const bool UseGrouped;
00083   const bool UseSplitting;
00084   const bool ThreeHitTracksAreSpecial;
00085   int LayerFromDetid(const DetId&) const;
00086 
00087   const TrackingRecHit* getHitPtr(edm::OwnVector<TrackingRecHit>::const_iterator iter) const {return &*iter;}
00088   const TrackingRecHit* getHitPtr(trackingRecHit_iterator iter) const {return &**iter;}
00089 };
00090 
00091 #endif

Generated on Tue Jun 9 17:47:54 2009 for CMSSW by  doxygen 1.5.4