File indexing completed on 2025-02-05 23:51:00
0001 #ifndef Calibration_TkAlCaRecoProducers_CalibrationTrackSelector_h
0002 #define Calibration_TkAlCaRecoProducers_CalibrationTrackSelector_h
0003
0004 #include <vector>
0005
0006 #include "DataFormats/TrackReco/interface/Track.h"
0007 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h"
0008 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h"
0009 #include "FWCore/Framework/interface/ConsumesCollector.h"
0010 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0011 #include "FWCore/Utilities/interface/InputTag.h"
0012
0013 namespace edm {
0014 class Event;
0015 class ParameterSet;
0016 }
0017
0018 class TrackingRecHit;
0019
0020 class CalibrationTrackSelector {
0021 public:
0022 typedef std::vector<const reco::Track *> Tracks;
0023
0024
0025 CalibrationTrackSelector(const edm::ParameterSet &cfg, edm::ConsumesCollector &iC);
0026
0027
0028 ~CalibrationTrackSelector();
0029
0030
0031 Tracks select(const Tracks &tracks, const edm::Event &evt) const;
0032
0033 static void fillPSetDescription(edm::ParameterSetDescription &desc);
0034
0035 private:
0036
0037 Tracks basicCuts(const Tracks &tracks, const edm::Event &evt) const;
0038
0039 bool detailedHitsCheck(const reco::Track *track, const edm::Event &evt) const;
0040 bool isHit2D(const TrackingRecHit &hit) const;
0041 bool isOkCharge(const TrackingRecHit *therechit) const;
0042 bool isIsolated(const TrackingRecHit *therechit, const edm::Event &evt) const;
0043
0044
0045 Tracks theNHighestPtTracks(const Tracks &tracks) const;
0046
0047
0048 struct ComparePt {
0049 bool operator()(const reco::Track *t1, const reco::Track *t2) const { return t1->pt() > t2->pt(); }
0050 };
0051 ComparePt ptComparator;
0052
0053 const bool applyBasicCuts_, applyNHighestPt_, applyMultiplicityFilter_;
0054 const int seedOnlyFromAbove_;
0055 const bool applyIsolation_, chargeCheck_;
0056 const int nHighestPt_, minMultiplicity_, maxMultiplicity_;
0057 const bool multiplicityOnInput_;
0058
0059 const double ptMin_, ptMax_, etaMin_, etaMax_, phiMin_, phiMax_, nHitMin_, nHitMax_, chi2nMax_;
0060 const double minHitChargeStrip_, minHitIsolation_;
0061 const edm::InputTag rphirecHitsTag_;
0062 const edm::InputTag matchedrecHitsTag_;
0063 const unsigned int nHitMin2D_;
0064 const int minHitsinTIB_, minHitsinTOB_, minHitsinTID_, minHitsinTEC_, minHitsinBPIX_, minHitsinFPIX_;
0065 const edm::EDGetTokenT<SiStripRecHit2DCollection> rphirecHitsToken_;
0066 const edm::EDGetTokenT<SiStripMatchedRecHit2DCollection> matchedrecHitsToken_;
0067 };
0068
0069 #endif