Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:07:19

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 }  // namespace ecaldqm
0087 
0088 #endif