CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/EventFilter/CSCRawToDigi/src/CSCDigiToRaw.h

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   // specialized because it reverses strip direction
00046   void add(const CSCStripDigiCollection& stripDigis, 
00047            const CSCCLCTPreTriggerCollection& preTriggers);
00048   void add(const CSCWireDigiCollection& wireDigis);
00049   // may require CLCTs to read out comparators.  Doesn't add CLCTs.
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   // used to zero-suppress strips
00065   bool requirePreTrigger_;
00066   bool requireCLCTForComparators_;
00067 };
00068 
00069 
00070 
00071 
00072 #endif