1 #ifndef RecoLocalTracker_StripClusterizerAlgorithm_h 2 #define RecoLocalTracker_StripClusterizerAlgorithm_h 26 bool valid()
const {
return ind != invalidI; }
29 bool bad(
const uint16_t&
strip)
const {
return quality->IsStripBad(qualityRange, strip); }
31 while (++L < R && bad(L)) {
40 unsigned short ind = invalidI;
45 State(
Det const& idet) : m_det(idet) { ADCs.reserve(128); }
46 Det const&
det()
const {
return m_det; }
48 uint16_t lastStrip = 0;
49 float noiseSquared = 0;
50 bool candidateLacksSeed =
true;
67 virtual Det stripByStripBegin(uint32_t
id)
const = 0;
72 std::vector<SiStripCluster>&
out)
const {}
89 std::vector<uint32_t>
const&
allDetIds()
const {
return detIds; }
92 return connections[det.
ind];
98 Det findDetId(
const uint32_t)
const;
99 bool isModuleBad(
const uint32_t&
id)
const {
return qualityHandle->IsModuleBad(
id); }
100 bool isModuleUsable(
const uint32_t&
id)
const {
return qualityHandle->IsModuleUsable(
id); }
107 for (
typename T::const_iterator it = input.begin(); it != input.end(); it++) {
109 clusterizeDetUnit(*it,
ff);
116 unsigned short gi = invalidI, ni = invalidI, qi = invalidI;
119 std::vector<std::vector<const FedChannelConnection*> >
connections;
static AlgebraicMatrix initialize()
SiStripQuality::Range qualityRange
edm::ESHandle< SiStripQuality > qualityHandle
std::vector< const FedChannelConnection * > const & currentConnection(const Det &det) const
std::vector< uint32_t > const & allDetIds() const
edm::ESHandle< SiStripGain > gainHandle
SiStripQuality const * quality
bool isModuleBad(const uint32_t &id) const
virtual ~StripClusterizerAlgorithm()
SiStripApvGain::Range gainRange
edm::ESHandle< SiStripNoises > noiseHandle
std::vector< uint8_t > ADCs
static std::string const input
static float getNoise(uint16_t strip, const Range &range)
virtual void addFed(Det const &det, sistrip::FEDZSChannelUnpacker &unpacker, uint16_t ipair, std::vector< SiStripCluster > &out) const
virtual void stripByStripAdd(State &state, uint16_t strip, uint8_t adc, output_t::TSFastFiller &out) const
static float getStripGain(const uint16_t &strip, const SiStripApvGain::Range &range)
Class containning control, module, detector and connection information, at the level of a FED channel...
bool bad(const uint16_t &strip) const
std::vector< std::vector< const FedChannelConnection * > > connections
std::pair< ContainerIterator, ContainerIterator > Range
void clusterize_(const T &input, output_t &output) const
edmNew::DetSetVector< SiStripCluster > output_t
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
bool allBadBetween(uint16_t L, const uint16_t &R) const
float gain(const uint16_t &strip) const
bool isModuleUsable(const uint32_t &id) const
StripClusterizerAlgorithm()
SiStripDetCabling const * cabling() const
virtual void stripByStripEnd(State &state, output_t::TSFastFiller &out) const
std::vector< Index > indices
uint32_t quality_cache_id
SiStripNoises::Range noiseRange
std::pair< ContainerIterator, ContainerIterator > Range
std::vector< uint32_t > detIds
virtual void stripByStripEnd(State &state, std::vector< SiStripCluster > &out) const
std::pair< ContainerIterator, ContainerIterator > Range
virtual void addFed(State &state, sistrip::FEDZSChannelUnpacker &unpacker, uint16_t ipair, output_t::TSFastFiller &out) const
float noise(const uint16_t &strip) const
virtual void stripByStripAdd(State &state, uint16_t strip, uint8_t adc, std::vector< SiStripCluster > &out) const