CMS 3D CMS Logo

SiStripClusterizerAlgorithm Class Reference

SiStripClusterizerAlgorithm invokes specific strip clustering algorithms. More...

#include <RecoLocalTracker/SiStripClusterizer/interface/SiStripClusterizerAlgorithm.h>

List of all members.

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_
ThreeThresholdStripClusterizerThreeThresholdStripClusterizer_
bool validClusterizer_


Detailed Description

SiStripClusterizerAlgorithm invokes specific strip clustering algorithms.

Author:
Oliver Gutsche, Fermilab
Version:
1st Version Aug. 1, 2005

Definition at line 31 of file SiStripClusterizerAlgorithm.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


Member Data Documentation

std::string SiStripClusterizerAlgorithm::clusterMode_ [private]

Definition at line 46 of file SiStripClusterizerAlgorithm.h.

Referenced by run(), and SiStripClusterizerAlgorithm().

edm::ParameterSet SiStripClusterizerAlgorithm::conf_ [private]

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().

bool SiStripClusterizerAlgorithm::validClusterizer_ [private]

Definition at line 47 of file SiStripClusterizerAlgorithm.h.

Referenced by run(), and SiStripClusterizerAlgorithm().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:32:14 2009 for CMSSW by  doxygen 1.5.4