CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
FSPFProducer Class Reference

#include <FSPFProducer.h>

Inheritance diagram for FSPFProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginJob ()
 
virtual void beginRun (edm::Run &, const edm::EventSetup &)
 
 FSPFProducer (const edm::ParameterSet &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
 ~FSPFProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Member Functions

double energy_threshold (double eta)
 

Private Attributes

double barrel_th
 
double endcap_th
 
edm::InputTag labelPFCandidateCollection_
 
double middle_th
 
double par1
 
double par2
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Definition at line 17 of file FSPFProducer.h.

Constructor & Destructor Documentation

FSPFProducer::FSPFProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 14 of file FSPFProducer.cc.

References edm::ParameterSet::getParameter().

14  {
15 
16  labelPFCandidateCollection_ = iConfig.getParameter < edm::InputTag > ("pfCandidates");
17 
18  par1 = iConfig.getParameter<double>("par1");
19  par2 = iConfig.getParameter<double>("par2");
20  barrel_th = iConfig.getParameter<double>("barrel_th");
21  endcap_th = iConfig.getParameter<double>("endcap_th");
22  middle_th = iConfig.getParameter<double>("middle_th");
23  // register products
24  produces<reco::PFCandidateCollection>();
25 
26 }
T getParameter(std::string const &) const
edm::InputTag labelPFCandidateCollection_
Definition: FSPFProducer.h:28
double endcap_th
Definition: FSPFProducer.h:30
double barrel_th
Definition: FSPFProducer.h:30
double middle_th
Definition: FSPFProducer.h:30
FSPFProducer::~FSPFProducer ( )

Definition at line 28 of file FSPFProducer.cc.

28 {}

Member Function Documentation

void FSPFProducer::beginJob ( void  )
virtual

Reimplemented from edm::EDProducer.

Definition at line 31 of file FSPFProducer.cc.

31 {}
void FSPFProducer::beginRun ( edm::Run iRun,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from edm::EDProducer.

Definition at line 34 of file FSPFProducer.cc.

35  {}
double FSPFProducer::energy_threshold ( double  eta)
private

Definition at line 74 of file FSPFProducer.cc.

References eta().

74  {
75  if (eta<0) eta = -eta;
76  if (eta < 1.6) return barrel_th;
77  else if (eta < 1.8) return middle_th;
78  else return endcap_th;
79 }
T eta() const
double endcap_th
Definition: FSPFProducer.h:30
double barrel_th
Definition: FSPFProducer.h:30
double middle_th
Definition: FSPFProducer.h:30
void FSPFProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDProducer.

Definition at line 38 of file FSPFProducer.cc.

References edm::EventID::event(), edm::Event::getByLabel(), reco::PFCandidate::h, reco::PFCandidate::h0, edm::EventBase::id(), LogDebug, reco::tau::pfCandidates(), edm::Event::put(), edm::EventID::run(), and mathSSE::sqrt().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

39  {
40 
42  iEvent.getByLabel (labelPFCandidateCollection_, pfCandidates);
43 
44  auto_ptr< reco::PFCandidateCollection > pOutputCandidateCollection(new PFCandidateCollection);
45 
46  LogDebug("FSPFProducer")<<"START event: "
47  <<iEvent.id().event()
48  <<" in run "<<iEvent.id().run()<<endl;
49 
50  double theNeutralFraction, px, py, pz, en;
51  reco::PFCandidateCollection::const_iterator itCand = pfCandidates->begin();
52  reco::PFCandidateCollection::const_iterator itCandEnd = pfCandidates->end();
53  for( ; itCand != itCandEnd; itCand++) {
54  pOutputCandidateCollection->push_back(*itCand);
55  if(itCand->particleId() == reco::PFCandidate::h){
56  theNeutralFraction = par1 - par2*itCand->energy();
57  if(theNeutralFraction > 0.){
58  px = theNeutralFraction*itCand->px();
59  py = theNeutralFraction*itCand->py();
60  pz = theNeutralFraction*itCand->pz();
61  en = sqrt(px*px + py*py + pz*pz);
62  if (en > energy_threshold(itCand->eta())) {
63  // create a PFCandidate and add it to the particles Collection
64  math::XYZTLorentzVector momentum(px,py,pz,en);
65  reco::PFCandidate FakeNeutralHadron(0, momentum, reco::PFCandidate::h0);
66  pOutputCandidateCollection->push_back(FakeNeutralHadron);
67  }
68  }
69  }
70  }
71  iEvent.put(pOutputCandidateCollection);
72 }
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:42
EventNumber_t event() const
Definition: EventID.h:44
edm::InputTag labelPFCandidateCollection_
Definition: FSPFProducer.h:28
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
T sqrt(T t)
Definition: SSEVec.h:46
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
edm::EventID id() const
Definition: EventBase.h:56
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:33
double energy_threshold(double eta)
Definition: FSPFProducer.cc:74

Member Data Documentation

double FSPFProducer::barrel_th
private

Definition at line 30 of file FSPFProducer.h.

double FSPFProducer::endcap_th
private

Definition at line 30 of file FSPFProducer.h.

edm::InputTag FSPFProducer::labelPFCandidateCollection_
private

Definition at line 28 of file FSPFProducer.h.

double FSPFProducer::middle_th
private

Definition at line 30 of file FSPFProducer.h.

double FSPFProducer::par1
private

Definition at line 29 of file FSPFProducer.h.

double FSPFProducer::par2
private

Definition at line 29 of file FSPFProducer.h.