CMS 3D CMS Logo

AlignmentTrackSelector.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentTrackSelector_h
00002 #define Alignment_CommonAlignmentAlgorithm_AlignmentTrackSelector_h
00003 
00004 #include "DataFormats/TrackReco/interface/Track.h"
00005 #include "FWCore/ParameterSet/interface/InputTag.h"
00006 #include <vector>
00007 
00008 namespace edm {
00009   class Event;
00010   class ParameterSet;
00011 }
00012 
00013 class TrackingRecHit;
00014 class SiStripRecHit2D;
00015 
00016 class AlignmentTrackSelector
00017 {
00018 
00019  public:
00020 
00021   typedef std::vector<const reco::Track*> Tracks; 
00022 
00024   AlignmentTrackSelector(const edm::ParameterSet & cfg);
00025 
00027   ~AlignmentTrackSelector();
00028 
00030   Tracks select(const Tracks& tracks, const edm::Event& evt) const;
00032   bool useThisFilter();
00033 
00034 
00035  private:
00036 
00038   Tracks basicCuts(const Tracks& tracks, const edm::Event& evt) const;
00040   bool detailedHitsCheck(const reco::Track* track, const edm::Event& evt) const;
00041   bool isHit2D(const TrackingRecHit &hit) const;
00043   bool isOkCharge(const TrackingRecHit* therechit) const;
00044   bool isOkChargeStripHit(const SiStripRecHit2D *siStripRecHit2D) const;
00045   bool isIsolated(const TrackingRecHit* therechit, const edm::Event& evt) const;
00046 
00048   Tracks theNHighestPtTracks(const Tracks& tracks) const;
00049 
00051   struct ComparePt {
00052     bool operator()( const reco::Track* t1, const reco::Track* t2 ) const {
00053       return t1->pt()> t2->pt();
00054     }
00055   };
00056   ComparePt ptComparator;
00057 
00058   const bool applyBasicCuts_, applyNHighestPt_, applyMultiplicityFilter_;
00059   const bool seedOnlyFromAbove_, applyIsolation_, chargeCheck_ ;
00060   const int nHighestPt_, minMultiplicity_, maxMultiplicity_;
00061   const bool multiplicityOnInput_; 
00062   const double ptMin_,ptMax_,pMin_,pMax_,etaMin_,etaMax_,phiMin_,phiMax_,nHitMin_,nHitMax_,chi2nMax_;
00063   const double minHitChargeStrip_, minHitIsolation_;
00064   const edm::InputTag rphirecHitsTag_;
00065   const edm::InputTag matchedrecHitsTag_;
00066   const bool countStereoHitAs2D_; // count hits on stereo components of GluedDet for nHitMin2D_?
00067   const unsigned int nHitMin2D_;
00068   const int minHitsinTIB_, minHitsinTOB_, minHitsinTID_, minHitsinTEC_, minHitsinBPIX_, minHitsinFPIX_;
00069 
00070 };
00071 
00072 #endif
00073 

Generated on Tue Jun 9 17:23:52 2009 for CMSSW by  doxygen 1.5.4