#include <RecoLocalCalo/CaloTowersCreator/src/CaloTowersReCreator.h>
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_ |
Definition at line 21 of file CaloTowersReCreator.h.
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] |
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 }
bool CaloTowersReCreator::allowMissingInputs_ [private] |
edm::InputTag CaloTowersReCreator::caloLabel_ [private] |
Definition at line 26 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().
Definition at line 26 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().
Definition at line 26 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().
Definition at line 27 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().
Definition at line 26 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().
Definition at line 27 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().
Definition at line 27 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().
Definition at line 27 of file CaloTowersReCreator.h.
Referenced by CaloTowersReCreator(), and produce().