9 using namespace sistrip;
25 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
26 <<
" Constructing object...";
33 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
34 <<
" Destructing object...";
41 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]";
45 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
46 <<
" NULL pointer to SiStripConfigDb interface!"
47 <<
" Aborting upload...";
56 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
57 <<
" Uploading VPSP settings to DB...";
60 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
61 <<
" Uploaded VPSP settings to DB!";
64 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
65 <<
" TEST only! No VPSP settings will be uploaded to DB...";
68 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
69 <<
" Upload of VPSP settings to DB finished!";
78 SiStripConfigDb::DeviceDescriptionsV::const_iterator idevice;
79 for ( idevice = devices.begin(); idevice != devices.end(); idevice++ ) {
82 if ( (*idevice)->getDeviceType() != APV25 ) {
continue; }
85 apvDescription* desc =
dynamic_cast<apvDescription*
>( *idevice );
86 if ( !desc ) {
continue; }
92 uint16_t ichan = ( desc->getAddress() - 0x20 ) / 2;
93 uint16_t iapv = ( desc->getAddress() - 0x20 ) % 2;
104 Analyses::const_iterator
iter =
data().find( fec_key.
key() );
105 if ( iter !=
data().end() ) {
110 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
111 <<
" NULL pointer to analysis object!";
115 std::stringstream
ss;
116 ss <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
117 <<
" Updating VPSP setting for crate/FEC/slot/ring/CCU/LLD/APV "
126 <<
static_cast<uint16_t
>(desc->getVpsp());
127 if ( iapv == 0 ) { desc->setVpsp( anal->
vpsp()[0] ); }
128 if ( iapv == 1 ) { desc->setVpsp( anal->
vpsp()[1] ); }
129 ss <<
" to " <<
static_cast<uint16_t
>(desc->getVpsp());
135 <<
"[VpspScanHistosUsingDb::" << __func__ <<
"]"
136 <<
" Unable to find FEC key with params FEC/slot/ring/CCU/LLDchan/APV: "
156 if ( !anal ) {
return; }
161 for ( uint16_t iapv = 0; iapv < 2; ++iapv ) {
164 VpspScanAnalysisDescription*
tmp;
165 tmp =
new VpspScanAnalysisDescription( anal->
vpsp()[iapv],
188 typedef std::vector<std::string>
Strings;
190 Strings::const_iterator istr = errors.begin();
191 Strings::const_iterator jstr = errors.end();
192 for ( ; istr != jstr; ++istr ) { tmp->addComments( *istr ); }
195 desc.push_back( tmp );
virtual void uploadConfigurations()
const uint32_t & fedKey() const
Analyses::iterator Analysis
const VInt & bottomEdge() const
const uint16_t & fecRing() const
A container class for generic run and event-related info, information required by the commissioning a...
virtual ~VpspScanHistosUsingDb()
bool deviceIsPresent(const SiStripFecKey &)
static const char mlDqmClient_[]
void create(SiStripConfigDb::AnalysisDescriptionsV &, Analysis)
const uint16_t & fecSlot() const
void update(SiStripConfigDb::DeviceDescriptionsRange)
const uint16_t & i2cAddr() const
const uint32_t & key() const
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 VInt & topLevel() const
const VInt & fraction() const
DeviceDescriptions::range DeviceDescriptionsRange
An interface class to the DeviceFactory.
bool doUploadConf() const
const uint32_t & fecKey() const
DeviceAddress deviceAddress(const deviceDescription &)
const VInt & vpsp() const
const uint16_t & fecCrate() const
Histogram-based analysis for VPSP scan.
VpspScanHistosUsingDb(const edm::ParameterSet &pset, DQMStore *, SiStripConfigDb *const )
const VInt & adcLevel() const
const SiStripDbParams & dbParams() const
const uint16_t & channel() const
const uint16_t & ccuAddr() const
std::vector< std::vector< double > > tmp
std::vector< AnalysisDescription * > AnalysisDescriptionsV
const uint16_t & ccuChan() const
SiStripConfigDb *const db() const
DeviceDescriptionsRange getDeviceDescriptions(std::string partition="")
void uploadDeviceDescriptions(std::string partition="")
const VString & getErrorCodes() const
const VInt & topEdge() const
const VInt & bottomLevel() const