#include <HcalQLPlotHistoMgr.h>
Public Types | |
enum | EventType { UNKNOWN = 0, PEDESTAL = 1, LED = 2, LASER = 3, BEAM = 4 } |
enum | HistType { ENERGY = 0, TIME = 1, PULSE = 2, ADC = 3 } |
Public Member Functions | |
TH1 * | GetAHistogram (const HcalDetId &id, const HcalElectronicsId &eid, HistType ht, EventType et) |
TH1 * | GetAHistogram (const HcalCalibDetId &id, const HcalElectronicsId &eid, HistType ht, EventType et) |
HcalQLPlotHistoMgr (TDirectory *parent, const edm::ParameterSet &histoParams) | |
Static Public Member Functions | |
static std::string | nameForEvent (EventType et) |
static std::string | nameForFlavor (HistType ht) |
Private Member Functions | |
TH1 * | GetAHistogramImpl (const char *name, HistType ht, EventType et) |
Private Attributes | |
TDirectory * | beamHistDir |
TDirectory * | ctrHistDir |
edm::ParameterSet | histoParams_ |
TDirectory * | laserHistDir |
TDirectory * | ledHistDir |
TDirectory * | otherHistDir |
TDirectory * | pedHistDir |
Definition at line 12 of file HcalQLPlotHistoMgr.h.
HcalQLPlotHistoMgr::HcalQLPlotHistoMgr | ( | TDirectory * | parent, |
const edm::ParameterSet & | histoParams | ||
) |
Definition at line 15 of file HcalQLPlotHistoMgr.cc.
References beamHistDir, histoParams_, laserHistDir, ledHistDir, otherHistDir, and pedHistDir.
{ pedHistDir=parent->mkdir("PEDESTAL"); ledHistDir=parent->mkdir("LED"); laserHistDir=parent->mkdir("LASER"); beamHistDir=parent->mkdir("BEAM"); otherHistDir=parent->mkdir("OTHER"); histoParams_ = histoParams; }
TH1 * HcalQLPlotHistoMgr::GetAHistogram | ( | const HcalDetId & | id, |
const HcalElectronicsId & | eid, | ||
HistType | ht, | ||
EventType | et | ||
) |
Definition at line 45 of file HcalQLPlotHistoMgr.cc.
References HcalElectronicsId::dccid(), HcalElectronicsId::fiberChanId(), HcalElectronicsId::fiberIndex(), GetAHistogramImpl(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HcalElectronicsId::htrSlot(), HcalElectronicsId::htrTopBottom(), mergeVDriftHistosByStation::name, nameForFlavor(), HcalElectronicsId::readoutVMECrateId(), and HcalElectronicsId::spigot().
Referenced by HcalQLPlotAnalAlgos::processDigi(), and HcalQLPlotAnalAlgos::processRH().
{ std::string flavor=nameForFlavor(ht); char name[120]; std::string subdetStr; switch (id.subdet()) { case (HcalBarrel) : subdetStr="HB"; break; case (HcalEndcap) : subdetStr="HE"; break; case (HcalOuter) : subdetStr="HO"; break; case (HcalForward) : subdetStr="HF"; break; default: subdetStr="Other"; break; } sprintf(name,"%s_%s_%d_%d_%d_eid=%d_%d_%d_%d_HTR_%d:%d%c", flavor.c_str(),subdetStr.c_str(),id.ieta(),id.iphi(),id.depth(), eid.dccid(),eid.spigot(), eid.fiberIndex(), eid.fiberChanId(), eid.readoutVMECrateId(), eid.htrSlot(),(eid.htrTopBottom()==1)?('t'):('b') ); return GetAHistogramImpl(name,ht,et); }
TH1 * HcalQLPlotHistoMgr::GetAHistogram | ( | const HcalCalibDetId & | id, |
const HcalElectronicsId & | eid, | ||
HistType | ht, | ||
EventType | et | ||
) |
Definition at line 70 of file HcalQLPlotHistoMgr.cc.
References HcalElectronicsId::dccid(), HcalElectronicsId::fiberChanId(), HcalElectronicsId::fiberIndex(), GetAHistogramImpl(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HcalElectronicsId::htrSlot(), HcalElectronicsId::htrTopBottom(), mergeVDriftHistosByStation::name, nameForFlavor(), HcalElectronicsId::readoutVMECrateId(), and HcalElectronicsId::spigot().
{ std::string flavor=nameForFlavor(ht); char name[120]; std::string subdetStr; switch (id.hcalSubdet()) { case (HcalBarrel) : subdetStr="HB"; break; case (HcalEndcap) : subdetStr="HE"; break; case (HcalOuter) : subdetStr="HO"; break; case (HcalForward) : subdetStr="HF"; break; default: subdetStr="Other"; break; } std::string chanstring = id.cboxChannelString(); if (!chanstring.size()) { chanstring = "Unknown"; edm::LogInfo("HcalQLPlotHistoMgr::GetAHistogram") << "Unknown calibration channel " << id.cboxChannel(); } sprintf(name,"%s_CALIB_%s_%d_%d_chan=%s_eid=%d_%d_%d_%d_HTR_%d:%d%c", flavor.c_str(),subdetStr.c_str(),id.ieta(),id.iphi(),chanstring.c_str(), eid.dccid(),eid.spigot(), eid.fiberIndex(), eid.fiberChanId(), eid.readoutVMECrateId(), eid.htrSlot(),(eid.htrTopBottom()==1)?('t'):('b') ); return GetAHistogramImpl(name,ht,et); }
TH1 * HcalQLPlotHistoMgr::GetAHistogramImpl | ( | const char * | name, |
HistType | ht, | ||
EventType | et | ||
) | [private] |
Definition at line 101 of file HcalQLPlotHistoMgr.cc.
References BEAM, BEAM_BINS, beamHistDir, ENERGY, exception, edm::ParameterSet::getParameter(), histoParams_, LASER, LASER_BINS, laserHistDir, LED, LED_BINS, ledHistDir, OTHER_BINS, otherHistDir, PED_BINS, PEDESTAL, pedHistDir, PULSE, PULSE_BINS, TIME, TIME_BINS, and UNKNOWN.
Referenced by GetAHistogram().
{ TDirectory* td; switch (et) { case(PEDESTAL): td=pedHistDir; break; case(LED): td=ledHistDir; break; case(LASER): td=laserHistDir; break; case(BEAM): td=beamHistDir; break; case(UNKNOWN): td=otherHistDir; break; default: td=0; break; } if (td==0) { printf("Unknown %d !\n", et); return 0; } TH1* retval=0; retval=(TH1*)td->Get(name); int bins=0; double lo=0, hi=0; // If the histogram doesn't exist and we are authorized, // create it! // if (retval==0) { td->cd(); switch (ht) { case(ENERGY): { switch (et) { case(PEDESTAL): bins=PED_BINS; try { lo=histoParams_.getParameter<double>("pedGeVlo"); hi=histoParams_.getParameter<double>("pedGeVhi"); } catch (std::exception& e) { // can't find it! edm::LogError("HcalQLPlotHistoMgr::GetAHistogram") << "Parameter(s) pedGeVlo/hi not found."; throw e; } break; case(LED): bins=LED_BINS; try { lo=histoParams_.getParameter<double>("ledGeVlo"); hi=histoParams_.getParameter<double>("ledGeVhi"); } catch (std::exception& e) { // can't find it! edm::LogError("HcalQLPlotHistoMgr::GetAHistogram") << "Parameter(s) ledGeVlo/hi not found."; throw e; } break; case(LASER): bins=LASER_BINS; try { lo=histoParams_.getParameter<double>("laserGeVlo"); hi=histoParams_.getParameter<double>("laserGeVhi"); } catch (std::exception& e) { // can't find it! edm::LogError("HcalQLPlotHistoMgr::GetAHistogram") << "Parameter(s) laserGeVlo/hi not found."; throw e; } break; case(BEAM): bins=BEAM_BINS; try { lo=histoParams_.getParameter<double>("beamGeVlo"); hi=histoParams_.getParameter<double>("beamGeVhi"); } catch (std::exception& e) { // can't find it! edm::LogError("HcalQLPlotHistoMgr::GetAHistogram") << "Parameter(s) beamGeVlo/hi not found."; throw e; } break; case(UNKNOWN): bins=OTHER_BINS; try { lo=histoParams_.getParameter<double>("otherGeVlo"); hi=histoParams_.getParameter<double>("otherGeVhi"); } catch (std::exception& e) { // can't find it! edm::LogError("HcalQLPlotHistoMgr::GetAHistogram") << "Parameter(s) otherGeVlo/hi not found."; throw e; } break; default: break; }; } break; case(TIME): bins=TIME_BINS; try { lo=histoParams_.getParameter<double>("timeNSlo"); hi=histoParams_.getParameter<double>("timeNShi"); } catch (std::exception& e) { // can't find it! edm::LogError("HcalQLPlotHistoMgr::GetAHistogram") << "Parameter(s) timeNSlo/hi not found."; throw e; } break; case(PULSE): bins=PULSE_BINS; lo=-0.5; hi=PULSE_BINS-0.5; break; case(ADC): bins=PED_BINS; try { lo=histoParams_.getParameter<double>("pedADClo"); hi=histoParams_.getParameter<double>("pedADChi"); } catch (std::exception& e) { // can't find it! edm::LogError("HcalQLPlotHistoMgr::GetAHistogram") << "Parameter(s) pedADClo/hi not found."; throw e; } break; } if (bins>0){ if (ht==PULSE){ retval=new TProfile(name,name,bins,lo,hi); retval->GetXaxis()->SetTitle("TimeSlice(25ns)"); retval->GetYaxis()->SetTitle("fC"); } else if (ht==TIME){ retval=new TH1F(name,name,bins,lo,hi); retval->GetXaxis()->SetTitle("Timing(ns)"); } else if (ht==ENERGY){ retval=new TH1F(name,name,bins,lo,hi); retval->GetXaxis()->SetTitle("Energy(GeV)"); } else if (ht==ADC){ retval=new TH1F(name,name,bins,lo,hi); retval->GetXaxis()->SetTitle("ADC Counts"); } } } return retval; }
std::string HcalQLPlotHistoMgr::nameForEvent | ( | EventType | et | ) | [static] |
std::string HcalQLPlotHistoMgr::nameForFlavor | ( | HistType | ht | ) | [static] |
Definition at line 25 of file HcalQLPlotHistoMgr.cc.
References ENERGY, PULSE, and TIME.
Referenced by GetAHistogram().
TDirectory* HcalQLPlotHistoMgr::beamHistDir [private] |
Definition at line 34 of file HcalQLPlotHistoMgr.h.
Referenced by GetAHistogramImpl(), and HcalQLPlotHistoMgr().
TDirectory* HcalQLPlotHistoMgr::ctrHistDir [private] |
Definition at line 35 of file HcalQLPlotHistoMgr.h.
Definition at line 37 of file HcalQLPlotHistoMgr.h.
Referenced by GetAHistogramImpl(), and HcalQLPlotHistoMgr().
TDirectory* HcalQLPlotHistoMgr::laserHistDir [private] |
Definition at line 33 of file HcalQLPlotHistoMgr.h.
Referenced by GetAHistogramImpl(), and HcalQLPlotHistoMgr().
TDirectory* HcalQLPlotHistoMgr::ledHistDir [private] |
Definition at line 32 of file HcalQLPlotHistoMgr.h.
Referenced by GetAHistogramImpl(), and HcalQLPlotHistoMgr().
TDirectory* HcalQLPlotHistoMgr::otherHistDir [private] |
Definition at line 36 of file HcalQLPlotHistoMgr.h.
Referenced by GetAHistogramImpl(), and HcalQLPlotHistoMgr().
TDirectory* HcalQLPlotHistoMgr::pedHistDir [private] |
Definition at line 31 of file HcalQLPlotHistoMgr.h.
Referenced by GetAHistogramImpl(), and HcalQLPlotHistoMgr().