#include <RecoLocalTracker/SiStripClusterizer/interface/SiStripClusterizerAlgorithm.h>
Public Member Functions | |
void | run (const edm::DetSetVector< SiStripDigi > &input, edmNew::DetSetVector< SiStripCluster > &output, const edm::EventSetup &es) |
Runs the algorithm. | |
SiStripClusterizerAlgorithm (const edm::ParameterSet &conf) | |
~SiStripClusterizerAlgorithm () | |
Private Attributes | |
std::string | clusterMode_ |
edm::ParameterSet | conf_ |
ThreeThresholdStripClusterizer * | ThreeThresholdStripClusterizer_ |
bool | validClusterizer_ |
Definition at line 31 of file SiStripClusterizerAlgorithm.h.
SiStripClusterizerAlgorithm::SiStripClusterizerAlgorithm | ( | const edm::ParameterSet & | conf | ) |
Definition at line 10 of file SiStripClusterizerAlgorithm.cc.
References clusterMode_, conf_, edm::errors::Configuration, lat::endl(), edm::ParameterSet::getParameter(), ThreeThresholdStripClusterizer_, and validClusterizer_.
00010 : 00011 conf_(conf), 00012 clusterMode_(conf.getParameter<std::string>("ClusterMode")){ 00013 00014 edm::LogInfo("SiStripClusterizer") << "[SiStripClusterizerAlgorithm::SiStripClusterizerAlgorithm] Constructing object..."; 00015 edm::LogInfo("SiStripClusterizer") << "[SiStripClusterizerAlgorithm::SiStripClusterizerAlgorithm] ClusterizingMode: " << clusterMode_; 00016 00017 if ( clusterMode_ == "ThreeThresholdClusterizer" ) { 00018 ThreeThresholdStripClusterizer_ = new ThreeThresholdStripClusterizer(conf_.getParameter<double>("ChannelThreshold"), 00019 conf_.getParameter<double>("SeedThreshold"), 00020 conf_.getParameter<double>("ClusterThreshold"), 00021 conf_.getParameter<int>("MaxHolesInCluster"), 00022 conf_.getParameter<std::string>("SiStripQualityLabel")); 00023 validClusterizer_ = true; 00024 } else { 00025 edm::LogError("SiStripClusterizer") << "[SiStripClusterizerAlgorithm] No valid strip clusterizer selected, possible clusterizer: ThreeThresholdClusterizer" << std::endl; 00026 throw edm::Exception(edm::errors::Configuration) << "[SiStripClusterizerAlgorithm] No valid strip clusterizer selected, possible clusterizer: ThreeThresholdClusterizer"; 00027 validClusterizer_ = false; 00028 } 00029 }
SiStripClusterizerAlgorithm::~SiStripClusterizerAlgorithm | ( | ) |
Definition at line 31 of file SiStripClusterizerAlgorithm.cc.
References ThreeThresholdStripClusterizer_.
00031 { 00032 if ( ThreeThresholdStripClusterizer_ != 0 ) { 00033 delete ThreeThresholdStripClusterizer_; 00034 } 00035 }
void SiStripClusterizerAlgorithm::run | ( | const edm::DetSetVector< SiStripDigi > & | input, | |
edmNew::DetSetVector< SiStripCluster > & | output, | |||
const edm::EventSetup & | es | |||
) |
Runs the algorithm.
Definition at line 43 of file SiStripClusterizerAlgorithm.cc.
References edm::DetSetVector< T >::begin(), ThreeThresholdStripClusterizer::clusterizeDetUnit(), clusterMode_, edmNew::DetSetVector< T >::empty(), edm::DetSetVector< T >::empty(), edm::DetSetVector< T >::end(), ThreeThresholdStripClusterizer::init(), LogDebug, edmNew::DetSetVector< T >::size(), ThreeThresholdStripClusterizer_, and validClusterizer_.
00043 { 00044 00045 if ( validClusterizer_ ) { 00046 int number_detunits = 0; 00047 int number_localstriprechits = 0; 00048 00049 ThreeThresholdStripClusterizer_->init(es); 00050 00051 //loop on all detset inside the input collection 00052 edm::DetSetVector<SiStripDigi>::const_iterator DSViter=input.begin(); 00053 for (; DSViter!=input.end();DSViter++) { 00054 ++number_detunits; 00055 #ifdef DEBUG_SiStripClusterizer_ 00056 LogDebug("SiStripClusterizer") << "[SiStripClusterizerAlgorithm::run] DetID " << DSViter->id; 00057 #endif 00058 if (DSViter->empty()) continue; 00059 00060 edmNew::DetSetVector<SiStripCluster>::FastFiller ssc(output, DSViter->id); 00061 00062 ThreeThresholdStripClusterizer_->clusterizeDetUnit(*DSViter,ssc); 00063 00064 number_localstriprechits += ssc.size(); 00065 00066 if (ssc.empty()) ssc.abort(); // insert the DetSet<SiStripCluster> in the DetSetVec<SiStripCluster> only if there is at least a digi 00067 //if (ssc.data.size()) 00068 // output.push_back(ssc); // insert the DetSet<SiStripCluster> in the DetSetVec<SiStripCluster> only if there is at least a digi 00069 } 00070 edm::LogInfo("SiStripClusterizer") << "[SiStripClusterizerAlgorithm] execution in mode " << clusterMode_ << " generating " << number_localstriprechits << " SiStripClusters in " << number_detunits << " DetUnits."; 00071 } 00072 }
std::string SiStripClusterizerAlgorithm::clusterMode_ [private] |
Definition at line 46 of file SiStripClusterizerAlgorithm.h.
Referenced by run(), and SiStripClusterizerAlgorithm().
Definition at line 44 of file SiStripClusterizerAlgorithm.h.
Referenced by SiStripClusterizerAlgorithm().
ThreeThresholdStripClusterizer* SiStripClusterizerAlgorithm::ThreeThresholdStripClusterizer_ [private] |
Definition at line 45 of file SiStripClusterizerAlgorithm.h.
Referenced by run(), SiStripClusterizerAlgorithm(), and ~SiStripClusterizerAlgorithm().
Definition at line 47 of file SiStripClusterizerAlgorithm.h.
Referenced by run(), and SiStripClusterizerAlgorithm().