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 ); }
30 bool allBadBetween(uint16_t
L,
const uint16_t&
R)
const {
while( ++L < R && bad(L)) {};
return L ==
R; }
36 unsigned short ind=invalidI;
41 State(
Det const & idet) : m_det(idet) { ADCs.reserve(128);}
42 Det const &
det()
const {
return m_det;}
46 bool candidateLacksSeed=
true;
64 virtual Det stripByStripBegin(uint32_t
id)
const = 0;
79 std::vector<uint32_t>
const &
allDetIds()
const {
return detIds;}
81 std::vector<const FedChannelConnection *>
const &
currentConnection(
const Det& det)
const {
return connections[det.
ind]; }
87 Det findDetId(
const uint32_t)
const;
88 bool isModuleBad(
const uint32_t&
id)
const {
return qualityHandle->IsModuleBad(
id ); }
89 bool isModuleUsable(
const uint32_t&
id)
const {
return qualityHandle->IsModuleUsable(
id ); }
96 for(
typename T::const_iterator it = input.begin(); it!=input.end(); it++) {
98 clusterizeDetUnit(*it,
ff);
99 if(
ff.empty())
ff.abort();
110 std::vector<std::vector<const FedChannelConnection *> >
connections;
static AlgebraicMatrix initialize()
SiStripQuality::Range qualityRange
edm::ESHandle< SiStripQuality > qualityHandle
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...
std::vector< std::vector< const FedChannelConnection * > > connections
bool bad(const uint16_t &strip) const
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
std::vector< const FedChannelConnection * > const & currentConnection(const Det &det) const
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