File indexing completed on 2023-03-17 10:54:32
0001 #ifndef LaserTask_H
0002 #define LaserTask_H
0003
0004 #include "DQWorkerTask.h"
0005
0006 #include "DQM/EcalCommon/interface/EcalDQMCommonUtils.h"
0007
0008 #include "DataFormats/EcalRawData/interface/EcalRawDataCollections.h"
0009 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0010 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0011
0012 namespace ecaldqm {
0013
0014 class LaserTask : public DQWorkerTask {
0015 public:
0016 LaserTask();
0017 ~LaserTask() override {}
0018
0019 void addDependencies(DependencySet&) override;
0020
0021 bool filterRunType(short const*) override;
0022
0023 void beginRun(edm::Run const&, edm::EventSetup const&) override;
0024 void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override;
0025 void beginEvent(edm::Event const&, edm::EventSetup const&, bool const&, bool&) override;
0026
0027 bool analyze(void const*, Collections) override;
0028
0029 void runOnRawData(EcalRawDataCollection const&);
0030 template <typename DigiCollection>
0031 void runOnDigis(DigiCollection const&);
0032 void runOnPnDigis(EcalPnDiodeDigiCollection const&);
0033 void runOnUncalibRecHits(EcalUncalibratedRecHitCollection const&);
0034
0035 enum Wavelength { kGreen, kBlue, kIRed, nWavelength };
0036
0037 private:
0038 void setParams(edm::ParameterSet const&) override;
0039
0040 std::map<int, unsigned> wlToME_;
0041
0042 bool enable_[nDCC];
0043 unsigned wavelength_[nDCC];
0044 unsigned rtHalf_[nDCC];
0045 std::map<uint32_t, float> pnAmp_;
0046
0047 int emptyLS_;
0048 int emptyLSLimit_;
0049 int maxPedestal_;
0050 };
0051
0052 inline bool LaserTask::analyze(void const* _p, Collections _collection) {
0053 switch (_collection) {
0054 case kEcalRawData:
0055 if (_p)
0056 runOnRawData(*static_cast<EcalRawDataCollection const*>(_p));
0057 return true;
0058 break;
0059 case kEBDigi:
0060 if (_p)
0061 runOnDigis(*static_cast<EBDigiCollection const*>(_p));
0062 return true;
0063 break;
0064 case kEEDigi:
0065 if (_p)
0066 runOnDigis(*static_cast<EEDigiCollection const*>(_p));
0067 return true;
0068 break;
0069 case kPnDiodeDigi:
0070 if (_p)
0071 runOnPnDigis(*static_cast<EcalPnDiodeDigiCollection const*>(_p));
0072 return true;
0073 break;
0074 case kEBLaserLedUncalibRecHit:
0075 case kEELaserLedUncalibRecHit:
0076 if (_p)
0077 runOnUncalibRecHits(*static_cast<EcalUncalibratedRecHitCollection const*>(_p));
0078 return true;
0079 break;
0080 default:
0081 break;
0082 }
0083
0084 return false;
0085 }
0086 }
0087
0088 #endif