|
|
|
template<typename T > |
std::unique_ptr< edmNew::DetSetVector< T > > | cleanup (const edmNew::DetSetVector< T > &oldClusters, const std::vector< uint8_t > &isGood, reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices *oldRefs) |
|
void | mergeOld (reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices &oldRefs) |
|
void | process (const OmniClusterRef &cluRef, SiStripDetId &detid, bool fromTrack) |
|
void | process (const TrackingRecHit *hit, unsigned char chi2, const TrackerGeometry *tg) |
|
void | readPSet (const edm::ParameterSet &iConfig, const std::string &name, int id1=-1, int id2=-1, int id3=-1, int id4=-1, int id5=-1, int id6=-1) |
|
float | sensorThickness (const SiStripDetId &detid) const |
|
Definition at line 41 of file HITrackClusterRemover.cc.
◆ PixelMaskContainer
◆ StripMaskContainer
◆ HITrackClusterRemover()
Definition at line 145 of file HITrackClusterRemover.cc.
146 :
tTrackerGeom_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord>()),
153 iConfig.
existsAs<
bool>(
"doStripChargeCheck") ? iConfig.
getParameter<
bool>(
"doStripChargeCheck") :
false),
155 iConfig.
existsAs<
bool>(
"doPixelChargeCheck") ? iConfig.
getParameter<
bool>(
"doPixelChargeCheck") :
false),
161 if (iConfig.
exists(
"overrideTrkQuals"))
163 if (iConfig.
exists(
"clusterLessSolution"))
167 <<
"HITrackClusterRemover: Charge check asked without cluster collection ";
170 <<
"HITrackClusterRemover: Pixel cluster charge check not yet implemented";
173 produces<edmNew::DetSetVector<SiPixelCluster> >();
175 produces<edmNew::DetSetVector<SiStripCluster> >();
177 produces<ClusterRemovalInfo>();
189 readPSet(iConfig,
"Strip", 2, 3, 4, 5);
190 readPSet(iConfig,
"StripInner", 2, 3);
191 readPSet(iConfig,
"StripOuter", 4, 5);
198 bool usingCharge =
false;
202 <<
"HITrackClusterRemover: Missing configuration for detector with subDetID = " << (
i + 1);
203 if (
pblocks_[
i].usesCharge_ && !usingCharge) {
204 throw cms::Exception(
"Configuration Error") <<
"HITrackClusterRemover: Configuration for subDetID = " << (
i + 1)
205 <<
" uses cluster charge, which is not enabled.";
210 produces<edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > >();
211 produces<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster> > >();
215 if (iConfig.
exists(
"TrackQuality")) {
219 iConfig.
existsAs<
int>(
"minNumberOfLayersWithMeasBeforeFiltering")
220 ? iConfig.
getParameter<
int>(
"minNumberOfLayersWithMeasBeforeFiltering")
References cms::cuda::assert(), clusterWasteSolution_, doPixel_, doPixelChargeCheck_, doStrip_, doStripChargeCheck_, doTracks_, Exception, edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), ntuplemaker::fill, filterTracks_, edm::ParameterSet::getParameter(), mps_fire::i, HLT_FULL_cff::InputTag, label, mergeOld_, minNumberOfLayersWithMeasBeforeFiltering_, NumberOfParamBlocks, oldPxlMaskToken_, oldRemovalInfo_, oldStrMaskToken_, overrideTrkQuals_, pblocks_, pixelClusters_, reco::TrackBase::qualityByName(), readPSet(), rphiRecHitToken_, stereoRecHitToken_, AlCaHLTBitMon_QueryRunRegistry::string, stripClusters_, stripRecHits_, trackQuality_, tracks_, and reco::TrackBase::undefQuality.
◆ ~HITrackClusterRemover()
HITrackClusterRemover::~HITrackClusterRemover |
( |
| ) |
|
|
override |
◆ cleanup()
◆ mergeOld()
◆ process() [1/2]
Definition at line 310 of file HITrackClusterRemover.cc.
314 <<
"HITrackClusterRemover: strip cluster ref from Product ID = " << cluster.
id()
315 <<
" does not match with source cluster collection (ID = " <<
stripSourceProdID <<
")\n.";
322 if (
pblocks_[subdet - 1].cutOnStripCharge_ &&
References cms::cuda::assert(), OmniClusterRef::cluster_strip(), clusterWasteSolution_, collectedStrips_, edm::Ref< C, T, F >::id(), edm::Ref< C, T, F >::key(), HITrackClusterRemover::ParamBlock::maxSize_, HITrackClusterRemover::ParamBlock::minGoodStripCharge_, pblocks_, sensorThickness(), strips, stripSourceProdID, and DetId::subdetId().
◆ process() [2/2]
Definition at line 336 of file HITrackClusterRemover.cc.
356 <<
"HITrackClusterRemover: pixel cluster ref from Product ID = " << cluster.
id()
357 <<
" does not match with source cluster collection (ID = " <<
pixelSourceProdID <<
")\n.";
378 const type_info &hitType =
typeid(*hit);
397 <<
"Don't know how to handle " << hitType.name() <<
" on detid " << detid.
rawId() <<
"\n";
References cms::cuda::assert(), hltPixelTracks_cff::chi2, SiPixelRecHit::cluster(), clusterWasteSolution_, collectedPixels_, doPixel_, doStrip_, Exception, TrackerGeometry::geomDetSubDetector(), edm::Ref< C, T, F >::id(), GeomDetEnumerators::isTrackerPixel(), edm::Ref< C, T, F >::key(), HITrackClusterRemover::ParamBlock::maxSize_, SiStripMatchedRecHit2D::monoClusterRef(), NumberOfParamBlocks, TrackerSingleRecHit::omniClusterRef(), ProjectedSiStripRecHit2D::originalHit(), pblocks_, pixels, pixelSourceProdID, DetId::rawId(), SiStripMatchedRecHit2D::stereoClusterRef(), DetId::subdetId(), and Traj2TrackHits::toChi2x5().
Referenced by produce().
◆ produce()
Definition at line 411 of file HITrackClusterRemover.cc.
412 ProductID pixelOldProdID, stripOldProdID;
430 std::unique_ptr<ClusterRemovalInfo> cri;
446 cri->getOldClustersFrom(*oldRemovalInfo);
455 <<
"HITrackClusterRemover: "
458 <<
"\t but the *old* ClusterRemovalInfo " <<
labels.productInstance <<
" refers as 'new product ids' to "
461 <<
"NOTA BENE: when running HITrackClusterRemover with an old ClusterRemovalInfo the hits in the trajectory "
462 "MUST be already re-keyed.\n";
482 LogDebug(
"HITrackClusterRemover") <<
"to merge in, " << oldStrMask->
size() <<
" strp and " << oldPxlMask->
size()
497 std::vector<Handle<edm::ValueMap<int> > > quals;
506 if (!quals.empty()) {
507 int qual = (*(quals[0])).get(it++);
521 auto const &chi2sX5 =
track.extra()->chi2sX5();
523 auto hb =
track.recHitsBegin();
524 for (
unsigned int h = 0;
h <
track.recHitsSize();
h++) {
562 cri->setNewPixelClusters(newPixels);
568 cri->setNewStripClusters(newStrips);
585 LogDebug(
"HITrackClusterRemover") <<
"total strip to skip: "
591 LogDebug(
"HITrackClusterRemover") <<
"total pxl to skip: "
References cms::cuda::assert(), cleanup(), clusterWasteSolution_, collectedPixels_, collectedStrips_, edm::ContainerMask< T >::copyMaskTo(), submitPVResolutionJobs::count, doPixel_, doStrip_, doStripChargeCheck_, doTracks_, Exception, ntuplemaker::fill, filterTracks_, edm::EventSetup::getData(), h, hcalSimParameters_cfi::hb, edm::RefProd< C >::id(), iEvent, SummaryClient_cfi::labels, LogDebug, mergeOld_, minNumberOfLayersWithMeasBeforeFiltering_, eostools::move(), oldPxlMaskToken_, oldRemovalInfo_, oldStrMaskToken_, overrideTrkQuals_, LumiMonitor_cff::pixelClusters, pixelClusters_, reco::ClusterRemovalInfo::pixelIndices(), reco::ClusterRemovalInfo::pixelNewRefProd(), reco::ClusterRemovalInfo::pixelRefProd(), pixels, pixelSourceProdID, process(), rpcPointValidation_cfi::recHit, LaserSeedGenerator_cfi::rphiRecHits, rphiRecHitToken_, edm::ContainerMask< T >::size(), LaserSeedGenerator_cfi::stereoRecHits, stereoRecHitToken_, HLT_FULL_cff::stripClusters, stripClusters_, reco::ClusterRemovalInfo::stripIndices(), reco::ClusterRemovalInfo::stripNewRefProd(), reco::ClusterRemovalInfo::stripRefProd(), strips, stripSourceProdID, HLT_FULL_cff::track, trackQuality_, tracks, tracks_, and tTrackerGeom_.
◆ readPSet()
void HITrackClusterRemover::readPSet |
( |
const edm::ParameterSet & |
iConfig, |
|
|
const std::string & |
name, |
|
|
int |
id1 = -1 , |
|
|
int |
id2 = -1 , |
|
|
int |
id3 = -1 , |
|
|
int |
id4 = -1 , |
|
|
int |
id5 = -1 , |
|
|
int |
id6 = -1 |
|
) |
| |
|
private |
◆ sensorThickness()
float HITrackClusterRemover::sensorThickness |
( |
const SiStripDetId & |
detid | ) |
const |
|
private |
◆ clusterWasteSolution_
bool HITrackClusterRemover::clusterWasteSolution_ |
|
private |
◆ collectedPixels_
std::vector<bool> HITrackClusterRemover::collectedPixels_ |
|
private |
◆ collectedStrips_
std::vector<bool> HITrackClusterRemover::collectedStrips_ |
|
private |
◆ doPixel_
bool HITrackClusterRemover::doPixel_ |
|
private |
◆ doPixelChargeCheck_
bool HITrackClusterRemover::doPixelChargeCheck_ |
|
private |
◆ doStrip_
bool HITrackClusterRemover::doStrip_ |
|
private |
◆ doStripChargeCheck_
bool HITrackClusterRemover::doStripChargeCheck_ |
|
private |
◆ doTracks_
bool HITrackClusterRemover::doTracks_ |
|
private |
◆ filterTracks_
bool HITrackClusterRemover::filterTracks_ |
|
private |
◆ mergeOld_
bool HITrackClusterRemover::mergeOld_ |
|
private |
◆ minNumberOfLayersWithMeasBeforeFiltering_
int HITrackClusterRemover::minNumberOfLayersWithMeasBeforeFiltering_ |
|
private |
◆ NumberOfParamBlocks
const unsigned int HITrackClusterRemover::NumberOfParamBlocks = 6 |
|
staticprivate |
◆ oldPxlMaskToken_
◆ oldRemovalInfo_
◆ oldStrMaskToken_
◆ overrideTrkQuals_
◆ pblocks_
◆ pixelClusters_
◆ pixelRecHits_
std::string HITrackClusterRemover::pixelRecHits_ |
|
private |
◆ pixels
std::vector<uint8_t> HITrackClusterRemover::pixels |
|
private |
◆ pixelSourceProdID
◆ rphiRecHitToken_
◆ stereoRecHitToken_
◆ stripClusters_
◆ stripRecHits_
std::string HITrackClusterRemover::stripRecHits_ |
|
private |
◆ strips
std::vector<uint8_t> HITrackClusterRemover::strips |
|
private |
◆ stripSourceProdID
◆ trackQuality_
◆ tracks_
◆ tTrackerGeom_
SiStripModuleGeometry moduleGeometry() const
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClusters_
ProductID id() const
Accessor for product ID.
edm::EDGetTokenT< PixelMaskContainer > oldPxlMaskToken_
static unsigned char toChi2x5(float chi2)
ParamBlock pblocks_[NumberOfParamBlocks]
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
const SiStripClusterRefProd & stripRefProd() const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
void process(const TrackingRecHit *hit, unsigned char chi2, const TrackerGeometry *tg)
const_iterator begin(bool update=false) const
reco::TrackBase::TrackQuality trackQuality_
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
ClusterRef cluster() const
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tTrackerGeom_
std::string pixelRecHits_
std::vector< uint8_t > strips
edm::ProductID pixelSourceProdID
void readPSet(const edm::ParameterSet &iConfig, const std::string &name, int id1=-1, int id2=-1, int id3=-1, int id4=-1, int id5=-1, int id6=-1)
edm::ProductID stripSourceProdID
std::vector< bool > collectedPixels_
std::vector< bool > collectedStrips_
float sensorThickness(const SiStripDetId &detid) const
SiStripRecHit2D originalHit() const
int minNumberOfLayersWithMeasBeforeFiltering_
edm::EDGetTokenT< SiStripRecHit2DCollection > rphiRecHitToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClusters_
size_type dataSize() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
static const unsigned int NumberOfParamBlocks
edm::EDGetTokenT< reco::TrackCollection > tracks_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
std::vector< edm::EDGetTokenT< edm::ValueMap< int > > > overrideTrkQuals_
const GeomDetEnumerators::SubDetector geomDetSubDetector(int subdet) const
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
OmniClusterRef const & stereoClusterRef() const
float minGoodStripCharge_
edm::EDGetTokenT< reco::ClusterRemovalInfo > oldRemovalInfo_
std::string stripRecHits_
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
static constexpr auto TOB
std::vector< data_type > DataContainer
const SiStripClusterRefProd & stripNewRefProd() const
OmniClusterRef const & monoClusterRef() const
bool getData(T &iHolder) const
const SiPixelClusterRefProd & pixelRefProd() const
edm::EDGetTokenT< StripMaskContainer > oldStrMaskToken_
static TrackQuality qualityByName(const std::string &name)
void mergeOld(reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices &oldRefs)
ProductID id() const
Accessor for product ID.
constexpr uint32_t rawId() const
get the raw id
data_type const * data(size_t cell) const
void copyMaskTo(std::vector< bool > &) const
const SiPixelClusterRefProd & pixelNewRefProd() const
const_iterator end(bool update=false) const
std::unique_ptr< edmNew::DetSetVector< T > > cleanup(const edmNew::DetSetVector< T > &oldClusters, const std::vector< uint8_t > &isGood, reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices *oldRefs)
static constexpr auto TIB
std::vector< uint8_t > pixels
T getParameter(std::string const &) const
edm::EDGetTokenT< SiStripRecHit2DCollection > stereoRecHitToken_
key_type key() const
Accessor for product key.
Detector identifier class for the strip tracker.
bool clusterWasteSolution_
OmniClusterRef const & omniClusterRef() const