File indexing completed on 2024-04-06 12:32:03
0001
0002
0003
0004
0005
0006 #include "EcalPreshowerNoiseDistrib.h"
0007
0008 EcalPreshowerNoiseDistrib::EcalPreshowerNoiseDistrib(const edm::ParameterSet& ps)
0009 : ESdigiCollectionToken_(consumes<ESDigiCollection>(ps.getParameter<edm::InputTag>("ESdigiCollection"))) {
0010
0011 verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
0012
0013
0014 meESDigiMultiplicity_ = nullptr;
0015 for (int ii = 0; ii < 3; ii++) {
0016 meESDigiADC_[ii] = nullptr;
0017 }
0018 }
0019
0020 void EcalPreshowerNoiseDistrib::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const&, edm::EventSetup const&) {
0021 Char_t histo[200];
0022
0023 sprintf(histo, "multiplicity");
0024 meESDigiMultiplicity_ = ibooker.book1D(histo, histo, 1000, 0., 137728);
0025
0026 for (int ii = 0; ii < 3; ii++) {
0027 sprintf(histo, "esRefHistos%02d", ii);
0028 meESDigiADC_[ii] = ibooker.book1D(histo, histo, 35, 983.5, 1018.5);
0029 }
0030
0031 for (int ii = 0; ii < 3; ii++) {
0032 sprintf(histo, "esRefHistosCorr%02d", ii);
0033 meESDigiCorr_[ii] = ibooker.book2D(histo, histo, 35, 983.5, 1018.5, 35, 983.5, 1018.5);
0034 }
0035
0036 meESDigi3D_ = ibooker.book3D("meESDigi3D_", "meESDigi3D_", 35, 983.5, 1018.5, 35, 983.5, 1018.5, 35, 983.5, 1018.5);
0037 }
0038
0039 void EcalPreshowerNoiseDistrib::analyze(const edm::Event& e, const edm::EventSetup& c) {
0040 edm::Handle<ESDigiCollection> EcalDigiES;
0041
0042 e.getByToken(ESdigiCollectionToken_, EcalDigiES);
0043
0044
0045 if (!EcalDigiES.isValid())
0046 return;
0047
0048
0049 const ESDigiCollection* preshowerDigi = EcalDigiES.product();
0050
0051 std::vector<double> esADCCounts;
0052 esADCCounts.reserve(ESDataFrame::MAXSAMPLES);
0053
0054 int nDigis = 0;
0055
0056 for (unsigned int digis = 0; digis < EcalDigiES->size(); ++digis) {
0057 nDigis++;
0058 ESDataFrame esdf = (*preshowerDigi)[digis];
0059 int nrSamples = esdf.size();
0060 for (int sample = 0; sample < nrSamples; ++sample) {
0061 ESSample mySample = esdf[sample];
0062 if (meESDigiADC_[sample]) {
0063 meESDigiADC_[sample]->Fill(mySample.adc());
0064 }
0065 }
0066
0067
0068 if (meESDigiCorr_[0]) {
0069 meESDigiCorr_[0]->Fill(esdf[0].adc(), esdf[1].adc());
0070 }
0071 if (meESDigiCorr_[1]) {
0072 meESDigiCorr_[1]->Fill(esdf[0].adc(), esdf[2].adc());
0073 }
0074 if (meESDigiCorr_[2]) {
0075 meESDigiCorr_[2]->Fill(esdf[1].adc(), esdf[2].adc());
0076 }
0077
0078
0079 if (meESDigi3D_)
0080 meESDigi3D_->Fill(esdf[0].adc(), esdf[1].adc(), esdf[2].adc());
0081 }
0082
0083 if (meESDigiMultiplicity_)
0084 meESDigiMultiplicity_->Fill(nDigis);
0085 }