CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/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            const CSCALCTDigiCollection & alctDigis);
00050   // may require CLCTs to read out comparators.  Doesn't add CLCTs.
00051   void add(const CSCComparatorDigiCollection & comparatorDigis,
00052            const CSCCLCTDigiCollection & clctDigis);
00053   void add(const CSCALCTDigiCollection & alctDigis);
00054   void add(const CSCCLCTDigiCollection & clctDigis);
00055   void add(const CSCCorrelatedLCTDigiCollection & corrLCTDigis);
00057   CSCEventData & findEventData(const CSCDetId & cscDetId);
00058 
00059   std::map<CSCDetId, CSCEventData> theChamberDataMap;
00060   const CSCChamberMap* theElectronicsMap;
00061   int alctWindowMin_;
00062   int alctWindowMax_;
00063   int clctWindowMin_;
00064   int clctWindowMax_;
00065   int preTriggerWindowMin_;
00066   int preTriggerWindowMax_;
00067 
00068 };
00069 
00070 
00071 
00072 
00073 #endif