#include <Alignment/LaserAlignment/interface/LaserBeamClusterizer.h>
Public Types | |
typedef std::vector < LASBeamProfileFit > | BeamFitContainer |
typedef BeamFitContainer::const_iterator | BeamFitIterator |
Public Member Functions | |
void | clusterizeDetUnit (const edm::DetSet< SiStripDigi > &input, edm::DetSet< SiStripCluster > &output, BeamFitIterator beginFit, BeamFitIterator endFit, unsigned int detId, double ClusterWidth) |
do the clusterizing | |
LaserBeamClusterizer () | |
constructor | |
~LaserBeamClusterizer () | |
destructor |
Definition at line 21 of file LaserBeamClusterizer.h.
typedef std::vector<LASBeamProfileFit> LaserBeamClusterizer::BeamFitContainer |
Definition at line 24 of file LaserBeamClusterizer.h.
typedef BeamFitContainer::const_iterator LaserBeamClusterizer::BeamFitIterator |
Definition at line 25 of file LaserBeamClusterizer.h.
LaserBeamClusterizer::LaserBeamClusterizer | ( | ) | [inline] |
LaserBeamClusterizer::~LaserBeamClusterizer | ( | ) | [inline] |
void LaserBeamClusterizer::clusterizeDetUnit | ( | const edm::DetSet< SiStripDigi > & | input, | |
edm::DetSet< SiStripCluster > & | output, | |||
BeamFitIterator | beginFit, | |||
BeamFitIterator | endFit, | |||
unsigned int | detId, | |||
double | ClusterWidth | |||
) |
do the clusterizing
Definition at line 14 of file LaserBeamClusterizer.cc.
References edm::DetSet< T >::data.
Referenced by LaserClusterizerAlgorithm::run().
00016 { 00017 edm::DetSet<SiStripDigi>::const_iterator beginDigi = input.data.begin(); 00018 edm::DetSet<SiStripDigi>::const_iterator endDigi = input.data.end(); 00019 00020 std::vector<SiStripDigi> theDigis; 00021 theDigis.reserve(10); 00022 00023 output.data.reserve( (endDigi - beginDigi)/3 + 1 ); 00024 00025 double theMeanStrip = beginFit->mean(); 00026 double theSigma = beginFit->sigma(); 00027 00028 if ( ((theMeanStrip > 0.0) && (theSigma > 0.0)) ) 00029 { 00030 // loop over the digis 00031 for (edm::DetSet<SiStripDigi>::const_iterator iDigi = beginDigi; iDigi <= endDigi; iDigi++) 00032 { 00033 if ( (iDigi->strip() > (theMeanStrip - ClusterWidth * theSigma) ) && (iDigi->strip() < (theMeanStrip + ClusterWidth * theSigma) ) ) 00034 { 00035 theDigis.push_back((*iDigi)); 00036 } 00037 } 00038 00039 if ( theDigis.size() > 0 ) // check if we have selected some digis 00040 { 00041 output.data.push_back( SiStripCluster(detId, SiStripCluster::SiStripDigiRange(theDigis.begin(), theDigis.end())) ); 00042 } 00043 } 00044 else 00045 { 00046 edm::LogInfo("LaserBeamClusterizer") << "no fit information available for this DetId " << detId << "; no clusters will be available!\n"; 00047 } 00048 }