#include <CaloTowersCreator.h>
Public Member Functions | |
CaloTowersCreator (const edm::ParameterSet &ps) | |
virtual void | produce (edm::Event &e, const edm::EventSetup &c) |
virtual | ~CaloTowersCreator () |
Public Attributes | |
double | EBEScale |
double | EEEScale |
double | HBEScale |
double | HEDEScale |
double | HESEScale |
double | HF1EScale |
double | HF2EScale |
double | HOEScale |
Static Private Member Functions | |
static const std::vector < double > & | getGridValues () |
Private Attributes | |
CaloTowersCreationAlgo | algo_ |
bool | allowMissingInputs_ |
std::vector< edm::InputTag > | ecalLabels_ |
edm::InputTag | hbheLabel_ |
edm::InputTag | hfLabel_ |
edm::InputTag | hoLabel_ |
unsigned int | theEcalAcceptSeverityLevel_ |
unsigned int | theEcalAcceptSeverityLevelForRejectedHit_ |
unsigned int | theHcalAcceptSeverityLevel_ |
unsigned int | theHcalAcceptSeverityLevelForRejectedHit_ |
bool | theRecoveredEcalHitsAreUsed_ |
bool | theRecoveredHcalHitsAreUsed_ |
bool | useRejectedHitsOnly_ |
bool | useRejectedRecoveredEcalHits_ |
bool | useRejectedRecoveredHcalHits_ |
Original author: J. Mans - Minnesota
Definition at line 28 of file CaloTowersCreator.h.
CaloTowersCreator::CaloTowersCreator | ( | const edm::ParameterSet & | ps | ) | [explicit] |
Definition at line 31 of file CaloTowersCreator.cc.
References EBEScale, EScales::EBScale, EEEScale, EScales::EEScale, HBEScale, EScales::HBScale, HEDEScale, EScales::HEDScale, HESEScale, EScales::HESScale, HF1EScale, EScales::HF1Scale, HF2EScale, EScales::HF2Scale, HOEScale, EScales::HOScale, and EScales::instanceLabel.
: algo_(conf.getParameter<double>("EBThreshold"), conf.getParameter<double>("EEThreshold"), conf.getParameter<bool>("UseEtEBTreshold"), conf.getParameter<bool>("UseEtEETreshold"), conf.getParameter<bool>("UseSymEBTreshold"), conf.getParameter<bool>("UseSymEETreshold"), conf.getParameter<double>("HcalThreshold"), conf.getParameter<double>("HBThreshold"), conf.getParameter<double>("HESThreshold"), conf.getParameter<double>("HEDThreshold"), conf.getParameter<double>("HOThreshold0"), conf.getParameter<double>("HOThresholdPlus1"), conf.getParameter<double>("HOThresholdMinus1"), conf.getParameter<double>("HOThresholdPlus2"), conf.getParameter<double>("HOThresholdMinus2"), conf.getParameter<double>("HF1Threshold"), conf.getParameter<double>("HF2Threshold"), conf.getParameter<std::vector<double> >("EBGrid"), conf.getParameter<std::vector<double> >("EBWeights"), conf.getParameter<std::vector<double> >("EEGrid"), conf.getParameter<std::vector<double> >("EEWeights"), conf.getParameter<std::vector<double> >("HBGrid"), conf.getParameter<std::vector<double> >("HBWeights"), conf.getParameter<std::vector<double> >("HESGrid"), conf.getParameter<std::vector<double> >("HESWeights"), conf.getParameter<std::vector<double> >("HEDGrid"), conf.getParameter<std::vector<double> >("HEDWeights"), conf.getParameter<std::vector<double> >("HOGrid"), conf.getParameter<std::vector<double> >("HOWeights"), conf.getParameter<std::vector<double> >("HF1Grid"), conf.getParameter<std::vector<double> >("HF1Weights"), conf.getParameter<std::vector<double> >("HF2Grid"), conf.getParameter<std::vector<double> >("HF2Weights"), conf.getParameter<double>("EBWeight"), conf.getParameter<double>("EEWeight"), conf.getParameter<double>("HBWeight"), conf.getParameter<double>("HESWeight"), conf.getParameter<double>("HEDWeight"), conf.getParameter<double>("HOWeight"), conf.getParameter<double>("HF1Weight"), conf.getParameter<double>("HF2Weight"), conf.getParameter<double>("EcutTower"), conf.getParameter<double>("EBSumThreshold"), conf.getParameter<double>("EESumThreshold"), conf.getParameter<bool>("UseHO"), // (for momentum reconstruction algorithm) conf.getParameter<int>("MomConstrMethod"), conf.getParameter<double>("MomHBDepth"), conf.getParameter<double>("MomHEDepth"), conf.getParameter<double>("MomEBDepth"), conf.getParameter<double>("MomEEDepth") ), hbheLabel_(conf.getParameter<edm::InputTag>("hbheInput")), hoLabel_(conf.getParameter<edm::InputTag>("hoInput")), hfLabel_(conf.getParameter<edm::InputTag>("hfInput")), ecalLabels_(conf.getParameter<std::vector<edm::InputTag> >("ecalInputs")), allowMissingInputs_(conf.getParameter<bool>("AllowMissingInputs")), theHcalAcceptSeverityLevel_(conf.getParameter<unsigned int>("HcalAcceptSeverityLevel")), theEcalAcceptSeverityLevel_(conf.getParameter<unsigned int>("EcalAcceptSeverityLevel")), theRecoveredHcalHitsAreUsed_(conf.getParameter<bool>("UseHcalRecoveredHits")), theRecoveredEcalHitsAreUsed_(conf.getParameter<bool>("UseEcalRecoveredHits")), // paramaters controlling the use of rejected hits useRejectedHitsOnly_(conf.getParameter<bool>("UseRejectedHitsOnly")), theHcalAcceptSeverityLevelForRejectedHit_(conf.getParameter<unsigned int>("HcalAcceptSeverityLevelForRejectedHit")), theEcalAcceptSeverityLevelForRejectedHit_(conf.getParameter<unsigned int>("EcalAcceptSeverityLevelForRejectedHit")), useRejectedRecoveredHcalHits_(conf.getParameter<bool>("UseRejectedRecoveredHcalHits")), useRejectedRecoveredEcalHits_(conf.getParameter<bool>("UseRejectedRecoveredEcalHits")) { EBEScale=EScales.EBScale; EEEScale=EScales.EEScale; HBEScale=EScales.HBScale; HESEScale=EScales.HESScale; HEDEScale=EScales.HEDScale; HOEScale=EScales.HOScale; HF1EScale=EScales.HF1Scale; HF2EScale=EScales.HF2Scale; if (EScales.instanceLabel=="") produces<CaloTowerCollection>(); else produces<CaloTowerCollection>(EScales.instanceLabel); }
virtual CaloTowersCreator::~CaloTowersCreator | ( | ) | [inline, virtual] |
Definition at line 31 of file CaloTowersCreator.h.
{ }
const std::vector< double > & CaloTowersCreator::getGridValues | ( | ) | [static, private] |
Definition at line 11 of file CaloTowersCreator.cc.
{ static std::vector<double> retval; if (retval.size() == 0) { retval.push_back(0.); retval.push_back(10.); retval.push_back(20.); retval.push_back(30.); retval.push_back(40.); retval.push_back(50.); retval.push_back(100.); retval.push_back(1000.); } return retval; }
void CaloTowersCreator::produce | ( | edm::Event & | e, |
const edm::EventSetup & | c | ||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 124 of file CaloTowersCreator.cc.
References algo_, allowMissingInputs_, CaloTowersCreationAlgo::begin(), EBEScale, EcalBarrel, EcalEndcap, ecalLabels_, EEEScale, CaloTowersCreationAlgo::finish(), edm::EventSetup::get(), edm::Event::getByLabel(), HBEScale, hbheLabel_, HEDEScale, HESEScale, HF1EScale, HF2EScale, hfLabel_, HOEScale, hoLabel_, i, EScales::instanceLabel, CaloTowersCreationAlgo::makeHcalDropChMap(), edm::productstatus::present(), CaloTowersCreationAlgo::process(), CrabTask::prod, edm::ESHandle< T >::product(), edm::Event::put(), CaloTowersCreationAlgo::setEBEScale(), CaloTowersCreationAlgo::setEbHandle(), CaloTowersCreationAlgo::setEcalAcceptSeverityLevel(), CaloTowersCreationAlgo::setEcalAcceptSeverityLevelForRejectedHit(), CaloTowersCreationAlgo::setEcalChStatusFromDB(), CaloTowersCreationAlgo::setEcalSevLvlAlgo(), CaloTowersCreationAlgo::setEEEScale(), CaloTowersCreationAlgo::setEeHandle(), CaloTowersCreationAlgo::setGeometry(), CaloTowersCreationAlgo::setHBEScale(), CaloTowersCreationAlgo::setHcalAcceptSeverityLevel(), CaloTowersCreationAlgo::setHcalAcceptSeverityLevelForRejectedHit(), CaloTowersCreationAlgo::setHcalChStatusFromDB(), CaloTowersCreationAlgo::setHcalSevLvlComputer(), CaloTowersCreationAlgo::setHEDEScale(), CaloTowersCreationAlgo::setHESEScale(), CaloTowersCreationAlgo::setHF1EScale(), CaloTowersCreationAlgo::setHF2EScale(), CaloTowersCreationAlgo::setHOEScale(), CaloTowersCreationAlgo::setRecoveredEcalHitsAreUsed(), CaloTowersCreationAlgo::setRecoveredHcalHitsAreUsed(), CaloTowersCreationAlgo::setUseRejectedHitsOnly(), CaloTowersCreationAlgo::setUseRejectedRecoveredEcalHits(), CaloTowersCreationAlgo::setUseRejectedRecoveredHcalHits(), theEcalAcceptSeverityLevel_, theEcalAcceptSeverityLevelForRejectedHit_, theHcalAcceptSeverityLevel_, theHcalAcceptSeverityLevelForRejectedHit_, theRecoveredEcalHitsAreUsed_, theRecoveredHcalHitsAreUsed_, useRejectedHitsOnly_, useRejectedRecoveredEcalHits_, and useRejectedRecoveredHcalHits_.
{ // get the necessary event setup objects... edm::ESHandle<CaloGeometry> pG; edm::ESHandle<HcalTopology> htopo; edm::ESHandle<CaloTowerConstituentsMap> cttopo; c.get<CaloGeometryRecord>().get(pG); c.get<IdealGeometryRecord>().get(htopo); c.get<IdealGeometryRecord>().get(cttopo); // ECAL channel status map **************************************** edm::ESHandle<EcalChannelStatus> ecalChStatus; c.get<EcalChannelStatusRcd>().get( ecalChStatus ); const EcalChannelStatus* dbEcalChStatus = ecalChStatus.product(); // HCAL channel status map **************************************** edm::ESHandle<HcalChannelQuality> hcalChStatus; c.get<HcalChannelQualityRcd>().get( hcalChStatus ); const HcalChannelQuality* dbHcalChStatus = hcalChStatus.product(); // Assignment of severity levels ********************************** edm::ESHandle<HcalSeverityLevelComputer> hcalSevLvlComputerHndl; c.get<HcalSeverityLevelComputerRcd>().get(hcalSevLvlComputerHndl); const HcalSeverityLevelComputer* hcalSevLvlComputer = hcalSevLvlComputerHndl.product(); const EcalSeverityLevelAlgo* ecalSevLvlAlgo = new EcalSeverityLevelAlgo(); algo_.setEBEScale(EBEScale); algo_.setEEEScale(EEEScale); algo_.setHBEScale(HBEScale); algo_.setHESEScale(HESEScale); algo_.setHEDEScale(HEDEScale); algo_.setHOEScale(HOEScale); algo_.setHF1EScale(HF1EScale); algo_.setHF2EScale(HF2EScale); algo_.setGeometry(cttopo.product(),htopo.product(),pG.product()); // for treatment of problematic and anomalous cells algo_.setHcalChStatusFromDB(dbHcalChStatus); algo_.setEcalChStatusFromDB(dbEcalChStatus); algo_.setHcalAcceptSeverityLevel(theHcalAcceptSeverityLevel_); algo_.setEcalAcceptSeverityLevel(theEcalAcceptSeverityLevel_); algo_.setRecoveredHcalHitsAreUsed(theRecoveredHcalHitsAreUsed_); algo_.setRecoveredEcalHitsAreUsed(theRecoveredEcalHitsAreUsed_); algo_.setHcalSevLvlComputer(hcalSevLvlComputer); algo_.setEcalSevLvlAlgo(ecalSevLvlAlgo); algo_.setUseRejectedHitsOnly(useRejectedHitsOnly_); algo_.setHcalAcceptSeverityLevelForRejectedHit(theHcalAcceptSeverityLevelForRejectedHit_); algo_.setEcalAcceptSeverityLevelForRejectedHit(theEcalAcceptSeverityLevelForRejectedHit_); algo_.setUseRejectedRecoveredHcalHits(useRejectedRecoveredHcalHits_); algo_.setUseRejectedRecoveredEcalHits(useRejectedRecoveredEcalHits_); algo_.begin(); // clear the internal buffer algo_.makeHcalDropChMap(); // ---------------------------------------------------------- // For ecal error handling need to // have access to the EB and EE collections at the end of // tower reconstruction. edm::Handle<EcalRecHitCollection> ebHandle; edm::Handle<EcalRecHitCollection> eeHandle; for (std::vector<edm::InputTag>::const_iterator i=ecalLabels_.begin(); i!=ecalLabels_.end(); i++) { edm::Handle<EcalRecHitCollection> ec_tmp; if (! e.getByLabel(*i,ec_tmp) ) continue; if (ec_tmp->size()==0) continue; // check if this is EB or EE if ( (ec_tmp->begin()->detid()).subdetId() == EcalBarrel ) { ebHandle = ec_tmp; } else if ((ec_tmp->begin()->detid()).subdetId() == EcalEndcap ) { eeHandle = ec_tmp; } } algo_.setEbHandle(ebHandle); algo_.setEeHandle(eeHandle); //----------------------------------------------------------- bool present; // Step A/C: Get Inputs and process (repeatedly) edm::Handle<HBHERecHitCollection> hbhe; present=e.getByLabel(hbheLabel_,hbhe); if (present || !allowMissingInputs_) algo_.process(*hbhe); edm::Handle<HORecHitCollection> ho; present=e.getByLabel(hoLabel_,ho); if (present || !allowMissingInputs_) algo_.process(*ho); edm::Handle<HFRecHitCollection> hf; present=e.getByLabel(hfLabel_,hf); if (present || !allowMissingInputs_) algo_.process(*hf); std::vector<edm::InputTag>::const_iterator i; for (i=ecalLabels_.begin(); i!=ecalLabels_.end(); i++) { edm::Handle<EcalRecHitCollection> ec; present=e.getByLabel(*i,ec); if (present || !allowMissingInputs_) algo_.process(*ec); } // Step B: Create empty output std::auto_ptr<CaloTowerCollection> prod(new CaloTowerCollection()); // Step C: Process algo_.finish(*prod); // Step D: Put into the event if (EScales.instanceLabel=="") e.put(prod); else e.put(prod,EScales.instanceLabel); if (ecalSevLvlAlgo) delete ecalSevLvlAlgo; }
Definition at line 40 of file CaloTowersCreator.h.
Referenced by produce().
bool CaloTowersCreator::allowMissingInputs_ [private] |
Definition at line 43 of file CaloTowersCreator.h.
Referenced by produce().
double CaloTowersCreator::EBEScale |
Definition at line 33 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
std::vector<edm::InputTag> CaloTowersCreator::ecalLabels_ [private] |
Definition at line 42 of file CaloTowersCreator.h.
Referenced by produce().
double CaloTowersCreator::EEEScale |
Definition at line 33 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
double CaloTowersCreator::HBEScale |
Definition at line 33 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
edm::InputTag CaloTowersCreator::hbheLabel_ [private] |
Definition at line 41 of file CaloTowersCreator.h.
Referenced by produce().
double CaloTowersCreator::HEDEScale |
Definition at line 34 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
double CaloTowersCreator::HESEScale |
Definition at line 33 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
double CaloTowersCreator::HF1EScale |
Definition at line 34 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
double CaloTowersCreator::HF2EScale |
Definition at line 34 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
edm::InputTag CaloTowersCreator::hfLabel_ [private] |
Definition at line 41 of file CaloTowersCreator.h.
Referenced by produce().
double CaloTowersCreator::HOEScale |
Definition at line 34 of file CaloTowersCreator.h.
Referenced by CaloTowersCreator(), and produce().
edm::InputTag CaloTowersCreator::hoLabel_ [private] |
Definition at line 41 of file CaloTowersCreator.h.
Referenced by produce().
unsigned int CaloTowersCreator::theEcalAcceptSeverityLevel_ [private] |
Definition at line 49 of file CaloTowersCreator.h.
Referenced by produce().
unsigned int CaloTowersCreator::theEcalAcceptSeverityLevelForRejectedHit_ [private] |
Definition at line 60 of file CaloTowersCreator.h.
Referenced by produce().
unsigned int CaloTowersCreator::theHcalAcceptSeverityLevel_ [private] |
Definition at line 48 of file CaloTowersCreator.h.
Referenced by produce().
unsigned int CaloTowersCreator::theHcalAcceptSeverityLevelForRejectedHit_ [private] |
Definition at line 59 of file CaloTowersCreator.h.
Referenced by produce().
bool CaloTowersCreator::theRecoveredEcalHitsAreUsed_ [private] |
Definition at line 53 of file CaloTowersCreator.h.
Referenced by produce().
bool CaloTowersCreator::theRecoveredHcalHitsAreUsed_ [private] |
Definition at line 52 of file CaloTowersCreator.h.
Referenced by produce().
bool CaloTowersCreator::useRejectedHitsOnly_ [private] |
Definition at line 58 of file CaloTowersCreator.h.
Referenced by produce().
bool CaloTowersCreator::useRejectedRecoveredEcalHits_ [private] |
Definition at line 62 of file CaloTowersCreator.h.
Referenced by produce().
bool CaloTowersCreator::useRejectedRecoveredHcalHits_ [private] |
Definition at line 61 of file CaloTowersCreator.h.
Referenced by produce().