Go to the documentation of this file.00001 #ifndef EventFilter_CSCDigiToRaw_h
00002 #define EventFilter_CSCDigiToRaw_h
00003
00011 #include "FWCore/Framework/interface/Frameworkfwd.h"
00012 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
00013 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
00014 #include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h"
00015 #include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h"
00016 #include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h"
00017 #include "DataFormats/CSCDigi/interface/CSCCLCTPreTriggerCollection.h"
00018 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
00019 #include "EventFilter/CSCRawToDigi/interface/CSCEventData.h"
00020
00021 class FEDRawDataCollection;
00022 class CSCReadoutMappingFromFile;
00023 class CSCChamberMap;
00024
00025 class CSCDigiToRaw {
00026 public:
00028 explicit CSCDigiToRaw(const edm::ParameterSet & pset);
00029
00031 void createFedBuffers(const CSCStripDigiCollection& stripDigis,
00032 const CSCWireDigiCollection& wireDigis,
00033 const CSCComparatorDigiCollection& comparatorDigis,
00034 const CSCALCTDigiCollection& alctDigis,
00035 const CSCCLCTDigiCollection& clctDigis,
00036 const CSCCLCTPreTriggerCollection& preTriggers,
00037 const CSCCorrelatedLCTDigiCollection& correlatedLCTDigis,
00038 FEDRawDataCollection& fed_buffers,
00039 const CSCChamberMap* theMapping,
00040 edm::Event & e);
00041
00042 private:
00043 void beginEvent(const CSCChamberMap* electronicsMap);
00044
00045
00046 void add(const CSCStripDigiCollection& stripDigis,
00047 const CSCCLCTPreTriggerCollection& preTriggers);
00048 void add(const CSCWireDigiCollection& wireDigis);
00049
00050 void add(const CSCComparatorDigiCollection & comparatorDigis,
00051 const CSCCLCTDigiCollection & clctDigis);
00052 void add(const CSCALCTDigiCollection & alctDigis);
00053 void add(const CSCCLCTDigiCollection & clctDigis);
00054 void add(const CSCCorrelatedLCTDigiCollection & corrLCTDigis);
00055
00057 CSCEventData & findEventData(const CSCDetId & cscDetId);
00058
00060 CSCDetId chamberID(const CSCDetId & cscDetId) const;
00061
00062 std::map<CSCDetId, CSCEventData> theChamberDataMap;
00063 const CSCChamberMap* theElectronicsMap;
00064
00065 bool requirePreTrigger_;
00066 bool requireCLCTForComparators_;
00067 };
00068
00069
00070
00071
00072 #endif