CMS 3D CMS Logo

CaloTowersReCreator Class Reference

Date
2007/03/31 18:38:51
Revision
1.1
More...

#include <RecoLocalCalo/CaloTowersCreator/src/CaloTowersReCreator.h>

Inheritance diagram for CaloTowersReCreator:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 CaloTowersReCreator (const edm::ParameterSet &ps)
virtual void produce (edm::Event &e, const edm::EventSetup &c)
virtual ~CaloTowersReCreator ()

Public Attributes

double EBEScale
double EEEScale
double HBEScale
double HEDEScale
double HESEScale
double HF1EScale
double HF2EScale
double HOEScale

Private Attributes

CaloTowersCreationAlgo algo_
bool allowMissingInputs_
edm::InputTag caloLabel_


Detailed Description

Date
2007/03/31 18:38:51
Revision
1.1

Definition at line 21 of file CaloTowersReCreator.h.


Constructor & Destructor Documentation

CaloTowersReCreator::CaloTowersReCreator ( const edm::ParameterSet ps  )  [explicit]

Definition at line 7 of file CaloTowersReCreator.cc.

References EBEScale, EEEScale, edm::ParameterSet::getUntrackedParameter(), HBEScale, HEDEScale, HESEScale, HF1EScale, HF2EScale, and HOEScale.

00007                                                                     : 
00008   algo_(0.,0.,0.,0.,0.,0.,0.,0.,0., // thresholds cannot be reapplied
00009         conf.getUntrackedParameter<std::vector<double> >("EBGrid",std::vector<double>(10,0.)),
00010         conf.getUntrackedParameter<std::vector<double> >("EBWeights",std::vector<double>(10,0.)),
00011         conf.getUntrackedParameter<std::vector<double> >("EEGrid",std::vector<double>(10,0.)),
00012         conf.getUntrackedParameter<std::vector<double> >("EEWeights",std::vector<double>(10,0.)),
00013         conf.getUntrackedParameter<std::vector<double> >("HBGrid",std::vector<double>(10,0.)),
00014         conf.getUntrackedParameter<std::vector<double> >("HBWeights",std::vector<double>(10,0.)),
00015         conf.getUntrackedParameter<std::vector<double> >("HESGrid",std::vector<double>(10,0.)),
00016         conf.getUntrackedParameter<std::vector<double> >("HESWeights",std::vector<double>(10,0.)),
00017         conf.getUntrackedParameter<std::vector<double> >("HEDGrid",std::vector<double>(10,0.)),
00018         conf.getUntrackedParameter<std::vector<double> >("HEDWeights",std::vector<double>(10,0.)),
00019         conf.getUntrackedParameter<std::vector<double> >("HOGrid",std::vector<double>(10,0.)),
00020         conf.getUntrackedParameter<std::vector<double> >("HOWeights",std::vector<double>(10,0.)),
00021         conf.getUntrackedParameter<std::vector<double> >("HF1Grid",std::vector<double>(10,0.)),
00022         conf.getUntrackedParameter<std::vector<double> >("HF1Weights",std::vector<double>(10,0.)),
00023         conf.getUntrackedParameter<std::vector<double> >("HF2Grid",std::vector<double>(10,0.)),
00024         conf.getUntrackedParameter<std::vector<double> >("HF2Weights",std::vector<double>(10,0.)),
00025         conf.getParameter<double>("EBWeight"),
00026         conf.getParameter<double>("EEWeight"),
00027         conf.getParameter<double>("HBWeight"),
00028         conf.getParameter<double>("HESWeight"),
00029         conf.getParameter<double>("HEDWeight"),
00030         conf.getParameter<double>("HOWeight"),
00031         conf.getParameter<double>("HF1Weight"),
00032         conf.getParameter<double>("HF2Weight"),
00033         0.,0.,0.,
00034         conf.getParameter<bool>("UseHO"),
00035         // (these have no effect on recreation: here for compatibility)
00036         conf.getParameter<int>("MomConstrMethod"),
00037         conf.getParameter<double>("MomEmDepth"),
00038         conf.getParameter<double>("MomHadDepth"),
00039         conf.getParameter<double>("MomTotDepth")
00040         ),
00041   caloLabel_(conf.getParameter<edm::InputTag>("caloLabel")),
00042   allowMissingInputs_(false)
00043 {
00044   EBEScale=conf.getUntrackedParameter<double>("EBEScale",50.);
00045   EEEScale=conf.getUntrackedParameter<double>("EEEScale",50.);
00046   HBEScale=conf.getUntrackedParameter<double>("HBEScale",50.);
00047   HESEScale=conf.getUntrackedParameter<double>("HESEScale",50.);
00048   HEDEScale=conf.getUntrackedParameter<double>("HEDEScale",50.);
00049   HOEScale=conf.getUntrackedParameter<double>("HOEScale",50.);
00050   HF1EScale=conf.getUntrackedParameter<double>("HF1EScale",50.);
00051   HF2EScale=conf.getUntrackedParameter<double>("HF2EScale",50.);
00052   if (ctEScales.instanceLabel=="") produces<CaloTowerCollection>();
00053   else produces<CaloTowerCollection>(ctEScales.instanceLabel);
00054   //  two notes:
00055   //  1) all this could go in a pset
00056   //  2) not clear the instanceLabel thing
00057 }

