23 #include "TProfile2D.h"
42 : EBRecHitCollection_(iConfig.getParameter<edm::
InputTag>(
"EcalRecHitCollectionEB")),
43 EERecHitCollection_(iConfig.getParameter<edm::
InputTag>(
"EcalRecHitCollectionEE")),
44 EBDigis_(iConfig.getParameter<edm::
InputTag>(
"EBDigiCollection")),
45 EEDigis_(iConfig.getParameter<edm::
InputTag>(
"EEDigiCollection")),
46 headerProducer_(iConfig.getParameter<edm::
InputTag>(
"headerProducer")),
55 side_(iConfig.getUntrackedParameter<int>(
"side", 3)),
56 threshold_(iConfig.getUntrackedParameter<double>(
"amplitudeThreshold", 0.5)),
57 minTimingAmp_(iConfig.getUntrackedParameter<double>(
"minimumTimingAmplitude", 0.100)),
58 makeDigiGraphs_(iConfig.getUntrackedParameter<bool>(
"makeDigiGraphs",
false)),
59 makeTimingHistos_(iConfig.getUntrackedParameter<bool>(
"makeTimingHistos",
true)),
60 makeEnergyHistos_(iConfig.getUntrackedParameter<bool>(
"makeEnergyHistos",
true)),
61 makeOccupancyHistos_(iConfig.getUntrackedParameter<bool>(
"makeOccupancyHistos",
true)),
62 histRangeMin_(iConfig.getUntrackedParameter<double>(
"histogramMinRange", 0.0)),
63 histRangeMax_(iConfig.getUntrackedParameter<double>(
"histogramMaxRange", 1.8)),
64 minTimingEnergyEB_(iConfig.getUntrackedParameter<double>(
"minTimingEnergyEB", 0.0)),
65 minTimingEnergyEE_(iConfig.getUntrackedParameter<double>(
"minTimingEnergyEE", 0.0)) {
66 vector<int> listDefaults;
67 listDefaults.push_back(-1);
73 vector<string> defaultMaskedEBs;
74 defaultMaskedEBs.push_back(
"none");
79 string title1 =
"Jitter for all FEDs all events";
80 string name1 =
"JitterAllFEDsAllEvents";
84 if (maskedFEDs_[0] == -1) {
88 for (vector<string>::const_iterator ebItr =
maskedEBs_.begin(); ebItr !=
maskedEBs_.end(); ++ebItr) {
89 maskedFEDs_.push_back(fedMap_->getFedFromSlice(*ebItr));
94 for (
int i = 0;
i < 10;
i++)
127 int ievt = iEvent.
id().
event();
133 names =
new std::vector<string>();
134 canvasNames_->Branch(
"names",
"vector<string>", &names);
138 histoCanvasNames_->Branch(
"histoCanvasNamesVector",
"vector<string>", &histoCanvasNamesVector);
158 bool hasEBdigis =
false;
159 bool hasEEdigis =
false;
183 if (hasEBdigis || hasEEdigis)
194 int FEDid = 600 + elecId.
dccId();
196 if (FEDid < 610 || FEDid > 645)
201 float ampli = hit.
energy();
203 vector<int>::iterator
result;
214 bool cryIsInList =
false;
225 string title =
"Digis";
228 pair<map<string, int>::iterator,
bool> pair =
seedFrequencyMap_.insert(make_pair(seed, freq));
230 ++(pair.first->second);
234 TCanvas
can(name.c_str(), title.c_str(), 200, 50, 900, 900);
250 names->push_back(name);
257 for (
int i = 0;
i < 10;
i++)
260 emptyGraph->SetTitle(
"NOT ECAL");
266 emptyGraph->SetTitle(
"NO DIGIS");
269 int FEDid = 600 + elecId.
dccId();
271 if (FEDid < 610 || FEDid > 645)
274 int ic = isBarrel ? ((
EBDetId)thisDet).ic() : cryIndex;
306 else if (gainId == 2)
308 else if (gainId == 3)
315 emptyGraph->SetTitle(
"FIRST TWO SAMPLES NOT GAIN12");
324 for (
int i = 0;
i < df.
size(); ++
i) {
333 string gainString = (gainId == 1) ?
"Free" :
intToString(gainHuman);
335 sliceName +
"_gain" + gainString;
338 map<int, float>::const_iterator itr;
342 energy = (float)itr->second;
349 oneGraph->SetTitle(title.c_str());
350 oneGraph->SetName(name.c_str());
351 oneGraph->GetXaxis()->SetTitle(
"sample");
352 oneGraph->GetYaxis()->SetTitle(
"ADC");
357 int FEDid = 600 + elecId.
dccId();
364 EBDetId digiId = digiItr->id();
365 int ieta = digiId.
ieta();
366 int iphi = digiId.
iphi();
379 DetId det = digiItr->id();
381 size_t FEDid = 600 + elecId.
dccId();
385 EEDetId digiId = digiItr->id();
386 int ieta = digiId.
iy();
387 int iphi = digiId.
ix();
411 int FEDid = 600 + elecId.
dccId();
414 if (FEDid < 610 || FEDid > 645) {
419 int iphi = isBarrel ? ((
EBDetId)det).iphi() : ((
EEDetId)det).ix();
420 int ieta = isBarrel ? ((
EBDetId)det).ieta() : ((
EEDetId)det).iy();
422 float time = hit.
time();
514 if (timingHist ==
nullptr) {
519 timingHist->Fill(hit.
time());
547 string frequencies =
"";
550 if (itr->second > 1) {
551 frequencies += itr->first;
552 frequencies +=
" Frequency: ";
557 LogWarning(
"EcalDisplaysByEvent") <<
"Found seeds with frequency > 1: "
573 LogWarning(
"EcalDisplaysByEvent") <<
"Masked channels are: " << channels;
574 LogWarning(
"EcalDisplaysByEvent") <<
"Masked FEDs are: " << feds <<
" and that is all!";
579 ostringstream myStream;
580 myStream << num << flush;
581 return (myStream.str());
586 ostringstream myStream;
587 myStream << num << flush;
588 return (myStream.str());
595 string title1 =
"Jitter for ";
597 string name1 =
"JitterFED";
599 TH1F* timingHist =
fileService->
make<TH1F>(name1.c_str(), title1.c_str(), 150, -7, 7);
606 string canvasTitle =
"Timing_Event" + lastPart;
607 timingEB_ =
new TH1F(
"timeForAllFedsEB",
"timeForAllFeds;Relative Time (1 clock = 25ns)", 78, -7, 7);
608 timingEEM_ =
new TH1F(
"timeForAllFedsEEM",
"timeForAllFeds_EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
609 timingEEP_ =
new TH1F(
"timeForAllFedsEEP",
"timeForAllFeds_EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
610 timingCanvas_ =
new TCanvas(canvasTitle.c_str(), canvasTitle.c_str(), 300, 60, 500, 200);
624 string canvasTitle =
"Energy_Event" + lastPart;
625 energyCanvas_ =
new TCanvas(canvasTitle.c_str(), canvasTitle.c_str(), 300, 60, 500, 200);
700 string canvasTitle =
"Timing_AllEvents";
701 timingEBAll_ =
new TH1F(
"timeForAllFedsEBAll",
"timeForAllFeds;Relative Time (1 clock = 25ns)", 78, -7, 7);
702 timingEEMAll_ =
new TH1F(
"timeForAllFedsEEMAll",
"timeForAllFeds_EEM;Relative Time (1 clock = 25ns)", 78, -7, 7);
703 timingEEPAll_ =
new TH1F(
"timeForAllFedsEEPAll",
"timeForAllFeds_EEP;Relative Time (1 clock = 25ns)", 78, -7, 7);
704 timingCanvasAll_ =
new TCanvas(canvasTitle.c_str(), canvasTitle.c_str(), 300, 60, 500, 200);
716 canvasTitle =
"Energy_AllEvents";
717 energyCanvasAll_ =
new TCanvas(canvasTitle.c_str(), canvasTitle.c_str(), 300, 60, 500, 200);
756 double ttEtaBins[36] = {-85, -80, -75, -70, -65, -60, -55, -50, -45, -40, -35, -30, -25, -20, -15, -10, -5, 0,
757 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86};
758 double modEtaBins[10] = {-85, -65, -45, -25, 0, 1, 26, 46, 66, 86};
759 double ttPhiBins[73];
760 double modPhiBins[19];
761 double timingBins[79];
762 for (
int i = 0;
i < 79; ++
i) {
763 timingBins[
i] = 6 - 7. + double(
i) * 14. / 78.;
765 ttPhiBins[
i] = 1 + 5 *
i;
767 modPhiBins[
i] = 1 + 20 *
i;
773 histName = histName +
"EB";
774 histTitle = histTitle +
" EB";
776 histName = histName +
"Coarse";
777 histTitle = histTitle +
" by Module Nominal value = 6;iphi;ieta ";
778 hist =
new TH3F(histName.c_str(), histTitle.c_str(), 18, modPhiBins, 9, modEtaBins, 78, timingBins);
780 histTitle = histTitle +
" by TT Nominal value = 6;iphi;ieta";
781 hist =
new TH3F(histName.c_str(), histTitle.c_str(), 360 / 5, ttPhiBins, 35, ttEtaBins, 78, timingBins);
786 for (
int i = 0;
i != 21; ++
i) {
787 ttXBins[
i] = 1 + 5 *
i;
788 ttYBins[
i] = 1 + 5 *
i;
791 histName = histName +
"EEM";
792 histTitle = histTitle +
" EEM";
794 histName = histName +
"EEP";
795 histTitle = histTitle +
" EEP";
798 histName = histName +
"Coarse";
799 histTitle = histTitle +
" by Module Nominal value = 6;ix;iy";
800 hist =
new TH3F(histName.c_str(), histTitle.c_str(), 20, ttXBins, 20, ttYBins, 78, timingBins);
802 histTitle = histTitle +
" by TT Nominal value = 6;ix;iy";
803 hist =
new TH3F(histName.c_str(), histTitle.c_str(), 20, ttXBins, 20, ttYBins, 78, timingBins);
817 histName = histName +
"EB";
818 histTitle = histTitle +
" EB";
820 histName = histName +
"Coarse";
821 histTitle = histTitle +
" Coarse;iphi;ieta";
822 double ttEtaBins[36] = {-85, -80, -75, -70, -65, -60, -55, -50, -45, -40, -35, -30, -25, -20, -15, -10, -5, 0,
823 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86};
824 hist =
new TH2F(histName.c_str(), histTitle.c_str(), 360 / 5, 1, 361., 35, ttEtaBins);
826 histTitle = histTitle +
";iphi;ieta";
827 hist =
new TH2F(histName.c_str(), histTitle.c_str(), 360, 1, 361., 172, -86, 86);
831 histName = histName +
"EEM";
832 histTitle = histTitle +
" EEM";
834 histName = histName +
"EEP";
835 histTitle = histTitle +
" EEP";
838 histName = histName +
"Coarse";
839 histTitle = histTitle +
" Coarse;ix;iy";
840 hist =
new TH2F(histName.c_str(), histTitle.c_str(), 20, 1, 101, 20, 1, 101);
842 histTitle = histTitle +
";ix;iy";
843 hist =
new TH2F(histName.c_str(), histTitle.c_str(), 100, 1, 101, 100, 1, 101);
850 TCanvas*
canvas =
new TCanvas(canvasTitle.c_str(), canvasTitle.c_str(), 300, 60, 500, 200);
880 canvas->Divide(1, 2);
881 canvas->cd(1)->Divide(2, 1);
882 canvas->cd(1)->cd(1);
886 canvas->cd(1)->cd(2);
889 canvas->SetCanvasSize(500, 500);
890 canvas->SetFixedAspectRatio(
true);
895 canvas->Divide(1, 2);
896 canvas->cd(1)->Divide(2, 1);
898 canvas->cd(1)->cd(1);
904 hist2->GetXaxis()->SetNdivisions(-18);
905 hist2->GetYaxis()->SetNdivisions(2);
906 canvas->GetPad(2)->SetGridx(1);
907 canvas->GetPad(2)->SetGridy(1);
909 canvas->cd(1)->cd(2);
913 canvas->SetCanvasSize(500, 500);
914 canvas->SetFixedAspectRatio(
true);
921 TProfile2D* profile2 = (TProfile2D*)hist2->Project3DProfile(
"yx");
922 profile2->Draw(
"colz");
925 canvas->Divide(1, 2);
926 canvas->cd(1)->Divide(2, 1);
928 canvas->cd(1)->cd(1);
929 TProfile2D* profile1 = (TProfile2D*)hist1->Project3DProfile(
"yx");
930 profile1->Draw(
"colz");
934 TProfile2D* profile2 = (TProfile2D*)hist2->Project3DProfile(
"yx");
935 profile2->Draw(
"colz");
936 profile2->GetXaxis()->SetNdivisions(-18);
937 profile2->GetYaxis()->SetNdivisions(2);
938 canvas->GetPad(2)->SetGridx(1);
939 canvas->GetPad(2)->SetGridy(1);
941 canvas->cd(1)->cd(2);
942 TProfile2D* profile3 = (TProfile2D*)hist3->Project3DProfile(
"yx");
943 profile3->Draw(
"colz");
947 canvas->SetCanvasSize(500, 500);
948 canvas->SetFixedAspectRatio(
true);
953 int nxb = profile->GetNbinsX();
954 int nyb = profile->GetNbinsY();
956 for (
int i = 0;
i != nxb; ++
i) {
957 for (
int j = 0;
j != nyb; ++
j) {
961 double xcorr = profile->GetBinCenter(xb);
962 double ycorr = profile->GetBinCenter(yb);
963 sprintf(tempErr,
"%0.2f", profile->GetBinError(xb, yb));
964 int nBin = profile->GetBin(xb, yb, 0);
965 int nBinEntries = (int)profile->GetBinEntries(nBin);
966 if (nBinEntries != 0) {
967 TLatex*
tex =
new TLatex(xcorr, ycorr, tempErr);
968 tex->SetTextAlign(23);
969 tex->SetTextSize(42);
970 tex->SetTextSize(0.025);
971 tex->SetLineWidth(2);
975 sprintf(tempErr,
"%i", nBinEntries);
976 if (nBinEntries != 0) {
977 TLatex*
tex =
new TLatex(xcorr, ycorr, tempErr);
978 tex->SetTextAlign(21);
979 tex->SetTextFont(42);
980 tex->SetTextSize(0.025);
981 tex->SetLineWidth(2);
990 int ixSectorsEE[202] = {
991 61, 61, 60, 60, 59, 59, 58, 58, 57, 57, 55, 55, 45, 45, 43, 43, 42, 42, 41, 41, 40, 40, 39, 39, 40, 40,
992 41, 41, 42, 42, 43, 43, 45, 45, 55, 55, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 0, 100, 100, 97, 97, 95,
993 95, 92, 92, 87, 87, 85, 85, 80, 80, 75, 75, 65, 65, 60, 60, 40, 40, 35, 35, 25, 25, 20, 20, 15, 15, 13,
994 13, 8, 8, 5, 5, 3, 3, 0, 0, 3, 3, 5, 5, 8, 8, 13, 13, 15, 15, 20, 20, 25, 25, 35, 35, 40,
995 40, 60, 60, 65, 65, 75, 75, 80, 80, 85, 85, 87, 87, 92, 92, 95, 95, 97, 97, 100, 100, 0, 61, 65, 65, 70,
996 70, 80, 80, 90, 90, 92, 0, 61, 65, 65, 90, 90, 97, 0, 57, 60, 60, 65, 65, 70, 70, 75, 75, 80, 80, 0,
997 50, 50, 0, 43, 40, 40, 35, 35, 30, 30, 25, 25, 20, 20, 0, 39, 35, 35, 10, 10, 3, 0, 39, 35, 35, 30,
998 30, 20, 20, 10, 10, 8, 0, 45, 45, 40, 40, 35, 35, 0, 55, 55, 60, 60, 65, 65};
1000 int iySectorsEE[202] = {50, 55, 55, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 60, 60, 59, 59, 58, 58, 57, 57, 55, 55,
1001 45, 45, 43, 43, 42, 42, 41, 41, 40, 40, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 45, 45, 50,
1002 0, 50, 60, 60, 65, 65, 75, 75, 80, 80, 85, 85, 87, 87, 92, 92, 95, 95, 97, 97, 100, 100, 97,
1003 97, 95, 95, 92, 92, 87, 87, 85, 85, 80, 80, 75, 75, 65, 65, 60, 60, 40, 40, 35, 35, 25, 25,
1004 20, 20, 15, 15, 13, 13, 8, 8, 5, 5, 3, 3, 0, 0, 3, 3, 5, 5, 8, 8, 13, 13, 15,
1005 15, 20, 20, 25, 25, 35, 35, 40, 40, 50, 0, 45, 45, 40, 40, 35, 35, 30, 30, 25, 25, 0, 50,
1006 50, 55, 55, 60, 60, 0, 60, 60, 65, 65, 70, 70, 75, 75, 85, 85, 87, 0, 61, 100, 0, 60, 60,
1007 65, 65, 70, 70, 75, 75, 85, 85, 87, 0, 50, 50, 55, 55, 60, 60, 0, 45, 45, 40, 40, 35, 35,
1008 30, 30, 25, 25, 0, 39, 30, 30, 15, 15, 5, 0, 39, 30, 30, 15, 15, 5};
1010 for (
int i = 0;
i < 202;
i++) {
1011 ixSectorsEE[
i] += 1;
1012 iySectorsEE[
i] += 1;
1018 for (
int i = 0;
i < 201;
i =
i + 1) {
1019 if ((ixSectorsEE[
i] != 1 || iySectorsEE[
i] != 1) && (ixSectorsEE[
i + 1] != 1 || iySectorsEE[
i + 1] != 1)) {
1020 l.DrawLine(ixSectorsEE[
i], iySectorsEE[i], ixSectorsEE[i + 1], iySectorsEE[i + 1]);
TH2F * recHitOccupancyEBcoarseAll_
std::vector< std::string > maskedEBs_
EventNumber_t event() const
TH2F * energyMapEBcoarse_
T getUntrackedParameter(std::string const &, T const &) const
std::set< EBDetId > listEBChannels
TCanvas * timingMapCoarseCanvas_
edm::Handle< EEDigiCollection > EEdigisHandle
void endRun(edm::Run const &, edm::EventSetup const &) override
const edm::EDGetTokenT< EcalRawDataCollection > rawDataToken_
const edm::EventSetup & c
TCanvas * energyMapCoarseCanvas_
int xtalId() const
get the channel id
TH2F * recHitOccupancyEEPcoarseAll_
int stripId() const
get the tower id
TH2F * init2DEcalHist(std::string histTypeName, int subDet)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
TH2F * recHitOccupancyEEMcoarseAll_
std::vector< int > maskedChannels_
TCanvas * energyMapCanvasAll_
Ecal readout channel identification [32:20] Unused (so far) [19:13] DCC id [12:6] tower [5:3] strip [...
TH2F * recHitOccupancyEEP_
std::vector< std::string > * names
const EcalElectronicsMapping * ecalElectronicsMap_
int getEEIndex(EcalElectronicsId elecId)
const double minTimingAmp_
std::vector< T >::const_iterator const_iterator
const bool makeEnergyHistos_
const double minTimingEnergyEB_
void analyze(edm::Event const &, edm::EventSetup const &) override
EcalMGPASample sample(int i) const
std::map< int, EcalDCCHeaderBlock > FEDsAndDCCHeaders_
void drawTimingErrors(TProfile2D *profile)
int towerId() const
get the tower id
T * make(const Args &...args) const
make new ROOT object
TH3F * timingMapEEMCoarseAll_
TH2F * recHitOccupancyEEPcoarse_
const_iterator begin() const
The iterator returned can not safely be used across threads.
TCanvas * digiOccupancyCoarseCanvasAll_
TH2F * recHitOccupancyEEMcoarse_
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
int gainId() const
get the gainId (2 bits)
TCanvas * timingMapCanvas_
TH2F * digiOccupancyEEMcoarse_
TCanvas * recHitOccupancyCanvas_
std::set< EEDetId > listEEChannels
void drawCanvas(TCanvas *canvas, TH1F *hist1, TH1F *hist2, TH1F *hist3)
std::string getSliceFromFed(int)
std::vector< std::string > * histoCanvasNamesVector
TCanvas * timingMapCanvasAll_
int iphi() const
get the crystal iphi
const edm::EDGetTokenT< EcalRecHitCollection > ebRecHitToken_
bool getData(T &iHolder) const
TCanvas * digiOccupancyCanvasAll_
TH2F * energyMapEEPcoarseAll_
EcalElectronicsId getElectronicsId(const DetId &id) const
Get the electronics id for this det id.
TH2F * recHitOccupancyEEM_
T offsetBy(int deltaX, int deltaY) const
Free movement of arbitray steps.
TH2F * digiOccupancyEEMAll_
std::vector< int > maskedFEDs_
TCanvas * energyMapCanvas_
const edm::EDGetTokenT< EEDigiCollection > eeDigiToken_
TH2F * recHitOccupancyEEMAll_
TCanvas * digiOccupancyCanvas_
const bool makeDigiGraphs_
void selectHits(edm::Handle< EcalRecHitCollection > hits, int ievt)
TH3F * timingMapEBCoarseAll_
TCanvas * recHitOccupancyCoarseCanvasAll_
TH2F * energyMapEEMcoarseAll_
const edm::ESGetToken< EcalElectronicsMapping, EcalMappingRcd > ecalMappingToken_
TH2F * recHitOccupancyEBcoarse_
std::map< int, TH1F * > FEDsAndTimingHists_
const edm::EDGetTokenT< EcalRecHitCollection > eeRecHitToken_
int ieta() const
get the crystal ieta
static edm::Service< TFileService > fileService
const bool makeOccupancyHistos_
TH3F * timingMapEEMCoarse_
TCanvas * energyCanvasAll_
const CaloTopology * caloTopo_
int dccId() const
get the DCC (Ecal Local DCC value not global one) id
const double histRangeMax_
const bool makeTimingHistos_
std::string intToString(int num)
side_(iConfig.getUntrackedParameter< int >("side", 3))
void home() const
move the navigator back to the starting point
static float gainRatio[3]
TH3F * timingMapEEPCoarse_
TH2F * recHitOccupancyEEPAll_
void makeHistos(edm::Handle< EBDigiCollection > ebDigis)
TH2F * digiOccupancyEBcoarseAll_
constexpr int gainId(sample_type sample)
get the gainId (2 bits)
edm::Handle< EBDigiCollection > EBdigisHandle
DetId id() const
get the id
T const * product() const
TCanvas * recHitOccupancyCanvasAll_
const double minTimingEnergyEE_
const CaloSubdetectorTopology * getSubdetectorTopology(const DetId &id) const
access the subdetector Topology for the given subdetector directly
TH2F * recHitOccupancyEBAll_
TCanvas * timingCanvasAll_
TTree * histoCanvasNames_
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
~EcalDisplaysByEvent() override
const_iterator end() const
std::map< std::string, int > seedFrequencyMap_
const edm::ESGetToken< CaloTopology, CaloTopologyRecord > topologyToken_
void initEvtByEvtHists(int naiveEvtNum_, int ievt)
TCanvas * digiOccupancyCoarseCanvas_
std::vector< int > seedCrys_
TH2F * digiOccupancyEEPAll_
std::string floatToString(float num)
TCanvas * energyMapCoarseCanvasAll_
TH1F * allFedsTimingHist_
TH2F * digiOccupancyEBAll_
TH2F * digiOccupancyEEPcoarseAll_
TH3F * timingMapEEPCoarseAll_
void deleteEvtByEvtHists()
const double histRangeMin_
TH2F * recHitOccupancyEB_
TGraph * selectDigi(DetId det, int ievt)
TH3F * init3DEcalHist(std::string histTypeName, int dubDet)
TH2F * energyMapEEMcoarse_
TH2F * digiOccupancyEBcoarse_
TCanvas * init2DEcalCanvas(std::string canvasName)
Log< level::Warning, false > LogWarning
TH2F * energyMapEBcoarseAll_
void beginRun(edm::Run const &, edm::EventSetup const &) override
TCanvas * recHitOccupancyCoarseCanvas_
EcalDisplaysByEvent(const edm::ParameterSet &)
const edm::EDGetTokenT< EBDigiCollection > ebDigiToken_
TH2F * energyMapEEPcoarse_
TH2F * digiOccupancyEEMcoarseAll_
std::map< int, float > crysAndAmplitudesMap_
void initAllEventHistos()
int adc() const
get the ADC sample (12 bits)
constexpr Detector det() const
get the detector field from this detid
TH2F * digiOccupancyEEPcoarse_