CMS 3D CMS Logo

SiStripSpyDigiConverter.h
Go to the documentation of this file.
1 #ifndef DQM_SiStripMonitorHardware_SiStripSpyDigiConverter_H
2 #define DQM_SiStripMonitorHardware_SiStripSpyDigiConverter_H
3 
4 #include <memory>
5 #include <vector>
6 
9 
11 #include <cstdint>
12 
13 // Forward define other classes
14 class SiStripFedCabling;
15 
16 namespace sistrip {
17 
26  public:
28 
29  //all methods are static so no instances are needed but allow anyway
32 
38  static std::unique_ptr<DSVRawDigis> extractPayloadDigis(const DSVRawDigis* inputScopeDigis,
39  std::vector<uint32_t>* pAPVAddresses,
40  const bool discardDigisWithAPVAddrErr,
42  const uint16_t expectedPos);
43 
44  /* \brief Reorder from readout order to physical order */
45  static std::unique_ptr<DSVRawDigis> reorderDigis(const DSVRawDigis* inputPayloadDigis);
46 
47  /* \brief Merge channel digis into modules. */
48  static std::unique_ptr<DSVRawDigis> mergeModuleChannels(const DSVRawDigis* inputPhysicalOrderChannelDigis,
49  const SiStripFedCabling& cabling);
50 
51  private:
53 
54  static void processFED(const uint16_t aPreviousFedId,
55  const bool discardDigisWithAPVAddrErr,
56  std::vector<uint32_t>* pAPVAddresses,
57  std::vector<DetSetRawDigis>& outputData,
58  std::vector<uint16_t>& aAddrVec,
59  std::vector<uint16_t>& aHeaderBitVec,
60  std::vector<uint16_t>& aTrailBitVec,
61  std::vector<DSVRawDigis::const_iterator>& aFedScopeDigis);
62 
63  }; // end of SpyDigiConverter class.
64 
65 } // namespace sistrip
66 
67 #endif // DQM_SiStripMonitorHardware_SiStripSpyDigiConverter_H
edm::DetSetVector< SiStripRawDigi >
sistrip::SpyDigiConverter::~SpyDigiConverter
~SpyDigiConverter()
Definition: SiStripSpyDigiConverter.h:31
SiStripRawDigi.h
sistrip::SpyUtilities::FrameQuality
Definition: SiStripSpyUtilities.h:37
sistrip::SpyDigiConverter::SpyDigiConverter
SpyDigiConverter()
Definition: SiStripSpyDigiConverter.h:30
sistrip::SpyDigiConverter::DSVRawDigis
edm::DetSetVector< SiStripRawDigi > DSVRawDigis
Definition: SiStripSpyDigiConverter.h:27
SiStripFedCabling
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses,...
Definition: SiStripFedCabling.h:25
sistrip::SpyDigiConverter::DetSetRawDigis
DSVRawDigis::detset DetSetRawDigis
Definition: SiStripSpyDigiConverter.h:52
SiStripSpyUtilities.h
sistrip::SpyDigiConverter::extractPayloadDigis
static std::unique_ptr< DSVRawDigis > extractPayloadDigis(const DSVRawDigis *inputScopeDigis, std::vector< uint32_t > *pAPVAddresses, const bool discardDigisWithAPVAddrErr, const sistrip::SpyUtilities::FrameQuality &aQuality, const uint16_t expectedPos)
Extract frames from the scope digis.
Definition: SiStripSpyDigiConverter.cc:25
edm::DetSetVector< SiStripRawDigi >::detset
DetSet< SiStripRawDigi > detset
Definition: DetSetVector.h:94
sistrip::SpyDigiConverter::reorderDigis
static std::unique_ptr< DSVRawDigis > reorderDigis(const DSVRawDigis *inputPayloadDigis)
Definition: SiStripSpyDigiConverter.cc:177
sistrip::SpyDigiConverter::mergeModuleChannels
static std::unique_ptr< DSVRawDigis > mergeModuleChannels(const DSVRawDigis *inputPhysicalOrderChannelDigis, const SiStripFedCabling &cabling)
Definition: SiStripSpyDigiConverter.cc:203
DetSetVector.h
sistrip::SpyDigiConverter::processFED
static void processFED(const uint16_t aPreviousFedId, const bool discardDigisWithAPVAddrErr, std::vector< uint32_t > *pAPVAddresses, std::vector< DetSetRawDigis > &outputData, std::vector< uint16_t > &aAddrVec, std::vector< uint16_t > &aHeaderBitVec, std::vector< uint16_t > &aTrailBitVec, std::vector< DSVRawDigis::const_iterator > &aFedScopeDigis)
Definition: SiStripSpyDigiConverter.cc:119
sistrip
sistrip classes
Definition: SiStripQualityHelpers.h:14
sistrip::SpyDigiConverter
Converts scope mode like digis into virgin raw like digis by: -extracting the frame payload,...
Definition: SiStripSpyDigiConverter.h:25