Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:22:04

0001 #ifndef HcalTBObjectUnpacker_h
0002 #define HcalTBObjectUnpacker_h
0003 
0004 /** \class HcalTBObjectUnpacker
0005  *
0006  * HcalTBObjectUnpacker is the EDProducer subclass which runs 
0007  * the Hcal Test Beam Object Unpack algorithm.
0008  *
0009  * \author Phil Dudero
0010       
0011  *
0012  * \version   1st Version June 10, 2005  
0013 
0014  *
0015  ************************************************************/
0016 
0017 #include "FWCore/Framework/interface/stream/EDProducer.h"
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "DataFormats/Common/interface/Handle.h"
0020 
0021 #include "FWCore/Framework/interface/EventSetup.h"
0022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0023 #include "FWCore/Utilities/interface/InputTag.h"
0024 
0025 #include "RecoTBCalo/HcalTBObjectUnpacker/interface/HcalTBTriggerDataUnpacker.h"
0026 #include "RecoTBCalo/HcalTBObjectUnpacker/interface/HcalTBSlowDataUnpacker.h"
0027 #include "RecoTBCalo/HcalTBObjectUnpacker/interface/HcalTBTDCUnpacker.h"
0028 #include "RecoTBCalo/HcalTBObjectUnpacker/interface/HcalTBQADCUnpacker.h"
0029 #include "RecoTBCalo/HcalTBObjectUnpacker/interface/HcalTBSourcePositionDataUnpacker.h"
0030 
0031 #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h"
0032 
0033 class HcalTBObjectUnpacker : public edm::stream::EDProducer<> {
0034 public:
0035   explicit HcalTBObjectUnpacker(const edm::ParameterSet& ps);
0036 
0037   void produce(edm::Event& e, const edm::EventSetup& c) override;
0038 
0039 private:
0040   int triggerFed_;
0041   int sdFed_;
0042   int spdFed_;
0043   int tdcFed_;
0044   int qadcFed_;
0045   std::string calibFile_;
0046   hcaltb::HcalTBTriggerDataUnpacker tdUnpacker_;
0047   hcaltb::HcalTBSlowDataUnpacker sdUnpacker_;
0048   hcaltb::HcalTBTDCUnpacker tdcUnpacker_;
0049   hcaltb::HcalTBQADCUnpacker qadcUnpacker_;
0050   hcaltb::HcalTBSourcePositionDataUnpacker spdUnpacker_;
0051   bool doRunData_, doTriggerData_, doEventPosition_, doTiming_, doSourcePos_, doBeamADC_;
0052 
0053   std::vector<std::vector<std::string> > calibLines_;
0054   edm::EDGetTokenT<FEDRawDataCollection> tok_raw_;
0055 
0056   void parseCalib();
0057 };
0058 
0059 #endif