CMS 3D CMS Logo

SiStripEventSummary.cc
Go to the documentation of this file.
1 
5 #include <iostream>
6 #include <iomanip>
7 
8 using namespace sistrip;
9 
10 // -----------------------------------------------------------------------------
11 //
13  : valid_(true),
14  triggerFed_(0),
15  runType_(sistrip::UNDEFINED_RUN_TYPE),
16  event_(0),
17  bx_(0),
18  spillNumber_(0),
19  nDataSenders_(0),
20  fedReadoutMode_(sistrip::UNDEFINED_FED_READOUT_MODE),
21  apvReadoutMode_(sistrip::UNDEFINED_APV_READOUT_MODE),
22  apveAddress_(0),
23  nApvsInSync_(0),
24  nApvsOutOfSync_(0),
25  nApvsErrors_(0),
26  params_(5, 0) {
27  ;
28 }
29 
30 // -----------------------------------------------------------------------------
31 //
32 void SiStripEventSummary::commissioningInfo(const uint32_t* const buffer, const uint32_t& event) {
33  // Set RunType
34  uint16_t run = static_cast<uint16_t>(buffer[10] & 0xFFFF);
36 
37  // Set spill number
38  spillNumber_ = buffer[0];
39 
40  // Set number of DataSenders
41  nDataSenders_ = buffer[20];
42 
43  // Set FED readout mode
44  if (buffer[15] == 0) {
46  } else if (buffer[15] == 1) {
48  } else if (buffer[15] == 2) {
50  } else if (buffer[15] == 3) {
52  } else if (buffer[15] == 4) {
54  } else {
56  }
57 
58  // Set hardware parameters
62  params_[0] = buffer[11]; // latency
63  params_[1] = buffer[12]; // cal_chan
64  params_[2] = buffer[13]; // cal_sel
65  params_[3] = buffer[15]; // isha
66  params_[4] = buffer[16]; // vfs
67 
68  } else if (runType_ == sistrip::OPTO_SCAN) {
69  params_[0] = buffer[11]; // opto gain
70  params_[1] = buffer[12]; // opto bias
71 
73  params_[0] = buffer[11]; // pll coarse delay
74  params_[1] = buffer[12]; // pll fine delay
75  params_[2] = buffer[13]; // ttcrx delay
76  } else if (runType_ == sistrip::FINE_DELAY || //@@ layer
78  params_[0] = buffer[11]; // pll coarse delay
79  params_[1] = buffer[12]; // pll fine delay
80  params_[2] = buffer[13]; // ttcrx delay
81  params_[3] = buffer[14]; // layer (private format: DDSSLLLL, det, side, layer)
82 
83  } else if (runType_ == sistrip::FAST_CABLING) {
84  params_[0] = buffer[11]; // bin number
85  params_[1] = buffer[12]; // fec instance
86  params_[2] = buffer[13]; // fec ip
87  params_[3] = buffer[14]; // dcu hard id
88 
91  uint16_t ii = 0;
92  bool found = false;
93  while (!found && ii < 20) {
94  uint32_t dcu = buffer[21 + 3 * ii];
95  uint32_t key = buffer[21 + 3 * ii + 1];
96  uint32_t evt = buffer[21 + 3 * ii + 2];
97  if (evt == event) {
98  params_[0] = key; // device id
99  params_[1] = 0; // process id
100  params_[2] = 0; // process ip
101  params_[3] = dcu; // dcu hard id
102  found = true;
103  }
104  ii++;
105  }
106  if (!found) {
107  if (edm::isDebugEnabled()) {
108  std::stringstream ss;
109  ss << "[SiStripEventSummary::" << __func__ << "]"
110  << " Did not find DeviceId/DCUid for event " << event << "!";
111  edm::LogWarning(mlDigis_) << ss.str();
112  }
113  params_[0] = 0;
114  params_[1] = 0;
115  params_[2] = 0;
116  params_[3] = 0;
117  } else {
118  if (edm::isDebugEnabled()) {
119  std::stringstream ss;
120  ss << "[SiStripEventSummary::" << __func__ << "]"
121  << " Found DeviceId/DCUid for event " << event << ": 0x" << std::hex << std::setw(8) << std::setfill('0')
122  << params_[0] << std::dec << "/0x" << std::hex << std::setw(8) << std::setfill('0') << params_[3]
123  << std::dec;
124  LogTrace(mlDigis_) << ss.str();
125  }
126  }
127 
128  } else {
129  params_[0] = buffer[11]; // device id
130  params_[1] = buffer[12]; // process id
131  params_[2] = buffer[13]; // process ip
132  params_[3] = buffer[14]; // dcu hard id
133  }
134 
135  } else if (runType_ == sistrip::VPSP_SCAN) {
136  params_[0] = buffer[11]; // vpsp value
137  params_[1] = buffer[12]; // ccu channel
138 
139  } else if (runType_ == sistrip::DAQ_SCOPE_MODE) {
140  // nothing interesting!
141 
143  //@@ do anything?...
144 
145  } else {
146  if (edm::isDebugEnabled()) {
147  edm::LogWarning(mlDigis_) << "[SiStripEventSummary::" << __func__ << "]"
148  << " Unexpected commissioning task: " << runType_;
149  }
150  }
151 }
152 
153 // -----------------------------------------------------------------------------
154 //
155 
156 // -----------------------------------------------------------------------------
157 //
158 void SiStripEventSummary::commissioningInfo(const uint32_t& daq1, const uint32_t& daq2) {
159  // Extract if commissioning info are valid or not
160  uint16_t temp = static_cast<uint16_t>((daq1 >> 8) & 0x3);
161  if (temp == uint16_t(1)) {
162  valid_ = true;
163  } else if (temp == uint16_t(2)) {
164  valid_ = false;
165  } else if (temp == uint16_t(3) && daq1 == sistrip::invalid32_) {
166  if (edm::isDebugEnabled()) {
167  edm::LogWarning(mlDigis_) << "[SiStripEventSummary::" << __func__ << "]"
168  << " DAQ register contents set to invalid: 0x" << std::hex << std::setw(8)
169  << std::setfill('0') << daq1 << std::dec;
170  }
171  valid_ = false;
172  } else {
173  if (edm::isDebugEnabled()) {
174  edm::LogWarning(mlDigis_) << "[SiStripEventSummary::" << __func__ << "]"
175  << " Unexpected bit pattern set in DAQ1: 0x" << std::hex << std::setw(8)
176  << std::setfill('0') << daq1 << std::dec;
177  }
178  valid_ = false;
179  }
180 
181  // Set RunType
182  uint16_t run = static_cast<uint16_t>(daq1 & 0xFF);
184 
185  // Set hardware parameters
186  if (runType_ == sistrip::PHYSICS) {
187  } else if (runType_ == sistrip::PHYSICS_ZS) {
188  } else if (runType_ == sistrip::PEDESTALS) {
189  } else if (runType_ == sistrip::DAQ_SCOPE_MODE) {
191  params_[0] = (daq2 >> 8) & 0xFF; // latency
192  params_[1] = (daq2 >> 4) & 0x0F; // cal_chan
193  params_[2] = (daq2 >> 0) & 0x0F; // cal_sel
195  params_[0] = (daq2 >> 8) & 0xFF; // latency
196  params_[1] = (daq2 >> 4) & 0x0F; // cal_chan
197  params_[2] = (daq2 >> 0) & 0x0F; // cal_sel
198  params_[3] = (daq2 >> 16) & 0xFF; // isha
199  params_[4] = (daq2 >> 24); // vfs
200  } else if (runType_ == sistrip::OPTO_SCAN) {
201  params_[0] = (daq2 >> 8) & 0xFF; // opto gain
202  params_[1] = (daq2 >> 0) & 0xFF; // opto bias
203  } else if (runType_ == sistrip::APV_TIMING) {
204  params_[1] = (daq2 >> 0) & 0xFF; // pll fine delay
205  } else if (runType_ == sistrip::APV_LATENCY) {
206  params_[0] = (daq2 >> 0) & 0xFF; // latency
207  } else if (runType_ == sistrip::FINE_DELAY_PLL) {
208  } else if (runType_ == sistrip::FINE_DELAY_TTC) {
209  } else if (runType_ == sistrip::FINE_DELAY) { //@@ layer
210  params_[2] = (daq2 >> 0) & 0xFFFF; // ttcrx delay
211  params_[0] = params_[2] / 25; // pll coarse delay
212  params_[1] = uint32_t((params_[2] % 25) * 24. / 25.); // pll fine delay
213  params_[3] = (daq2 >> 0) & 0xFFFF0000; // layer (private format: DDSSLLLL (det, side, layer)
214  } else if (runType_ == sistrip::FED_TIMING) {
215  params_[1] = (daq2 >> 0) & 0xFF; // pll fine delay
216  } else if (runType_ == sistrip::VPSP_SCAN) {
217  params_[0] = (daq2 >> 8) & 0xFF; // vpsp value
218  params_[1] = (daq2 >> 0) & 0xFF; // ccu channel
219  } else if (runType_ == sistrip::FED_CABLING) {
220  } else if (runType_ == sistrip::QUITE_FAST_CABLING) {
221  } else if (runType_ == sistrip::FAST_CABLING) {
222  params_[0] = (daq2 >> 0) & 0xFF; // key
223  } else {
224  if (edm::isDebugEnabled()) {
225  edm::LogWarning(mlDigis_) << "[SiStripEventSummary::" << __func__ << "]"
226  << " Unexpected commissioning task: " << runType_;
227  }
228  }
229 }
230 
231 // -----------------------------------------------------------------------------
232 //
234  if (mode == 1) {
236  } else if (mode == 2) {
238  } else if (mode == 6) {
240  } else if (mode == 10) {
242  } else if (mode == 12) {
244  } else {
246  }
247 }
248 
249 // -----------------------------------------------------------------------------
250 //
251 std::ostream& operator<<(std::ostream& os, const SiStripEventSummary& input) {
252  return os << "[SiStripEventSummary::" << __func__ << "]" << std::endl
253  << " isSet : " << std::boolalpha << input.isSet() << std::noboolalpha << std::endl
254  << " Trigger FED id : " << input.triggerFed() << std::endl
255  << " isValid : " << std::boolalpha << input.valid() << std::noboolalpha << std::endl
256  << " Run type : " << SiStripEnumsAndStrings::runType(input.runType()) << std::endl
257  << " Event number : " << input.event() << std::endl
258  << " Bunch crossing : " << input.bx() << std::endl
259  << " FED readout mode : " << SiStripEnumsAndStrings::fedReadoutMode(input.fedReadoutMode()) << std::endl
260  << " APV readout mode : " << SiStripEnumsAndStrings::apvReadoutMode(input.apvReadoutMode()) << std::endl
261  << " Commissioning params : " << input.params()[0] << ", " << input.params()[1] << ", " << input.params()[2]
262  << ", " << input.params()[3] << std::endl;
263 }
sistrip::CALIBRATION_SCAN
Definition: ConstantsForRunType.h:87
sistrip::PHYSICS_ZS
Definition: ConstantsForRunType.h:86
SiStripEnumsAndStrings::runType
static std::string runType(const sistrip::RunType &)
Definition: SiStripEnumsAndStrings.cc:39
SiStripEnumsAndStrings::apvReadoutMode
static std::string apvReadoutMode(const sistrip::ApvReadoutMode &)
Definition: SiStripEnumsAndStrings.cc:413
SiStripEventSummary::commissioningInfo
void commissioningInfo(const uint32_t *const buffer, const uint32_t &event)
Definition: SiStripEventSummary.cc:32
sistrip::DAQ_SCOPE_MODE
Definition: ConstantsForRunType.h:83
sistrip::CALIBRATION
Definition: ConstantsForRunType.h:73
input
static const std::string input
Definition: EdmProvDump.cc:48
SiStripEventSummary::params_
std::vector< uint32_t > params_
Definition: SiStripEventSummary.h:209
MessageLogger.h
sistrip::VPSP_SCAN
Definition: ConstantsForRunType.h:82
sistrip::FAST_CABLING
Definition: ConstantsForRunType.h:89
sistrip::APV_TIMING
Definition: ConstantsForRunType.h:75
sistrip::invalid32_
static const uint32_t invalid32_
Definition: Constants.h:15
ALCARECOPromptCalibProdSiPixelAli0T_cff.mode
mode
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:96
sistrip::OPTO_SCAN
Definition: ConstantsForRunType.h:74
sistrip::UNDEFINED_APV_READOUT_MODE
Definition: ConstantsForHardwareSystems.h:123
sistrip::UNKNOWN_FED_READOUT_MODE
Definition: ConstantsForHardwareSystems.h:130
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
edmScanValgrind.buffer
buffer
Definition: edmScanValgrind.py:171
sistrip::mlDigis_
static const char mlDigis_[]
Definition: ConstantsForLogger.h:17
sistrip::valid_
static const uint16_t valid_
Definition: Constants.h:17
sistrip::FINE_DELAY
Definition: ConstantsForRunType.h:85
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
SiStripEnumsAndStrings::fedReadoutMode
static std::string fedReadoutMode(const sistrip::FedReadoutMode &)
Definition: SiStripEnumsAndStrings.cc:447
sistrip::FED_CABLING
Definition: ConstantsForRunType.h:81
SiStripEventSummary::SiStripEventSummary
SiStripEventSummary()
Definition: SiStripEventSummary.cc:12
sistrip::FINE_DELAY_TTC
Definition: ConstantsForRunType.h:78
SiStripEventSummary::fedReadoutMode
const sistrip::FedReadoutMode & fedReadoutMode() const
Definition: SiStripEventSummary.h:222
SiStripEventSummary::valid_
bool valid_
Definition: SiStripEventSummary.h:166
SiStripEventSummary::spillNumber_
uint32_t spillNumber_
Definition: SiStripEventSummary.h:183
SiStripEventSummary.h
funct::true
true
Definition: Factorize.h:173
SiStripEventSummary::runType_
sistrip::RunType runType_
Definition: SiStripEventSummary.h:174
sistrip::FED_SCOPE_MODE
Definition: ConstantsForHardwareSystems.h:132
sistrip::CALIBRATION_DECO
Definition: ConstantsForRunType.h:93
sistrip::FED_ZERO_SUPPR_LITE
Definition: ConstantsForHardwareSystems.h:136
sistrip::FED_ZERO_SUPPR
Definition: ConstantsForHardwareSystems.h:135
sistrip::QUITE_FAST_CABLING
Definition: ConstantsForRunType.h:84
sistrip::PEDESTALS
Definition: ConstantsForRunType.h:72
event_
void event_()
sistrip::FED_TIMING
Definition: ConstantsForRunType.h:80
SiStripEventSummary::fedReadoutMode_
sistrip::FedReadoutMode fedReadoutMode_
Definition: SiStripEventSummary.h:191
SiStripEventSummary::nDataSenders_
uint32_t nDataSenders_
Definition: SiStripEventSummary.h:186
sistrip::FED_VIRGIN_RAW
Definition: ConstantsForHardwareSystems.h:133
sistrip::FINE_DELAY_PLL
Definition: ConstantsForRunType.h:77
sistrip::CALIBRATION_SCAN_DECO
Definition: ConstantsForRunType.h:88
writedatasetfile.run
run
Definition: writedatasetfile.py:27
sistrip::PHYSICS
Definition: ConstantsForRunType.h:71
sistrip::APV_LATENCY
Definition: ConstantsForRunType.h:76
SiStripEnumsAndStrings.h
sistrip::UNDEFINED_RUN_TYPE
Definition: ConstantsForRunType.h:95
sistrip::UNDEFINED_FED_READOUT_MODE
Definition: ConstantsForHardwareSystems.h:131
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
edm::isDebugEnabled
bool isDebugEnabled()
Definition: MessageLogger.cc:12
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
sistrip
sistrip classes
Definition: SiStripQualityHelpers.h:14
SiStripEventSummary
Definition: SiStripEventSummary.h:22
operator<<
std::ostream & operator<<(std::ostream &os, const SiStripEventSummary &input)
Definition: SiStripEventSummary.cc:251
sistrip::FED_PROC_RAW
Definition: ConstantsForHardwareSystems.h:134
event
Definition: event.py:1
crabWrapper.key
key
Definition: crabWrapper.py:19
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
cuy.ii
ii
Definition: cuy.py:590