25 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 26 <<
" Constructing object...";
30 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 31 <<
" Set FED zero suppression high/low threshold to " 36 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 41 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 47 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 50 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 57 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 58 <<
" Destructing object...";
64 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]";
68 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 69 <<
" NULL pointer to SiStripConfigDb interface!" 70 <<
" Aborting upload...";
80 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 81 <<
" Uploading FED information to DB...";
84 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 85 <<
" Completed database upload of " << feds.size()
86 <<
" FED descriptions!";
89 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 90 <<
" No FED values will be uploaded to DB...";
100 uint16_t updated_peds = 0;
101 uint16_t updated_ticks = 0;
102 SiStripConfigDb::FedDescriptionsV::const_iterator ifed;
103 for ( ifed = feds.begin(); ifed != feds.end(); ifed++ ) {
106 if (
find(
ids.begin(),
ids.end(), (*ifed)->getFedId() ) ==
ids.end() ) {
continue; }
137 if ( !iter->second->isValid() ) {
144 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 145 <<
" NULL pointer to analysis object!";
153 uint32_t pedshift = 127;
155 uint32_t pedmin = (uint32_t) anal->
pedsMin()[iapv];
156 pedshift = pedmin < pedshift ? pedmin : pedshift;
157 std::stringstream ss;
158 ss <<
"iapv: " << iapv <<
" pedsMin()[iapv]: " << anal->
pedsMin()[iapv] <<
" pedmin: " << pedmin <<
" pedshift: " << pedshift;
164 for ( uint16_t istr = 0; istr < anal->
peds()[iapv].size(); istr++ ) {
167 if ( anal->
peds()[iapv][istr] < 1. ) {
169 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 170 <<
" Skipping ZERO pedestal value (ie, NO UPLOAD TO DB!) for FedKey/Id/Ch: " 171 << hex << setw(8) << setfill(
'0') << fed_key.
key() <<
dec <<
"/" 172 << (*ifed)->getFedId() <<
"/" 174 <<
" and device with FEC/slot/ring/CCU/LLD " 175 << fec_key.fecCrate() <<
"/" 176 << fec_key.fecSlot() <<
"/" 177 << fec_key.fecRing() <<
"/" 178 << fec_key.ccuAddr() <<
"/" 179 << fec_key.ccuChan() <<
"/" 180 << fec_key.channel();
185 Fed9U::Fed9UAddress addr( ichan, iapv, istr );
186 Fed9U::Fed9UStripDescription
temp = (*ifed)->getFedStrips().getStrip( addr );
189 bool disableStrip =
false;
191 disableStrip = temp.getDisable();
195 if (
find( dead.begin(), dead.end(), istr ) != dead.end() ) disableStrip =
true;
197 if (
find( noisy.begin(), noisy.end(), istr ) != noisy.end() ) disableStrip =
true;
200 Fed9U::Fed9UStripDescription
data( static_cast<uint32_t>( anal->
peds()[iapv][istr]-pedshift ),
203 anal->
noise()[iapv][istr],
206 std::stringstream ss;
208 ss <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 209 <<
" Disabling strip in Fed9UStripDescription object..." << std::endl
210 <<
" for FED id/channel and APV/strip : " 211 << fed_key.
fedId() <<
"/" 215 <<
" and crate/FEC/ring/CCU/module : " 216 << fec_key.fecCrate() <<
"/" 217 << fec_key.fecSlot() <<
"/" 218 << fec_key.fecRing() <<
"/" 219 << fec_key.ccuAddr() <<
"/" 220 << fec_key.ccuChan() << std::endl
221 <<
" from ped/noise/high/low/disable : " 222 <<
static_cast<uint16_t
>( temp.getPedestal() ) <<
"/" 223 << static_cast<uint16_t>( temp.getHighThreshold() ) <<
"/" 224 << static_cast<uint16_t>( temp.getLowThreshold() ) <<
"/" 225 << static_cast<uint16_t>( temp.getNoise() ) <<
"/" 226 << static_cast<uint16_t>( temp.getDisable() ) << std::endl;
230 (*ifed)->getFedStrips().setStrip( addr,
data );
233 ss <<
" to ped/noise/high/low/disable : " 234 <<
static_cast<uint16_t
>(
data.getPedestal() ) <<
"/" 235 << static_cast<uint16_t>(
data.getHighThreshold() ) <<
"/" 236 << static_cast<uint16_t>(
data.getLowThreshold() ) <<
"/" 237 << static_cast<uint16_t>(
data.getNoise() ) <<
"/" 238 << static_cast<uint16_t>(
data.getDisable() ) << std::endl;
250 Fed9U::Fed9UAddress addr( ichan );
251 uint16_t old_threshold =
static_cast<uint16_t
>( (*ifed)->getFrameThreshold( addr ) );
256 uint16_t new_threshold =
static_cast<uint16_t
>( (*ifed)->getFrameThreshold( addr ) );
258 std::stringstream ss;
259 ss <<
"LLD channel : old frame threshold "<<old_threshold<<
" new frame threshold "<<new_threshold<<std::endl;
264 ss <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]";
266 ss <<
" Updating the frame-finding threshold" 267 <<
" from " << old_threshold
268 <<
" to " << new_threshold
269 <<
" using tick mark base/peak/height " 270 << anal->
base() <<
"/" 271 << anal->
peak() <<
"/" 274 ss <<
" Cannot update the frame-finding threshold" 275 <<
" from " << old_threshold
276 <<
" to a new value using invalid analysis ";
278 ss <<
" for crate/FEC/ring/CCU/module/LLD " 279 << fec_key.fecCrate() <<
"/" 280 << fec_key.fecSlot() <<
"/" 281 << fec_key.fecRing() <<
"/" 282 << fec_key.ccuAddr() <<
"/" 286 << fed_key.
fedId() <<
"/" 295 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 296 <<
" Unable to find pedestals/noise for FedKey/Id/Ch: " 297 << hex << setw(8) << setfill(
'0') << fed_key.
key() <<
dec <<
"/" 298 << (*ifed)->getFedId() <<
"/" 300 <<
" and device with FEC/slot/ring/CCU/LLD " 301 << fec_key.fecCrate() <<
"/" 302 << fec_key.fecSlot() <<
"/" 303 << fec_key.fecRing() <<
"/" 304 << fec_key.ccuAddr() <<
"/" 305 << fec_key.ccuChan() <<
"/" 306 << fec_key.channel();
313 <<
"[DaqScopeModeHistosUsingDb::" << __func__ <<
"]" 314 <<
" Updated FED parameters for pedestal/noise " 315 << updated_peds <<
" channels" 316 <<
" Updated FED parameters for frame finding thresholds " 317 << updated_ticks <<
" channels";
325 if ( !anal ) {
return; }
330 for ( uint16_t iapv = 0; iapv < 2; ++iapv ) {
333 PedestalsAnalysisDescription* peds_tmp;
334 peds_tmp =
new PedestalsAnalysisDescription(
366 typedef std::vector<std::string>
Strings;
368 Strings::const_iterator istr = errors.begin();
369 Strings::const_iterator jstr = errors.end();
370 for ( ; istr != jstr; ++istr ) { peds_tmp->addComments( *istr ); }
373 desc.push_back( peds_tmp );
376 TimingAnalysisDescription* timing_tmp;
377 timing_tmp =
new TimingAnalysisDescription(
403 istr = errors.begin();
405 for ( ; istr != jstr; ++istr ) { timing_tmp->addComments( *istr ); }
406 desc.push_back(timing_tmp);
const uint16_t & fecSlot() const
T getParameter(std::string const &) const
const VFloat & noiseMean() const
const uint16_t & fecCrate() const
const VVInt & dead() const
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
const uint32_t & fedKey() const
Analyses::iterator Analysis
Analyses & data(bool getMaskedData=false)
FedChannelConnection fedConnection(uint16_t fed_id, uint16_t fed_ch) const
bool allowSelectiveUpload_
A container class for generic run and event-related info, information required by the commissioning a...
const uint16_t & fedCh() const
const edm::ParameterSet & pset() const
bool deviceIsPresent(const SiStripFecKey &)
bool isValid() const override
const VFloat & noiseSpread() const
FedDescriptionsRange getFedDescriptions(std::string partition="")
FedDescriptions::range FedDescriptionsRange
uint16_t frameFindingThreshold() const
static const char mlDqmClient_[]
uint16_t lldChannel() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
const VFloat & noiseMax() const
const uint16_t & i2cAddr() const
const uint16_t & fedId() const
const uint32_t & key() const
static const float tickMarkHeightThreshold_
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
const_iterator_range partitions() const
const uint16_t & fecRing() const
const VFloat & pedsSpread() const
Class containning control, module, detector and connection information, at the level of a FED channel...
FedsConstIterRange fedIds() const
const VVFloat & noise() const
const VFloat & rawMean() const
An interface class to the DeviceFactory.
const uint16_t & ccuChan() const
bool doUploadConf() const
const float & base() const
const uint32_t & fecKey() const
const VVFloat & peds() const
void create(SiStripConfigDb::AnalysisDescriptionsV &, Analysis) override
const float & height() const
void print(std::stringstream &, uint32_t apv_number=0) override
uint16_t fedChannel() const
const uint16_t & ccuAddr() const
const VFloat & rawSpread() const
std::vector< uint16_t > VInt
const VFloat & noiseMin() const
const float & peak() const
const VFloat & pedsMean() const
const uint16_t & feUnit() const
const SiStripDbParams & dbParams() const
const VVInt & noisy() const
void uploadFedDescriptions(std::string partition="")
~DaqScopeModeHistosUsingDb() override
static const uint16_t invalid_
void update(SiStripConfigDb::FedDescriptionsRange)
static const uint16_t FEDCH_PER_FED
std::vector< AnalysisDescription * > AnalysisDescriptionsV
const uint16_t & feChan() const
const VFloat & pedsMax() const
const uint16_t & fedId() const
SiStripConfigDb *const db() const
const VFloat & pedsMin() const
const VFloat & rawMax() const
const VFloat & rawMin() const
SiStripFedCabling *const cabling() const
const VString & getErrorCodes() const
static const uint16_t APVS_PER_FEDCH
DaqScopeModeHistosUsingDb(const edm::ParameterSet &pset, DQMStore *, SiStripConfigDb *const )
void uploadConfigurations() override
Analysis for scope mode data.