|
![CMS Logo](/cmsdoxygen/common/rightImage.jpg) |
#include <DQM/SiStripCommissioningSources/plugins/tracking/SiStripFineDelayHit.cc>
|
| SiStripFineDelayHit (const edm::ParameterSet &) |
|
| ~SiStripFineDelayHit () override |
|
| EDProducer () |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () |
|
SerialTaskQueue * | globalRunsQueue () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDProducer () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
|
| ProducerBase () |
|
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
|
std::vector< bool > const & | recordProvenanceList () const |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
using | DeviceMask = std::pair< uint32_t, uint32_t > |
|
|
void | beginRun (const edm::Run &, const edm::EventSetup &) override |
|
std::pair< const SiStripCluster *, double > | closestCluster (const TrackerGeometry &tracker, const reco::Track *tk, const uint32_t &detId, const edmNew::DetSetVector< SiStripCluster > &clusters, const edm::DetSetVector< SiStripDigi > &hits) |
|
std::vector< std::pair< uint32_t, std::pair< double, double > > > | detId (const TrackerGeometry &tracker, const TrackerTopology *tkrTopo, const reco::Track *tk, const std::vector< Trajectory > &trajVec, const StripSubdetector::SubDetector subdet=StripSubdetector::TIB, const int substructure=0xff) |
|
std::vector< std::pair< uint32_t, std::pair< double, double > > > | detId (const TrackerGeometry &tracker, const TrackerTopology *tkrTopo, const reco::Track *tk, const std::vector< Trajectory > &trajVec, const uint32_t &maskDetId, const uint32_t &rootDetId) |
|
DeviceMask | deviceMask (const StripSubdetector::SubDetector subdet, const int substructure, const TrackerTopology *tkrTopo) |
|
void | produce (edm::Event &, const edm::EventSetup &) override |
|
virtual void | produceNoTracking (edm::Event &, const edm::EventSetup &) |
|
bool | rechit (reco::Track *tk, uint32_t detId) |
|
|
typedef EDProducer | ModuleType |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &descriptions) |
|
static bool | wantsGlobalLuminosityBlocks () |
|
static bool | wantsGlobalRuns () |
|
static bool | wantsStreamLuminosityBlocks () |
|
static bool | wantsStreamRuns () |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
| declare what type of product will make and with which optional label More...
|
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
ProducesCollector | producesCollector () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
|
ConsumesCollector | consumesCollector () |
| Use a ConsumesCollector to gather consumes information from helper functions. More...
|
|
template<typename ProductType , BranchType B = InEvent> |
void | consumesMany () |
|
void | consumesMany (const TypeToGet &id) |
|
template<BranchType B> |
void | consumesMany (const TypeToGet &id) |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 39 of file SiStripFineDelayHit.h.
◆ DeviceMask
◆ SiStripFineDelayHit()
Definition at line 75 of file SiStripFineDelayHit.cc.
77 produces<edm::DetSetVector<SiStripRawDigi> >(
"FineDelaySelection");
References anglefinder_, clustersToken_, cosmic_, digiToken_, explorationWindow_, field_, edm::ParameterSet::getParameter(), homeMadeClusters_, inputModuleToken_, maxAngle_, maxClusterDistance_, minTrackP2_, mode_, noTracking_, seedcollToken_, trackCollectionToken_, and trackToken_.
◆ ~SiStripFineDelayHit()
SiStripFineDelayHit::~SiStripFineDelayHit |
( |
| ) |
|
|
override |
◆ beginRun()
◆ closestCluster()
Definition at line 260 of file SiStripFineDelayHit.cc.
266 std::pair<const SiStripCluster*, double>
result(
nullptr, 0.);
267 double hitStrip = -1;
271 LogDebug(
"closestCluster") <<
"(*it)->geographicalId().rawId() vs det_id" << (*it)->geographicalId().rawId() <<
" "
274 if ((*it)->geographicalId().rawId() == det_id) {
275 if (!(*it)->isValid())
277 LogDebug(
"closestCluster") <<
" using the single mono hit";
279 const GeomDetUnit* gdu = static_cast<const GeomDetUnit*>(
tracker.idToDet((*it)->geographicalId()));
282 nstrips = (dynamic_cast<const StripTopology*>(&(gdu->
topology())))->nstrips();
320 LogDebug(
"closestCluster") <<
" hit strip = " << hitStrip;
326 if (DSViter->id == det_id) {
329 minStrip = minStrip < 0 ? 0 : minStrip;
331 maxStrip = maxStrip >= nstrips ? nstrips - 1 : maxStrip;
335 if (digiIt->strip() >= minStrip && rangeStart == DSViter->
end())
337 if (digiIt->strip() <= maxStrip)
340 if (rangeStart != DSViter->end()) {
341 if (rangeStop != DSViter->end())
344 LogDebug(
"closestCluster") <<
"build a fake cluster ";
347 result.first = newCluster;
357 if (DSViter->id() == det_id) {
358 LogDebug(
"closestCluster") <<
" detset with the right detid. ";
364 double dist = fabs(iter->barycenter() - hitStrip);
365 if (dist <
result.second) {
References SiStripCluster::barycenter(), begin, bsc_activity_cfg::clusters, end, edm::DetSet< T >::end(), explorationWindow_, hfClusterShapes_cfi::hits, homeMadeClusters_, createfilelist::int, LogDebug, Topology::measurementPosition(), AlCaHLTBitMon_ParallelJobs::p, reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), mps_fire::result, GeomDet::topology(), and PbPb_ZMuSkimMuonDPG_cff::tracker.
Referenced by produce().
◆ detId() [1/2]
◆ detId() [2/2]
std::vector< std::pair< uint32_t, std::pair< double, double > > > SiStripFineDelayHit::detId |
( |
const TrackerGeometry & |
tracker, |
|
|
const TrackerTopology * |
tkrTopo, |
|
|
const reco::Track * |
tk, |
|
|
const std::vector< Trajectory > & |
trajVec, |
|
|
const uint32_t & |
maskDetId, |
|
|
const uint32_t & |
rootDetId |
|
) |
| |
|
private |
Definition at line 163 of file SiStripFineDelayHit.cc.
170 bool onDisk = ((maskDetId == tkrTopo->
tidDetId(3, 15, 0, 0, 0, 0).
rawId()) ||
171 (maskDetId == tkrTopo->
tecDetId(3, 15, 0, 0, 0, 0, 0).
rawId()));
172 std::vector<std::pair<uint32_t, std::pair<double, double> > >
result;
173 std::vector<uint32_t> usedDetids;
175 std::vector<std::pair<std::pair<DetId, LocalPoint>,
float> > hitangle;
179 for (std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj < trajVec.end(); ++traj) {
180 if (((traj->lastMeasurement().recHit()->geographicalId().rawId() ==
181 (*(tk->
recHitsEnd() - 1))->geographicalId().rawId()) &&
182 (traj->lastMeasurement().recHit()->localPosition().x() == (*(tk->
recHitsEnd() - 1))->localPosition().x())) ||
183 ((traj->firstMeasurement().recHit()->geographicalId().rawId() ==
184 (*(tk->
recHitsEnd() - 1))->geographicalId().rawId()) &&
185 (traj->firstMeasurement().recHit()->localPosition().x() == (*(tk->
recHitsEnd() - 1))->localPosition().x()))) {
197 LogDebug(
"DetId") <<
"number of hits for the track: " << hitangle.size();
198 std::vector<std::pair<std::pair<DetId, LocalPoint>,
float> >::iterator iter;
200 for (iter = hitangle.begin(); iter != hitangle.end(); iter++) {
205 LogDebug(
"DetId") <<
"check the detid: " << std::hex << (iter->first.first.rawId()) <<
" vs " << rootDetId
206 <<
" with a mask of " << maskDetId <<
std::dec << std::endl;
208 if (((iter->first.first.rawId() & maskDetId) != rootDetId))
210 if (
std::find(usedDetids.begin(), usedDetids.end(), iter->first.first.rawId()) != usedDetids.end())
213 LogDebug(
"DetId") <<
"check the angle: " << fabs((iter->second));
217 std::pair<uint32_t, std::pair<double, double> > el;
218 std::pair<double, double> subel;
219 el.first = iter->first.first.rawId();
224 double trackParameters[5];
225 for (
int i = 0;
i < 5;
i++)
240 subel.second = iter->second;
244 usedDetids.push_back(el.first);
References anglefinder_, funct::cos(), cosmic_, TauDecayModes::dec, event_, field_, spr::find(), SiStripFineDelayTLA::findtrackangle(), edm::Event::getByToken(), runTauDisplay::gp, mps_fire::i, LogDebug, maxAngle_, reco::TrackBase::momentum(), reco::TrackBase::parameters(), Pi, DetId::rawId(), reco::Track::recHitsEnd(), mps_fire::result, seedcollToken_, TrackerTopology::tecDetId(), TrackerTopology::tidDetId(), SiStripFineDelayTOF::timeOfFlight(), PbPb_ZMuSkimMuonDPG_cff::tracker, and SiStripFineDelayTOF::trackParameters().
◆ deviceMask()
Definition at line 115 of file SiStripFineDelayHit.cc.
118 uint32_t rootDetId = 0;
119 uint32_t maskDetId = 0;
123 rootDetId = tkrTopo->
tibDetId(substructure, 0, 0, 0, 0, 0).
rawId();
128 rootDetId = tkrTopo->
tidDetId(substructure > 0 ? 2 : 1,
abs(substructure), 0, 0, 0, 0).
rawId();
133 rootDetId = tkrTopo->
tobDetId(substructure, 0, 0, 0, 0).
rawId();
138 rootDetId = tkrTopo->
tecDetId(substructure > 0 ? 2 : 1,
abs(substructure), 0, 0, 0, 0, 0).
rawId();
145 return std::make_pair(maskDetId, rootDetId);
References funct::abs(), DetId::rawId(), StripSubdetector::TEC, TrackerTopology::tecDetId(), StripSubdetector::TIB, TrackerTopology::tibDetId(), StripSubdetector::TID, TrackerTopology::tidDetId(), StripSubdetector::TOB, and TrackerTopology::tobDetId().
Referenced by detId(), and produceNoTracking().
◆ produce()
Implements edm::EDProducer.
Definition at line 377 of file SiStripFineDelayHit.cc.
398 std::vector<edm::DetSet<SiStripRawDigi> >
output;
416 hitSet =
hits.product();
424 std::vector<Trajectory> trajVec;
433 for (reco::TrackCollection::const_iterator itrack =
tracks->begin(); itrack <
tracks->end(); itrack++) {
435 if ((itrack->px() * itrack->px() + itrack->py() * itrack->py() + itrack->pz() * itrack->pz()) <
minTrackP2_)
438 std::vector<std::pair<uint32_t, std::pair<double, double> > > intersections;
444 uint32_t layerCode = (const_cast<SiStripEventSummary*>(
summary.product())->layerScanned()) >> 16;
446 if (((layerCode >> 6) & 0x3) == 0)
448 else if (((layerCode >> 6) & 0x3) == 1)
450 else if (((layerCode >> 6) & 0x3) == 2)
452 else if (((layerCode >> 6) & 0x3) == 3)
454 int32_t layerIdx = (layerCode & 0xF) * (((layerCode >> 4) & 0x3) ? -1 : 1);
460 LogDebug(
"produce") <<
" Found " << intersections.size() <<
" interesting intersections." << std::endl;
461 for (std::vector<std::pair<uint32_t, std::pair<double, double> > >::iterator it = intersections.begin();
462 it < intersections.end();
464 std::pair<const SiStripCluster*, double> candidateCluster =
466 if (candidateCluster.first) {
467 LogDebug(
"produce") <<
" Found a cluster." << std::endl;
471 LogDebug(
"produce") <<
" The cluster is close enough." << std::endl;
474 const auto& amplitudes = candidateCluster.first->amplitudes();
475 uint8_t leadingCharge = 0;
476 uint8_t leadingStrip = candidateCluster.first->firstStrip();
477 uint8_t leadingPosition = 0;
478 for (
auto amplit = amplitudes.begin(); amplit < amplitudes.end(); amplit++, leadingStrip++) {
479 if (leadingCharge < *amplit) {
480 leadingCharge = *amplit;
481 leadingPosition = leadingStrip;
486 std::vector<edm::DetSet<SiStripRawDigi> >::iterator newdsit =
output.begin();
490 if (newdsit ==
output.end()) {
493 newdsit =
output.end() - 1;
496 LogDebug(
"produce") <<
" New Hit... TOF:" << it->second.first <<
", charge: " <<
int(leadingCharge)
497 <<
" at " <<
int(leadingPosition) <<
"." << std::endl
498 <<
"Angular correction: " << it->second.second <<
" giving a final value of "
499 <<
int(leadingCharge * fabs(it->second.second))
500 <<
" for fed key = " <<
connectionMap_[it->first] <<
" (detid=" << it->first <<
")";
502 if (leadingCharge < 255) {
504 leadingCharge = uint8_t(leadingCharge * fabs(it->second.second));
506 if ((((it->first >> 25) & 0x7f) == 0xd) ||
507 ((((it->first >> 25) & 0x7f) == 0xe) && (((it->first >> 5) & 0x7) > 4)))
508 leadingCharge = uint8_t((leadingCharge * 0.64));
511 unsigned int tof =
abs(
int(round(it->second.first * 10)));
512 tof = tof > 255 ? 255 : tof;
514 newdsit->push_back(newSiStrip);
515 LogDebug(
"produce") <<
"New edm::DetSet<SiStripRawDigi> added.";
518 delete candidateCluster.first;
523 LogDebug(
"produce") <<
"Putting " <<
output.size() <<
" new hits in the event.";
References funct::abs(), anglefinder_, sistrip::APV_LATENCY, closestCluster(), bsc_activity_cfg::clusters, clustersToken_, connectionMap_, detId(), digiToken_, event_, sistrip::FINE_DELAY, edm::EventSetup::get(), get, hfClusterShapes_cfi::hits, homeMadeClusters_, iEvent, SiStripFineDelayTLA::init(), inputModuleToken_, createfilelist::int, LogDebug, maxClusterDistance_, minTrackP2_, mode_, eostools::move(), noTracking_, convertSQLitetoXML_cfg::output, produceNoTracking(), edm::ESHandle< T >::product(), SiStripEventSummary::runType(), edmLumisInFiles::summary, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, duplicaterechits_cfi::trackCollection, trackCollectionToken_, PbPb_ZMuSkimMuonDPG_cff::tracker, PDWG_EXOHSCP_cff::tracks, and trackToken_.
◆ produceNoTracking()
Definition at line 529 of file SiStripFineDelayHit.cc.
535 std::vector<edm::DetSet<SiStripRawDigi> >
output;
541 uint32_t layerCode = (const_cast<SiStripEventSummary*>(
summary.product())->layerScanned()) >> 16;
543 if (((layerCode >> 6) & 0x3) == 0)
545 else if (((layerCode >> 6) & 0x3) == 1)
547 else if (((layerCode >> 6) & 0x3) == 2)
549 else if (((layerCode >> 6) & 0x3) == 3)
551 int32_t layerIdx = (layerCode & 0xF) * (((layerCode >> 4) & 0x3) ? -1 : 1);
560 if (
mode_ == 1 && ((DSViter->id() & mask.first) != mask.second))
569 auto const& amplitudes = iter->amplitudes();
570 uint8_t leadingCharge = 0;
571 uint8_t leadingStrip = iter->firstStrip();
572 uint8_t leadingPosition = 0;
573 for (
auto amplit = amplitudes.begin(); amplit < amplitudes.end(); amplit++, leadingStrip++) {
574 if (leadingCharge < *amplit) {
575 leadingCharge = *amplit;
576 leadingPosition = leadingStrip;
586 float noise = noiseHandle_->
getNoise(leadingPosition, detNoiseRange);
589 if (leadingCharge >= 250 ||
noise >= 8 || leadingCharge /
noise > 50 || leadingCharge /
noise < 10)
592 if (leadingCharge < 255) {
594 if ((((((DSViter->id()) >> 25) & 0x7f) == 0xd) || ((((DSViter->id()) >> 25) & 0x7f) == 0xe)) &&
595 ((((DSViter->id()) >> 5) & 0x7) > 4))
596 leadingCharge = uint8_t((leadingCharge * 0.64));
600 newds.push_back(newSiStrip);
604 LogDebug(
"produce") <<
"New edm::DetSet<SiStripRawDigi> added with fedkey = " << std::hex << std::setfill(
'0')
608 LogDebug(
"produce") <<
"Putting " <<
output.size() <<
" new hits in the event.";
References begin, bsc_activity_cfg::clusters, clustersToken_, connectionMap_, TauDecayModes::dec, deviceMask(), end, event_, edm::EventSetup::get(), get, SiStripNoises::getNoise(), SiStripNoises::getRange(), iEvent, inputModuleToken_, LogDebug, mode_, eostools::move(), hgcalDigitizer_cfi::noise, convertSQLitetoXML_cfg::output, edm::ESHandle< T >::product(), edmLumisInFiles::summary, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, and StripSubdetector::TOB.
Referenced by produce().
◆ rechit()
bool SiStripFineDelayHit::rechit |
( |
reco::Track * |
tk, |
|
|
uint32_t |
detId |
|
) |
| |
|
private |
◆ anglefinder_
◆ clustersToken_
◆ connectionMap_
std::map<uint32_t, uint32_t> SiStripFineDelayHit::connectionMap_ |
|
private |
◆ cosmic_
bool SiStripFineDelayHit::cosmic_ |
|
private |
◆ digiToken_
◆ event_
◆ explorationWindow_
int SiStripFineDelayHit::explorationWindow_ |
|
private |
◆ field_
bool SiStripFineDelayHit::field_ |
|
private |
◆ homeMadeClusters_
bool SiStripFineDelayHit::homeMadeClusters_ |
|
private |
◆ inputModuleToken_
◆ maxAngle_
double SiStripFineDelayHit::maxAngle_ |
|
private |
◆ maxClusterDistance_
double SiStripFineDelayHit::maxClusterDistance_ |
|
private |
◆ minTrackP2_
double SiStripFineDelayHit::minTrackP2_ |
|
private |
◆ mode_
int SiStripFineDelayHit::mode_ |
|
private |
◆ noTracking_
bool SiStripFineDelayHit::noTracking_ |
|
private |
◆ seedcollToken_
◆ trackCollectionToken_
◆ trackToken_
T const * product() const
static void trackParameters(const reco::Track &tk, double *trackParameters)
void init(const edm::Event &e, const edm::EventSetup &c)
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
const sistrip::RunType & runType() const
std::vector< std::pair< std::pair< DetId, LocalPoint >, float > > findtrackangle(const std::vector< Trajectory > &traj)
static double timeOfFlight(bool cosmics, bool field, double *trackParameters, double *hit, double *phit, bool onDisk)
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
virtual const Topology & topology() const
const Range getRange(const uint32_t detID) const
DetId tecDetId(uint32_t side, uint32_t wheel, uint32_t petal_fw_bw, uint32_t petal, uint32_t ring, uint32_t module, uint32_t ster) const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
double maxClusterDistance_
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
Cos< T >::type cos(const T &t)
DetId tibDetId(uint32_t layer, uint32_t str_fw_bw, uint32_t str_int_ext, uint32_t str, uint32_t module, uint32_t ster) const
std::pair< ContainerIterator, ContainerIterator > Range
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
DeviceMask deviceMask(const StripSubdetector::SubDetector subdet, const int substructure, const TrackerTopology *tkrTopo)
std::pair< const SiStripCluster *, double > closestCluster(const TrackerGeometry &tracker, const reco::Track *tk, const uint32_t &detId, const edmNew::DetSetVector< SiStripCluster > &clusters, const edm::DetSetVector< SiStripDigi > &hits)
static constexpr auto TIB
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clustersToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< std::pair< uint32_t, std::pair< double, double > > > detId(const TrackerGeometry &tracker, const TrackerTopology *tkrTopo, const reco::Track *tk, const std::vector< Trajectory > &trajVec, const StripSubdetector::SubDetector subdet=StripSubdetector::TIB, const int substructure=0xff)
edm::EDGetTokenT< SiStripEventSummary > inputModuleToken_
DetId tobDetId(uint32_t layer, uint32_t rod_fw_bw, uint32_t rod, uint32_t module, uint32_t ster) const
edm::EDGetTokenT< TrajectorySeedCollection > seedcollToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > digiToken_
collection_type::const_iterator const_iterator
std::pair< uint32_t, uint32_t > DeviceMask
SiStripFineDelayTLA * anglefinder_
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
static const uint16_t invalid_
DetId tidDetId(uint32_t side, uint32_t wheel, uint32_t ring, uint32_t module_fw_bw, uint32_t module, uint32_t ster) const
ParameterVector parameters() const
Track parameters with one-to-one correspondence to the covariance matrix.
edm::EDGetTokenT< std::vector< Trajectory > > trackToken_
virtual void produceNoTracking(edm::Event &, const edm::EventSetup &)
T getParameter(std::string const &) const
std::pair< SiStripDigiIter, SiStripDigiIter > SiStripDigiRange
constexpr uint32_t rawId() const
get the raw id
const edm::Event * event_
static constexpr auto TEC
edm::EDGetTokenT< reco::TrackCollection > trackCollectionToken_
static constexpr auto TOB
FedsConstIterRange fedIds() const
Abs< T >::type abs(const T &t)
std::map< uint32_t, uint32_t > connectionMap_
const Vector & momentum() const
track momentum vector
static float getNoise(uint16_t strip, const Range &range)
ConnsConstIterRange fedConnections(uint16_t fed_id) const
std::vector< Trajectory > TrajectoryCollection
std::vector< Track > TrackCollection
collection of Tracks
static constexpr auto TID
const data_type * const_iterator
collection_type::const_iterator const_iterator