CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/DQM/EcalBarrelMonitorClient/interface/LaserClient.h

Go to the documentation of this file.
00001 #ifndef LaserClient_H
00002 #define LaserClient_H
00003 
00004 #include "DQM/EcalCommon/interface/DQWorkerClient.h"
00005 
00006 #include "DQM/EcalBarrelMonitorTasks/interface/LaserTask.h"
00007 
00008 namespace ecaldqm {
00009 
00010   class LaserClient : public DQWorkerClient {
00011   public:
00012     LaserClient(const edm::ParameterSet &, const edm::ParameterSet &);
00013     ~LaserClient() {}
00014 
00015     void bookMEs();
00016 
00017     void initialize();
00018 
00019     void beginRun(const edm::Run&, const edm::EventSetup&);
00020 
00021     void producePlots();
00022 
00023     enum Constants {
00024       nWL = LaserTask::nWL,
00025       nPNGain = LaserTask::nPNGain
00026     };
00027 
00028     enum MESets {
00029       kQuality,
00030       kAmplitudeMean = kQuality + nWL,
00031       kAmplitudeRMS = kAmplitudeMean + nWL,
00032       kTimingMean = kAmplitudeRMS + nWL,
00033       kTimingRMS = kTimingMean + nWL,
00034       kPNAmplitudeMean = kTimingRMS + nWL,
00035       kPNAmplitudeRMS = kPNAmplitudeMean + nWL * nPNGain,
00036       kQualitySummary = kPNAmplitudeRMS + nWL * nPNGain,
00037       kPNQualitySummary = kQualitySummary + nWL,
00038       nMESets = kPNQualitySummary + nWL
00039     };
00040 
00041     static void setMEData(std::vector<MEData>&);
00042 
00043     enum Sources {
00044       sAmplitude,
00045       sTiming = sAmplitude + nWL,
00046       sPNAmplitude = sTiming + nWL,
00047       nSources = sPNAmplitude + nWL * nPNGain
00048     };
00049 
00050   protected:
00051     std::vector<int> laserWavelengths_;
00052     std::vector<int> MGPAGainsPN_;
00053 
00054     int minChannelEntries_;
00055     std::vector<double> expectedAmplitude_;
00056     std::vector<double> amplitudeThreshold_;
00057     std::vector<double> amplitudeRMSThreshold_;
00058     std::vector<double> expectedTiming_;
00059     std::vector<double> timingThreshold_;
00060     std::vector<double> timingRMSThreshold_;
00061     std::vector<double> expectedPNAmplitude_;
00062     std::vector<double> pnAmplitudeThreshold_;
00063     std::vector<double> pnAmplitudeRMSThreshold_;
00064 
00065     float towerThreshold_;
00066 
00067     std::map<std::pair<unsigned, int>, float> ampCorrections_;
00068   };
00069 
00070 }
00071 
00072 #endif