virtual CaloTowersReCreator::~CaloTowersReCreator (  )  [inline, virtual]

Definition at line 24 of file CaloTowersReCreator.h.

00024 { }


Member Function Documentation

void CaloTowersReCreator::produce ( edm::Event e,
const edm::EventSetup c 
) [virtual]

Implements edm::EDProducer.

Definition at line 59 of file CaloTowersReCreator.cc.

References algo_, allowMissingInputs_, CaloTowersCreationAlgo::begin(), caloLabel_, EBEScale, EEEScale, CaloTowersCreationAlgo::finish(), edm::EventSetup::get(), edm::Event::getByLabel(), HBEScale, HEDEScale, HESEScale, HF1EScale, HF2EScale, HOEScale, edm::Handle< T >::isValid(), CaloTowersCreationAlgo::process(), edm::ESHandle< T >::product(), edm::Event::put(), CaloTowersCreationAlgo::setEBEScale(), CaloTowersCreationAlgo::setEEEScale(), CaloTowersCreationAlgo::setGeometry(), CaloTowersCreationAlgo::setHBEScale(), CaloTowersCreationAlgo::setHEDEScale(), CaloTowersCreationAlgo::setHESEScale(), CaloTowersCreationAlgo::setHF1EScale(), CaloTowersCreationAlgo::setHF2EScale(), and CaloTowersCreationAlgo::setHOEScale().

00059                                                                      {
00060   // get the necessary event setup objects...
00061   edm::ESHandle<CaloGeometry> pG;
00062   edm::ESHandle<HcalTopology> htopo;
00063   edm::ESHandle<CaloTowerConstituentsMap> cttopo;
00064   c.get<CaloGeometryRecord>().get(pG);
00065   c.get<IdealGeometryRecord>().get(htopo);
00066   c.get<IdealGeometryRecord>().get(cttopo);
00067  
00068   algo_.setEBEScale(EBEScale);
00069   algo_.setEEEScale(EEEScale);
00070   algo_.setHBEScale(HBEScale);
00071   algo_.setHESEScale(HESEScale);
00072   algo_.setHEDEScale(HEDEScale);
00073   algo_.setHOEScale(HOEScale);
00074   algo_.setHF1EScale(HF1EScale);
00075   algo_.setHF2EScale(HF2EScale);
00076   algo_.setGeometry(cttopo.product(),htopo.product(),pG.product());
00077 
00078   algo_.begin(); // clear the internal buffer
00079   
00080   // Step A/C: Get Inputs and process (repeatedly)
00081   edm::Handle<CaloTowerCollection> calt;
00082   e.getByLabel(caloLabel_,calt);
00083 
00084   if (!calt.isValid()) {
00085     // can't find it!
00086     if (!allowMissingInputs_) {
00087       *calt;  // will throw the proper exception
00088     }
00089   } else {
00090     algo_.process(*calt);
00091   }
00092 
00093   // Step B: Create empty output
00094   std::auto_ptr<CaloTowerCollection> prod(new CaloTowerCollection());
00095 
00096   // Step C: Process
00097   algo_.finish(*prod);
00098 
00099   // Step D: Put into the event
00100   if (ctEScales.instanceLabel=="") e.put(prod);
00101   else e.put(prod,ctEScales.instanceLabel);
00102 }


Member Data Documentation

CaloTowersCreationAlgo CaloTowersReCreator::algo_ [private]

Definition at line 29 of file CaloTowersReCreator.h.

Referenced by produce().

bool CaloTowersReCreator::allowMissingInputs_ [private]

Definition at line 31 of file CaloTowersReCreator.h.

Referenced by produce().

edm::InputTag CaloTowersReCreator::caloLabel_ [private]

Definition at line 30 of file CaloTowersReCreator.h.

Referenced by produce().

double CaloTowersReCreator::EBEScale

Definition at line 26 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().

double CaloTowersReCreator::EEEScale

Definition at line 26 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().

double CaloTowersReCreator::HBEScale

Definition at line 26 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().

double CaloTowersReCreator::HEDEScale

Definition at line 27 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().

double CaloTowersReCreator::HESEScale

Definition at line 26 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().

double CaloTowersReCreator::HF1EScale

Definition at line 27 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().

double CaloTowersReCreator::HF2EScale

Definition at line 27 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().

double CaloTowersReCreator::HOEScale

Definition at line 27 of file CaloTowersReCreator.h.

Referenced by CaloTowersReCreator(), and produce().


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