![]() |
![]() |
#include <RecoEcal/EgammaClusterProducers/interface/SuperClusterProducer.h>
Definition at line 20 of file SuperClusterProducer.h.
SuperClusterProducer::SuperClusterProducer | ( | const edm::ParameterSet & | ps | ) |
Definition at line 24 of file SuperClusterProducer.cc.
References barrelClusterCollection_, barrelClusterProducer_, barrelEtaSearchRoad_, barrelPhiSearchRoad_, barrelSuperclusterCollection_, bremAlgo_p, doBarrel_, doEndcaps_, endcapClusterCollection_, endcapClusterProducer_, endcapEtaSearchRoad_, endcapPhiSearchRoad_, endcapSuperclusterCollection_, edm::ParameterSet::getParameter(), nEvt_, noSuperClusters, BremRecoveryClusterAlgo::pDEBUG, BremRecoveryClusterAlgo::pERROR, BremRecoveryClusterAlgo::pINFO, BremRecoveryClusterAlgo::pWARNING, seedTransverseEnergyThreshold_, totalE, and verbosity.
00025 { 00026 // The verbosity level 00027 std::string verbosityString = ps.getParameter<std::string>("VerbosityLevel"); 00028 if (verbosityString == "DEBUG") verbosity = BremRecoveryClusterAlgo::pDEBUG; 00029 else if (verbosityString == "WARNING") verbosity = BremRecoveryClusterAlgo::pWARNING; 00030 else if (verbosityString == "INFO") verbosity = BremRecoveryClusterAlgo::pINFO; 00031 else verbosity = BremRecoveryClusterAlgo::pERROR; 00032 00033 endcapClusterProducer_ = ps.getParameter<std::string>("endcapClusterProducer"); 00034 barrelClusterProducer_ = ps.getParameter<std::string>("barrelClusterProducer"); 00035 00036 endcapClusterCollection_ = ps.getParameter<std::string>("endcapClusterCollection"); 00037 barrelClusterCollection_ = ps.getParameter<std::string>("barrelClusterCollection"); 00038 00039 endcapSuperclusterCollection_ = ps.getParameter<std::string>("endcapSuperclusterCollection"); 00040 barrelSuperclusterCollection_ = ps.getParameter<std::string>("barrelSuperclusterCollection"); 00041 00042 doBarrel_ = ps.getParameter<bool>("doBarrel"); 00043 doEndcaps_ = ps.getParameter<bool>("doEndcaps"); 00044 00045 00046 barrelEtaSearchRoad_ = ps.getParameter<double>("barrelEtaSearchRoad"); 00047 barrelPhiSearchRoad_ = ps.getParameter<double>("barrelPhiSearchRoad"); 00048 endcapEtaSearchRoad_ = ps.getParameter<double>("endcapEtaSearchRoad"); 00049 endcapPhiSearchRoad_ = ps.getParameter<double>("endcapPhiSearchRoad"); 00050 seedTransverseEnergyThreshold_ = ps.getParameter<double>("seedTransverseEnergyThreshold"); 00051 00052 bremAlgo_p = new BremRecoveryClusterAlgo(barrelEtaSearchRoad_, barrelPhiSearchRoad_, 00053 endcapEtaSearchRoad_, endcapPhiSearchRoad_, 00054 seedTransverseEnergyThreshold_, verbosity); 00055 00056 produces< reco::SuperClusterCollection >(endcapSuperclusterCollection_); 00057 produces< reco::SuperClusterCollection >(barrelSuperclusterCollection_); 00058 00059 totalE = 0; 00060 noSuperClusters = 0; 00061 nEvt_ = 0; 00062 }
SuperClusterProducer::~SuperClusterProducer | ( | ) |
Definition at line 65 of file SuperClusterProducer.cc.
References bremAlgo_p.
00066 { 00067 delete bremAlgo_p; 00068 }
bool SuperClusterProducer::counterExceeded | ( | ) | const [inline, private] |
Definition at line 72 of file SuperClusterProducer.h.
References nEvt_, and nMaxPrintout_.
00072 { return ((nEvt_ > nMaxPrintout_) || (nMaxPrintout_ < 0));}
Reimplemented from edm::EDProducer.
Definition at line 71 of file SuperClusterProducer.cc.
References noSuperClusters, and totalE.
00071 { 00072 double averEnergy = 0.; 00073 std::ostringstream str; 00074 str << "SuperClusterProducer::endJob()\n" 00075 << " total # reconstructed super clusters: " << noSuperClusters << "\n" 00076 << " total energy of all clusters: " << totalE << "\n"; 00077 if(noSuperClusters>0) { 00078 averEnergy = totalE / noSuperClusters; 00079 str << " average SuperCluster energy = " << averEnergy << "\n"; 00080 } 00081 edm::LogInfo("SuperClusterProducerInfo") << str.str() << "\n"; 00082 00083 }
void SuperClusterProducer::getClusterRefVector | ( | edm::Event & | evt, | |
std::string | clusterProducer_, | |||
std::string | clusterCollection_, | |||
reco::BasicClusterRefVector * | clusterRefVector_p | |||
) | [private] |
Definition at line 126 of file SuperClusterProducer.cc.
References edm::Event::getByLabel(), i, edm::Handle< T >::isValid(), edm::Handle< T >::product(), and edm::RefVector< C, T, F >::push_back().
Referenced by produceSuperclustersForECALPart().
00127 { 00128 edm::Handle<reco::BasicClusterCollection> bccHandle; 00129 00130 evt.getByLabel(clusterProducer_, clusterCollection_, bccHandle); 00131 if (!(bccHandle.isValid())) 00132 { 00133 edm::LogError("SuperClusterProducerError") << "could not get a handle on the BasicCluster Collection!"; 00134 edm::LogError("SuperClusterProducerError") << "Error! can't get the product " << clusterCollection_.c_str(); 00135 clusterRefVector_p = 0; 00136 } 00137 00138 const reco::BasicClusterCollection *clusterCollection_p = bccHandle.product(); 00139 for (unsigned int i = 0; i < clusterCollection_p->size(); i++) 00140 { 00141 clusterRefVector_p->push_back(reco::BasicClusterRef(bccHandle, i)); 00142 } 00143 }
void SuperClusterProducer::outputValidationInfo | ( | reco::SuperClusterCollection & | superclusterCollection | ) | [private] |
void SuperClusterProducer::produce | ( | edm::Event & | evt, | |
const edm::EventSetup & | es | |||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 86 of file SuperClusterProducer.cc.
References barrelClusterCollection_, barrelClusterProducer_, barrelSuperclusterCollection_, doBarrel_, doEndcaps_, endcapClusterCollection_, endcapClusterProducer_, endcapSuperclusterCollection_, nEvt_, and produceSuperclustersForECALPart().
00087 { 00088 if(doEndcaps_) 00089 produceSuperclustersForECALPart(evt, endcapClusterProducer_, endcapClusterCollection_, endcapSuperclusterCollection_); 00090 00091 if(doBarrel_) 00092 produceSuperclustersForECALPart(evt, barrelClusterProducer_, barrelClusterCollection_, barrelSuperclusterCollection_); 00093 00094 nEvt_++; 00095 }
void SuperClusterProducer::produceSuperclustersForECALPart | ( | edm::Event & | evt, | |
std::string | clusterProducer, | |||
std::string | clusterCollection, | |||
std::string | superclusterColection | |||
) | [private] |
Definition at line 98 of file SuperClusterProducer.cc.
References bremAlgo_p, getClusterRefVector(), it, BremRecoveryClusterAlgo::makeSuperClusters(), noSuperClusters, edm::Event::put(), and totalE.
Referenced by produce().
00102 { 00103 // get the cluster collection out and turn it to a BasicClusterRefVector: 00104 reco::BasicClusterRefVector *clusterRefVector_p = new reco::BasicClusterRefVector; 00105 getClusterRefVector(evt, clusterProducer, clusterCollection, clusterRefVector_p); 00106 00107 // run the brem recovery and get the SC collection 00108 std::auto_ptr<reco::SuperClusterCollection> 00109 superclusters_ap(new reco::SuperClusterCollection(bremAlgo_p->makeSuperClusters(*clusterRefVector_p))); 00110 00111 // count the total energy and the number of superclusters 00112 reco::SuperClusterCollection::iterator it; 00113 for (it = superclusters_ap->begin(); it != superclusters_ap->end(); it++) 00114 { 00115 totalE += it->energy(); 00116 noSuperClusters++; 00117 } 00118 00119 // put the SC collection in the event 00120 evt.put(superclusters_ap, superclusterCollection); 00121 00122 delete clusterRefVector_p; 00123 }
std::string SuperClusterProducer::barrelClusterCollection_ [private] |
Definition at line 40 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
std::string SuperClusterProducer::barrelClusterProducer_ [private] |
Definition at line 43 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
float SuperClusterProducer::barrelEtaSearchRoad_ [private] |
float SuperClusterProducer::barrelPhiSearchRoad_ [private] |
std::string SuperClusterProducer::barrelSuperclusterCollection_ [private] |
Definition at line 46 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
Definition at line 57 of file SuperClusterProducer.h.
Referenced by produceSuperclustersForECALPart(), SuperClusterProducer(), and ~SuperClusterProducer().
bool SuperClusterProducer::doBarrel_ [private] |
Definition at line 54 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
bool SuperClusterProducer::doEndcaps_ [private] |
Definition at line 55 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
std::string SuperClusterProducer::endcapClusterCollection_ [private] |
Definition at line 39 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
std::string SuperClusterProducer::endcapClusterProducer_ [private] |
Definition at line 42 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
float SuperClusterProducer::endcapEtaSearchRoad_ [private] |
float SuperClusterProducer::endcapPhiSearchRoad_ [private] |
std::string SuperClusterProducer::endcapSuperclusterCollection_ [private] |
Definition at line 45 of file SuperClusterProducer.h.
Referenced by produce(), and SuperClusterProducer().
int SuperClusterProducer::nEvt_ [private] |
Definition at line 35 of file SuperClusterProducer.h.
Referenced by counterExceeded(), produce(), and SuperClusterProducer().
int SuperClusterProducer::nMaxPrintout_ [private] |
int SuperClusterProducer::noSuperClusters [private] |
Definition at line 60 of file SuperClusterProducer.h.
Referenced by endJob(), produceSuperclustersForECALPart(), and SuperClusterProducer().
float SuperClusterProducer::seedTransverseEnergyThreshold_ [private] |
double SuperClusterProducer::totalE [private] |
Definition at line 59 of file SuperClusterProducer.h.
Referenced by endJob(), produceSuperclustersForECALPart(), and SuperClusterProducer().