![]() |
![]() |
#include <SiStripClusterInfo.h>
Public Member Functions | |
float | baryStrip () const |
uint16_t | charge () const |
std::pair< uint16_t, uint16_t > | chargeLR () const |
const SiStripCluster * | cluster () const |
uint32_t | detId () const |
uint16_t | firstStrip () const |
bool | IsAnythingBad () const |
bool | IsApvBad () const |
bool | IsFiberBad () const |
bool | IsModuleBad () const |
bool | IsModuleUsable () const |
uint8_t | maxCharge () const |
uint16_t | maxIndex () const |
uint16_t | maxStrip () const |
float | noise () const |
float | noiseRescaledByGain () const |
std::vector< SiStripCluster > | reclusterize (const edm::ParameterSet &) const |
float | signalOverNoise () const |
SiStripClusterInfo (const SiStripCluster &cluster, const edm::EventSetup &es, std::string qualityLabel="") | |
const std::vector< uint8_t > & | stripCharges () const |
std::vector< float > | stripGains () const |
std::vector< float > | stripNoises () const |
std::vector< float > | stripNoisesRescaledByGain () const |
std::vector< bool > | stripQualitiesBad () const |
float | variance () const |
uint16_t | width () const |
Private Member Functions | |
float | calculate_noise (const std::vector< float > &) const |
Private Attributes | |
const SiStripCluster * | cluster_ptr |
const edm::EventSetup & | es |
edm::ESHandle< SiStripGain > | gainHandle |
edm::ESHandle< SiStripNoises > | noiseHandle |
edm::ESHandle< SiStripQuality > | qualityHandle |
std::string | qualityLabel |
Definition at line 14 of file SiStripClusterInfo.h.
SiStripClusterInfo::SiStripClusterInfo | ( | const SiStripCluster & | cluster, |
const edm::EventSetup & | es, | ||
std::string | qualityLabel = "" |
||
) |
Definition at line 11 of file SiStripClusterInfo.cc.
References es, gainHandle, edm::EventSetup::get(), noiseHandle, qualityHandle, and qualityLabel.
: cluster_ptr(&cluster), es(setup), qualityLabel(quality) { es.get<SiStripNoisesRcd>().get(noiseHandle); es.get<SiStripGainRcd>().get(gainHandle); es.get<SiStripQualityRcd>().get(qualityLabel,qualityHandle); }
float SiStripClusterInfo::baryStrip | ( | ) | const [inline] |
Definition at line 27 of file SiStripClusterInfo.h.
References SiStripCluster::barycenter(), and cluster().
Referenced by TrackerDpgAnalysis::analyze(), SiStripMonitorTrack::fillMEs(), and SiStripMonitorTrack::fillModMEs().
{return cluster()->barycenter();}
float SiStripClusterInfo::calculate_noise | ( | const std::vector< float > & | noise | ) | const [private] |
Definition at line 90 of file SiStripClusterInfo.cc.
References i, mathSSE::sqrt(), stripCharges(), and width().
Referenced by noise(), and noiseRescaledByGain().
uint16_t SiStripClusterInfo::charge | ( | void | ) | const [inline] |
Definition at line 37 of file SiStripClusterInfo.h.
References begin, end, and stripCharges().
Referenced by TrackerDpgAnalysis::analyze(), SiStripMonitorTrack::clusterInfos(), SiStripMonitorTrack::fillMEs(), SiStripMonitorTrack::fillModMEs(), ShallowClustersProducer::produce(), and signalOverNoise().
{return accumulate( stripCharges().begin(), stripCharges().end(), uint16_t(0));}
std::pair< uint16_t, uint16_t > SiStripClusterInfo::chargeLR | ( | ) | const |
Definition at line 23 of file SiStripClusterInfo.cc.
References begin, end, max(), and stripCharges().
const SiStripCluster* SiStripClusterInfo::cluster | ( | ) | const [inline] |
Definition at line 22 of file SiStripClusterInfo.h.
References cluster_ptr.
Referenced by baryStrip(), detId(), firstStrip(), IsApvBad(), IsFiberBad(), IsModuleBad(), IsModuleUsable(), stripCharges(), stripGains(), stripNoises(), stripQualitiesBad(), and width().
{return cluster_ptr;}
uint32_t SiStripClusterInfo::detId | ( | ) | const [inline] |
Definition at line 24 of file SiStripClusterInfo.h.
References cluster(), and SiStripCluster::geographicalId().
Referenced by SiStripMonitorTrack::clusterInfos(), ShallowClustersProducer::NearDigis::NearDigis(), and reclusterize().
{return cluster()->geographicalId();}
uint16_t SiStripClusterInfo::firstStrip | ( | ) | const [inline] |
Definition at line 26 of file SiStripClusterInfo.h.
References cluster(), and SiStripCluster::firstStrip().
Referenced by IsApvBad(), IsFiberBad(), maxStrip(), ShallowClustersProducer::NearDigis::NearDigis(), ShallowClustersProducer::produce(), reclusterize(), stripGains(), stripNoises(), and stripQualitiesBad().
{return cluster()->firstStrip();}
bool SiStripClusterInfo::IsAnythingBad | ( | ) | const |
Definition at line 104 of file SiStripClusterInfo.cc.
References IsApvBad(), IsFiberBad(), IsModuleBad(), and stripQualitiesBad().
Referenced by ShallowClustersProducer::produce().
{ std::vector<bool> stripBad = stripQualitiesBad(); return IsApvBad() || IsFiberBad() || IsModuleBad() || accumulate(stripBad.begin(), stripBad.end(), false, std::logical_or<bool>()); }
bool SiStripClusterInfo::IsApvBad | ( | ) | const |
Definition at line 116 of file SiStripClusterInfo.cc.
References cluster(), firstStrip(), qualityHandle, and width().
Referenced by IsAnythingBad().
{ return qualityHandle->IsApvBad( cluster()->geographicalId(), firstStrip()/128 ) || qualityHandle->IsApvBad( cluster()->geographicalId(), (firstStrip()+width())/128 ) ; }
bool SiStripClusterInfo::IsFiberBad | ( | ) | const |
Definition at line 123 of file SiStripClusterInfo.cc.
References cluster(), firstStrip(), qualityHandle, and width().
Referenced by IsAnythingBad().
{ return qualityHandle->IsFiberBad( cluster()->geographicalId(), firstStrip()/256 ) || qualityHandle->IsFiberBad( cluster()->geographicalId(), (firstStrip()+width())/256 ) ; }
bool SiStripClusterInfo::IsModuleBad | ( | ) | const |
Definition at line 130 of file SiStripClusterInfo.cc.
References cluster(), and qualityHandle.
Referenced by IsAnythingBad().
{ return qualityHandle->IsModuleBad( cluster()->geographicalId() ); }
bool SiStripClusterInfo::IsModuleUsable | ( | ) | const |
Definition at line 135 of file SiStripClusterInfo.cc.
References cluster(), and qualityHandle.
{ return qualityHandle->IsModuleUsable( cluster()->geographicalId() ); }
uint8_t SiStripClusterInfo::maxCharge | ( | ) | const [inline] |
Definition at line 38 of file SiStripClusterInfo.h.
References begin, end, and stripCharges().
Referenced by TrackerDpgAnalysis::analyze(), SiStripMonitorTrack::fillModMEs(), ShallowClustersProducer::NearDigis::NearDigis(), and ShallowClustersProducer::produce().
{return * max_element(stripCharges().begin(), stripCharges().end());}
uint16_t SiStripClusterInfo::maxIndex | ( | ) | const [inline] |
Definition at line 39 of file SiStripClusterInfo.h.
References begin, end, and stripCharges().
Referenced by SiStripMonitorTrack::fillModMEs(), maxStrip(), ShallowClustersProducer::NearDigis::NearDigis(), and ShallowClustersProducer::produce().
{return max_element(stripCharges().begin(), stripCharges().end()) - stripCharges().begin();}
uint16_t SiStripClusterInfo::maxStrip | ( | ) | const [inline] |
Definition at line 28 of file SiStripClusterInfo.h.
References firstStrip(), and maxIndex().
Referenced by ShallowClustersProducer::NearDigis::NearDigis(), and ShallowClustersProducer::produce().
{return firstStrip() + maxIndex();}
float SiStripClusterInfo::noise | ( | ) | const [inline] |
Definition at line 42 of file SiStripClusterInfo.h.
References calculate_noise(), and stripNoises().
Referenced by TrackerDpgAnalysis::analyze().
{ return calculate_noise(stripNoises());}
float SiStripClusterInfo::noiseRescaledByGain | ( | ) | const [inline] |
Definition at line 43 of file SiStripClusterInfo.h.
References calculate_noise(), and stripNoisesRescaledByGain().
Referenced by TrackerDpgAnalysis::analyze(), SiStripMonitorTrack::fillMEs(), ShallowClustersProducer::produce(), and signalOverNoise().
{ return calculate_noise(stripNoisesRescaledByGain());}
std::vector< SiStripCluster > SiStripClusterInfo::reclusterize | ( | const edm::ParameterSet & | conf | ) | const |
Definition at line 140 of file SiStripClusterInfo.cc.
References algorithm(), SurfaceDeformationFactory::create(), detId(), es, firstStrip(), i, stripCharges(), stripGains(), and width().
{ std::vector<SiStripCluster> clusters; std::vector<uint8_t> charges = stripCharges(); std::vector<float> gains = stripGains(); for(unsigned i=0; i < charges.size(); i++) charges[i] = (charges[i] < 254) ? static_cast<uint8_t>(charges[i] * gains[i]) : charges[i]; std::auto_ptr<StripClusterizerAlgorithm> algorithm = StripClusterizerAlgorithmFactory::create(conf); algorithm->initialize(es); if( algorithm->stripByStripBegin( detId() )) { for(unsigned i = 0; i<width(); i++) algorithm->stripByStripAdd( firstStrip()+i, charges[i], clusters ); algorithm->stripByStripEnd( clusters ); } return clusters; }
float SiStripClusterInfo::signalOverNoise | ( | ) | const [inline] |
Definition at line 45 of file SiStripClusterInfo.h.
References charge(), and noiseRescaledByGain().
Referenced by TrackerDpgAnalysis::analyze(), reco::modules::TrackerTrackHitFilter::checkStoN(), SiStripMonitorTrack::clusterInfos(), SiStripMonitorTrack::fillMEs(), SiStripMonitorTrack::fillModMEs(), TrackHitFilter::keepThisHit(), and ShallowClustersProducer::produce().
{ return charge()/noiseRescaledByGain(); }
const std::vector<uint8_t>& SiStripClusterInfo::stripCharges | ( | ) | const [inline] |
Definition at line 31 of file SiStripClusterInfo.h.
References SiStripCluster::amplitudes(), and cluster().
Referenced by calculate_noise(), charge(), chargeLR(), SiStripMonitorTrack::fillModMEs(), maxCharge(), maxIndex(), ShallowClustersProducer::NearDigis::NearDigis(), reclusterize(), and variance().
{return cluster()->amplitudes();}
std::vector< float > SiStripClusterInfo::stripGains | ( | ) | const |
Definition at line 69 of file SiStripClusterInfo.cc.
References cluster(), firstStrip(), gainHandle, i, and width().
Referenced by ShallowClustersProducer::produce(), reclusterize(), and stripNoisesRescaledByGain().
{ SiStripApvGain::Range detGainRange = gainHandle->getRange(cluster()->geographicalId()); std::vector<float> gains; for(size_t i=0; i< width(); i++){ gains.push_back( gainHandle->getStripGain( firstStrip()+i, detGainRange) ); } return gains; }
std::vector< float > SiStripClusterInfo::stripNoises | ( | ) | const |
Definition at line 58 of file SiStripClusterInfo.cc.
References cluster(), firstStrip(), i, noiseHandle, and width().
Referenced by noise(), and stripNoisesRescaledByGain().
{ SiStripNoises::Range detNoiseRange = noiseHandle->getRange(cluster()->geographicalId()); std::vector<float> noises; for(size_t i=0; i < width(); i++){ noises.push_back( noiseHandle->getNoise( firstStrip()+i, detNoiseRange) ); } return noises; }
std::vector< float > SiStripClusterInfo::stripNoisesRescaledByGain | ( | ) | const |
Definition at line 48 of file SiStripClusterInfo.cc.
References stripGains(), and stripNoises().
Referenced by noiseRescaledByGain(), and ShallowClustersProducer::produce().
{ std::vector<float> noises = stripNoises(); std::vector<float> gains = stripGains(); transform(noises.begin(), noises.end(), gains.begin(), noises.begin(), std::divides<double>()); return noises; }
std::vector< bool > SiStripClusterInfo::stripQualitiesBad | ( | ) | const |
Definition at line 80 of file SiStripClusterInfo.cc.
References cluster(), firstStrip(), i, qualityHandle, and width().
Referenced by IsAnythingBad().
{ std::vector<bool> isBad; for(int i=0; i< width(); i++) { isBad.push_back( qualityHandle->IsStripBad( cluster()->geographicalId(), firstStrip()+i) ); } return isBad; }
float SiStripClusterInfo::variance | ( | ) | const |
Definition at line 34 of file SiStripClusterInfo.cc.
References begin, end, i, lumiQueryAPI::q, and stripCharges().
Referenced by ShallowClustersProducer::produce().
uint16_t SiStripClusterInfo::width | ( | ) | const [inline] |
Definition at line 25 of file SiStripClusterInfo.h.
References SiStripCluster::amplitudes(), and cluster().
Referenced by TrackerDpgAnalysis::analyze(), calculate_noise(), SiStripMonitorTrack::clusterInfos(), SiStripMonitorTrack::fillMEs(), SiStripMonitorTrack::fillModMEs(), IsApvBad(), IsFiberBad(), ShallowClustersProducer::NearDigis::NearDigis(), ShallowClustersProducer::produce(), reclusterize(), stripGains(), stripNoises(), and stripQualitiesBad().
{return cluster()->amplitudes().size();}
const SiStripCluster* SiStripClusterInfo::cluster_ptr [private] |
Definition at line 59 of file SiStripClusterInfo.h.
Referenced by cluster().
const edm::EventSetup& SiStripClusterInfo::es [private] |
Definition at line 60 of file SiStripClusterInfo.h.
Referenced by reclusterize(), and SiStripClusterInfo().
Definition at line 62 of file SiStripClusterInfo.h.
Referenced by SiStripClusterInfo(), and stripGains().
Definition at line 61 of file SiStripClusterInfo.h.
Referenced by SiStripClusterInfo(), and stripNoises().
Definition at line 63 of file SiStripClusterInfo.h.
Referenced by IsApvBad(), IsFiberBad(), IsModuleBad(), IsModuleUsable(), SiStripClusterInfo(), and stripQualitiesBad().
std::string SiStripClusterInfo::qualityLabel [private] |
Definition at line 64 of file SiStripClusterInfo.h.
Referenced by SiStripClusterInfo().