CMS 3D CMS Logo

Public Member Functions | Private Attributes

HFRecoEcalCandidateProducer Class Reference

#include <HFRecoEcalCandidateProducer.h>

Inheritance diagram for HFRecoEcalCandidateProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 HFRecoEcalCandidateProducer (edm::ParameterSet const &conf)
virtual void produce (edm::Event &e, edm::EventSetup const &iSetup)

Private Attributes

HFRecoEcalCandidateAlgo algo_
double Cut2D_
std::vector< double > defaultDB_
double defaultSlope2D_
bool doPU_
edm::InputTag hfclusters_
std::vector< double > HFDBvector_
int HFDBversion_
reco::HFValueStruct hfvars_
edm::InputTag vertices_

Detailed Description

Definition at line 24 of file HFRecoEcalCandidateProducer.h.


Constructor & Destructor Documentation

HFRecoEcalCandidateProducer::HFRecoEcalCandidateProducer ( edm::ParameterSet const &  conf) [explicit]

Definition at line 31 of file HFRecoEcalCandidateProducer.cc.

                                                                                   :
  defaultDB_(std::vector<double>()),
  hfclusters_(conf.getParameter<edm::InputTag>("hfclusters")),
  vertices_(conf.existsAs<edm::InputTag>("VertexCollection") ? conf.getParameter<edm::InputTag>("VertexCollection"):(edm::InputTag)"offlinePrimaryVertices"),
  HFDBversion_(conf.existsAs<int>("HFDBversion") ? conf.getParameter<int>("HFDBversion"):99),//do nothing
  HFDBvector_(conf.existsAs<std::vector<double> >("HFDBvector") ? conf.getParameter<std::vector<double> >("HFDBvector"):defaultDB_),
  doPU_(false),
  Cut2D_(conf.getParameter<double>("intercept2DCut")),
  defaultSlope2D_((Cut2D_<=0.83)?(0.475):((Cut2D_>0.83 && Cut2D_<=0.9)?(0.275):(0.2))),//fix for hlt unable to add slope variable now
  hfvars_(HFDBversion_,HFDBvector_),
  algo_(conf.existsAs<bool>("Correct") ? conf.getParameter<bool>("Correct") : true,
        conf.getParameter<double>("e9e25Cut"),
        conf.getParameter<double>("intercept2DCut"),
        conf.existsAs<double>("intercept2DSlope") ? conf.getParameter<double>("intercept2DSlope") : defaultSlope2D_,
        conf.getParameter<std::vector<double> >("e1e9Cut"),
        conf.getParameter<std::vector<double> >("eCOREe9Cut"),
        conf.getParameter<std::vector<double> >("eSeLCut"),
        hfvars_) 
{

  produces<reco::RecoEcalCandidateCollection>();

} 

Member Function Documentation

void HFRecoEcalCandidateProducer::produce ( edm::Event e,
edm::EventSetup const &  iSetup 
) [virtual]

Implements edm::EDProducer.

Definition at line 55 of file HFRecoEcalCandidateProducer.cc.

References algo_, edm::Event::getByLabel(), hfclusters_, HFDBversion_, GoodVertex_cfg::maxAbsZ, GoodVertex_cfg::maxd0, HFRecoEcalCandidateAlgo::produce(), edm::Handle< T >::product(), edm::Event::put(), and vertices_.

                                                                                   {  
  
  
  edm::Handle<reco::SuperClusterCollection> super_clus;
  edm::Handle<reco::HFEMClusterShapeAssociationCollection> hf_assoc;
 
  e.getByLabel(hfclusters_,super_clus);
  e.getByLabel(hfclusters_,hf_assoc);
 
  int nvertex = 0;
  if(HFDBversion_!=99){
    edm:: Handle<reco::VertexCollection> pvHandle;
    e.getByLabel(vertices_, pvHandle);
    const reco::VertexCollection & vertices = *pvHandle.product();
    static const int minNDOF = 4;
    static const double maxAbsZ = 15.0;
    static const double maxd0 = 2.0;
    
    //count verticies
  
    for(reco::VertexCollection::const_iterator vit = vertices.begin(); vit != vertices.end(); ++vit){
      if(vit->ndof() > minNDOF && ((maxAbsZ <= 0) || fabs(vit->z()) <= maxAbsZ) && ((maxd0 <= 0) || fabs(vit->position().rho()) <= maxd0)) 
        nvertex++;
    }
  }else{
    nvertex = 1;
  }

  

  // create return data
  std::auto_ptr<reco::RecoEcalCandidateCollection> retdata1(new reco::RecoEcalCandidateCollection());

  
  algo_.produce(super_clus,*hf_assoc,*retdata1,nvertex);
 
  e.put(retdata1);

}

Member Data Documentation

Definition at line 37 of file HFRecoEcalCandidateProducer.h.

Referenced by produce().

Definition at line 34 of file HFRecoEcalCandidateProducer.h.

std::vector<double> HFRecoEcalCandidateProducer::defaultDB_ [private]

Definition at line 29 of file HFRecoEcalCandidateProducer.h.

Definition at line 35 of file HFRecoEcalCandidateProducer.h.

Definition at line 33 of file HFRecoEcalCandidateProducer.h.

Definition at line 30 of file HFRecoEcalCandidateProducer.h.

Referenced by produce().

std::vector<double> HFRecoEcalCandidateProducer::HFDBvector_ [private]

Definition at line 32 of file HFRecoEcalCandidateProducer.h.

Definition at line 31 of file HFRecoEcalCandidateProducer.h.

Referenced by produce().

Definition at line 36 of file HFRecoEcalCandidateProducer.h.

Definition at line 30 of file HFRecoEcalCandidateProducer.h.

Referenced by produce().