CMS 3D CMS Logo

CTPPSPixelRawToDigi.cc
Go to the documentation of this file.
1 /*
2  * adapting to CTPPS pixel detector March 2017 - F.Ferro
3  */
4 
6 
10 
12 
17 
19 
21 
22 using namespace std;
23 
25  : config_(conf)
26 
27 {
28  FEDRawDataCollection_ = consumes<FEDRawDataCollection>(config_.getParameter<edm::InputTag>("inputLabel"));
29  CTPPSPixelDAQMapping_ = esConsumes<CTPPSPixelDAQMapping, CTPPSPixelDAQMappingRcd>();
30 
31  produces<edm::DetSetVector<CTPPSPixelDigi>>();
32 
33  includeErrors_ = config_.getParameter<bool>("includeErrors");
34  mappingLabel_ = config_.getParameter<std::string>("mappingLabel");
35 
36  if (includeErrors_) {
37  produces<edm::DetSetVector<CTPPSPixelDataError>>();
38  }
39 }
40 
42  edm::LogInfo("CTPPSPixelRawToDigi") << " CTPPSPixelRawToDigi destructor!";
43 }
44 
47  desc.add<bool>("includeErrors", true);
48  desc.add<edm::InputTag>("inputLabel", edm::InputTag("rawDataCollector"));
49  desc.add<std::string>("mappingLabel", "RPix");
50  descriptions.add("ctppsPixelDigis", desc);
51 }
52 
55  ev.getByToken(FEDRawDataCollection_, buffers);
56 
58 
59  bool data_exist = false;
61  const FEDRawData& tempRawData = buffers->FEDData(fed);
62  if (tempRawData.size() != 0) {
63  data_exist = true;
64  break;
65  }
66  }
68  auto collection = std::make_unique<edm::DetSetVector<CTPPSPixelDigi>>();
69 
70  auto errorcollection = std::make_unique<edm::DetSetVector<CTPPSPixelDataError>>();
71 
72  if (data_exist) {
74 
75  fedIds_ = mapping->fedIds();
76 
77  CTPPSPixelDataFormatter formatter(mapping->ROCMapping);
78  formatter.setErrorStatus(includeErrors_);
79 
80  bool errorsInEvent = false;
82 
83  for (auto aFed = fedIds_.begin(); aFed != fedIds_.end(); ++aFed) {
84  int fedId = *aFed;
85 
86  edm::LogInfo("CTPPSPixelRawToDigi") << " PRODUCE DIGI FOR FED: " << dec << fedId << endl;
87 
90  const FEDRawData& fedRawData = buffers->FEDData(fedId);
91 
92  formatter.interpretRawData(errorsInEvent, fedId, fedRawData, *collection, errors);
93 
94  if (includeErrors_) {
95  for (auto const& is : errors) {
96  uint32_t errordetid = is.first;
98  if (errordetid == RPixErrorChecker::dummyDetId) {
99  nodeterrors.insert(nodeterrors.end(), errors[errordetid].begin(), errors[errordetid].end());
100  } else {
101  edm::DetSet<CTPPSPixelDataError>& errorDetSet = errorcollection->find_or_insert(errordetid);
102  errorDetSet.data.insert(errorDetSet.data.end(), is.second.begin(), is.second.end());
103  }
104  }
105  }
106  }
107 
108  if (includeErrors_) {
109  errorcollection->find_or_insert(RPixErrorChecker::dummyDetId).data = nodeterrors;
110  }
111  if (errorsInEvent)
112  LogDebug("CTPPSPixelRawToDigi") << "Error words were stored in this event";
113  }
115  ev.put(std::move(collection));
116 
117  if (includeErrors_) {
118  ev.put(std::move(errorcollection));
119  }
120 }
121 
CTPPSPixelRawToDigi::FEDRawDataCollection_
edm::EDGetTokenT< FEDRawDataCollection > FEDRawDataCollection_
Definition: CTPPSPixelRawToDigi.h:36
FEDNumbering.h
CTPPSPixelRawToDigi::config_
edm::ParameterSet config_
Definition: CTPPSPixelRawToDigi.h:34
Handle.h
CTPPSPixelRawToDigi::mappingLabel_
std::string mappingLabel_
Definition: CTPPSPixelRawToDigi.h:44
MessageLogger.h
RPixErrorChecker::dummyDetId
static constexpr Word32 dummyDetId
Definition: RPixErrorChecker.h:39
ESHandle.h
edm::DetSet
Definition: DetSet.h:23
CTPPSPixelDataFormatter::setErrorStatus
void setErrorStatus(bool theErrorStatus)
Definition: CTPPSPixelDataFormatter.cc:58
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
CTPPSPixelDataFormatter.h
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
FEDRawData.h
edm::Handle< FEDRawDataCollection >
FEDRawData
Definition: FEDRawData.h:19
CTPPSPixelDataFormatter::Errors
std::map< uint32_t, DetErrors > Errors
Definition: CTPPSPixelDataFormatter.h:61
CTPPSPixelRawToDigi::CTPPSPixelDAQMapping_
edm::ESGetToken< CTPPSPixelDAQMapping, CTPPSPixelDAQMappingRcd > CTPPSPixelDAQMapping_
Definition: CTPPSPixelRawToDigi.h:38
l1t_dqm_sourceclient-live_cfg.fedRawData
fedRawData
Definition: l1t_dqm_sourceclient-live_cfg.py:188
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
errors
Definition: errors.py:1
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
edm::ESHandle
Definition: DTSurvey.h:22
CTPPSPixelRawToDigi::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: CTPPSPixelRawToDigi.cc:45
CTPPSPixelRawToDigi::CTPPSPixelRawToDigi
CTPPSPixelRawToDigi(const edm::ParameterSet &)
Definition: CTPPSPixelRawToDigi.cc:24
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CTPPSPixelRawToDigi::fedIds_
std::set< unsigned int > fedIds_
Definition: CTPPSPixelRawToDigi.h:40
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
CTPPSPixelRawToDigi::includeErrors_
bool includeErrors_
Definition: CTPPSPixelRawToDigi.h:46
universalConfigTemplate.collection
collection
Definition: universalConfigTemplate.py:81
FEDRawDataCollection.h
CTPPSPixelRawToDigi.h
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
edm::EventSetup
Definition: EventSetup.h:58
DetSetVector.h
l1tstage2_dqm_sourceclient-live_cfg.fedId
fedId
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:88
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
CTPPSPixelDigi.h
FEDNumbering::MAXCTPPSPixelsFEDID
Definition: FEDNumbering.h:122
CTPPSPixelDataFormatter
Definition: CTPPSPixelDataFormatter.h:53
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
CTPPSPixelRawToDigi::produce
void produce(edm::Event &, const edm::EventSetup &) override
get data, convert to digis attach againe to Event
Definition: CTPPSPixelRawToDigi.cc:53
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
CTPPSPixelRawToDigi::~CTPPSPixelRawToDigi
~CTPPSPixelRawToDigi() override
Definition: CTPPSPixelRawToDigi.cc:41
edm::DetSet::data
collection_type data
Definition: DetSet.h:80
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
ConsumesCollector.h
CTPPSPixelDataFormatter::DetErrors
std::vector< CTPPSPixelDataError > DetErrors
Definition: CTPPSPixelDataFormatter.h:60
edm::Event
Definition: Event.h:73
FEDNumbering::MINCTPPSPixelsFEDID
Definition: FEDNumbering.h:121
CTPPSPixelDataFormatter::interpretRawData
void interpretRawData(bool &errorsInEvent, int fedId, const FEDRawData &data, Collection &digis, Errors &errors)
Definition: CTPPSPixelDataFormatter.cc:63
taus_updatedMVAIds_cff.mapping
mapping
Definition: taus_updatedMVAIds_cff.py:29
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
CTPPSPixelRawToDigi
Definition: CTPPSPixelRawToDigi.h:22
debug_messages_cfi.errors
errors
Definition: debug_messages_cfi.py:54