00001 #ifndef L1RCTLutWriter_h 00002 #define L1RCTLutWriter_h 00003 00004 // -*- C++ -*- 00005 // 00006 // Package: L1RCTLutWriter 00007 // Class: L1RCTLutWriter 00008 // 00016 // 00017 // Original Author: jleonard 00018 // Created: Fri Apr 11 16:27:07 CEST 2008 00019 // $Id: L1RCTLutWriter.h,v 1.5 2010/08/07 14:55:58 wmtan Exp $ 00020 // 00021 // 00022 00023 00024 // system include files 00025 #include <memory> 00026 00027 #include <iostream> 00028 #include <fstream> 00029 00030 // user include files 00031 #include "FWCore/Framework/interface/Frameworkfwd.h" 00032 #include "FWCore/Framework/interface/EDAnalyzer.h" 00033 00034 #include "FWCore/Framework/interface/Event.h" 00035 #include "FWCore/Framework/interface/MakerMacros.h" 00036 00037 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00038 #include "FWCore/Framework/interface/ESHandle.h" // why doesn't mkedanlzr 00039 #include "FWCore/Framework/interface/EventSetup.h" // add these?? 00040 00041 class L1RCTLookupTables; 00042 class L1RCTParameters; 00043 //class L1RCTChannelMask; 00044 00045 // 00046 // class declaration 00047 // 00048 00049 class L1RCTLutWriter : public edm::EDAnalyzer { 00050 public: 00051 explicit L1RCTLutWriter(const edm::ParameterSet&); 00052 ~L1RCTLutWriter(); 00053 00054 00055 private: 00056 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00057 virtual void endJob() ; 00058 void writeRcLutFile(unsigned short card); 00059 void writeEicLutFile(unsigned short card); 00060 void writeJscLutFile(); 00061 void writeThresholdsFile(unsigned int eicThreshold, 00062 unsigned int jscThresholdBarrel, 00063 unsigned int jscThresholdEndcap); 00064 00065 // ----------member data --------------------------- 00066 00067 L1RCTLookupTables* lookupTable_; 00068 const L1RCTParameters* rctParameters_; 00069 //const L1RCTChannelMask* channelMask_; 00070 std::ofstream lutFile_; 00071 std::string keyName_; 00072 bool useDebugTpgScales_; 00073 00074 }; 00075 #endif