CMS 3D CMS Logo

Classes | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes

CommissioningHistosUsingDb Class Reference

#include <CommissioningHistosUsingDb.h>

Inheritance diagram for CommissioningHistosUsingDb:
CommissioningHistograms ApvTimingHistosUsingDb CalibrationHistosUsingDb FastFedCablingHistosUsingDb FineDelayHistosUsingDb LatencyHistosUsingDb NoiseHistosUsingDb OptoScanHistosUsingDb PedestalsHistosUsingDb PedsFullNoiseHistosUsingDb PedsOnlyHistosUsingDb SamplingHistosUsingDb VpspScanHistosUsingDb

List of all members.

Classes

class  DetInfo

Public Member Functions

 CommissioningHistosUsingDb (SiStripConfigDb *const, sistrip::RunType=sistrip::UNDEFINED_RUN_TYPE)
bool doUploadAnal () const
void doUploadAnal (bool)
bool doUploadConf () const
void doUploadConf (bool)
void uploadToConfigDb ()
virtual ~CommissioningHistosUsingDb ()

Protected Member Functions

virtual void addDcuDetIds ()
void buildDetInfo ()
SiStripFedCabling *const cabling () const
virtual void create (SiStripConfigDb::AnalysisDescriptionsV &, Analysis)
virtual void createAnalyses (SiStripConfigDb::AnalysisDescriptionsV &)
SiStripConfigDb *const db () const
std::pair< std::string, DetInfodetInfo (const SiStripFecKey &)
bool deviceIsPresent (const SiStripFecKey &)
void uploadAnalyses ()
virtual void uploadConfigurations ()

Private Types

typedef std::map< uint32_t,
DetInfo
DetInfos

Private Member Functions

 CommissioningHistosUsingDb ()

Private Attributes

SiStripFedCablingcabling_
SiStripConfigDbdb_
std::map< std::string, DetInfosdetInfo_
sistrip::RunType runType_
bool uploadAnal_
bool uploadConf_

Detailed Description

Definition at line 17 of file CommissioningHistosUsingDb.h.


Member Typedef Documentation

typedef std::map<uint32_t,DetInfo> CommissioningHistosUsingDb::DetInfos [private]

Definition at line 85 of file CommissioningHistosUsingDb.h.


Constructor & Destructor Documentation

CommissioningHistosUsingDb::CommissioningHistosUsingDb ( SiStripConfigDb * const  db,
sistrip::RunType  type = sistrip::UNDEFINED_RUN_TYPE 
)

Definition at line 19 of file CommissioningHistosUsingDb.cc.

References SiStripFedCablingBuilderFromDb::buildFecCabling(), SiStripFedCablingBuilderFromDb::buildFecCablingFromDevices(), cabling_, db_, sistrip::FAST_CABLING, SiStripFedCablingBuilderFromDb::getFedCabling(), LogTrace, sistrip::mlDqmClient_, runType_, SiStripFedCabling::summary(), and SiStripFedCabling::terse().

  : CommissioningHistograms(),
    runType_(type),
    db_(db),
    cabling_(0),
    detInfo_(),
    uploadAnal_(true),
    uploadConf_(false)
{
  LogTrace(mlDqmClient_) 
    << "[" << __PRETTY_FUNCTION__ << "]"
    << " Constructing object...";
  
  // Build FEC cabling object from connections found in DB
  SiStripFecCabling fec_cabling;
  if ( runType_ == sistrip::FAST_CABLING ) {
    SiStripFedCablingBuilderFromDb::buildFecCablingFromDevices( db_, fec_cabling );
  } else {
    SiStripFedCablingBuilderFromDb::buildFecCabling( db_, fec_cabling );
  }
  
  // Build FED cabling from FEC cabling
  cabling_ = new SiStripFedCabling();
  SiStripFedCablingBuilderFromDb::getFedCabling( fec_cabling, *cabling_ );
  std::stringstream ss;
  ss << "[CommissioningHistosUsingDb::" << __func__ << "]"
     << " Terse print out of FED cabling:" << std::endl;
  cabling_->terse(ss);
  LogTrace(mlDqmClient_) << ss.str();
  
  std::stringstream sss;
  sss << "[CommissioningHistosUsingDb::" << __func__ << "]"
      << " Summary of FED cabling:" << std::endl;
  cabling_->summary(sss);
  edm::LogVerbatim(mlDqmClient_) << sss.str();
  
}
CommissioningHistosUsingDb::~CommissioningHistosUsingDb ( ) [virtual]

Definition at line 76 of file CommissioningHistosUsingDb.cc.

References db_, LogTrace, and sistrip::mlDqmClient_.

                                                        {
  if ( db_ ) { delete db_; }
  LogTrace(mlDqmClient_) 
    << "[" << __PRETTY_FUNCTION__ << "]"
    << " Destructing object...";
}
CommissioningHistosUsingDb::CommissioningHistosUsingDb ( ) [private]

Definition at line 60 of file CommissioningHistosUsingDb.cc.

References LogTrace, and sistrip::mlDqmClient_.

  : CommissioningHistograms(),
    runType_(sistrip::UNDEFINED_RUN_TYPE),
    db_(0),
    cabling_(0),
    detInfo_(),
    uploadAnal_(false),
    uploadConf_(false)
{
  LogTrace(mlDqmClient_) 
    << "[" << __PRETTY_FUNCTION__ << "]"
    << " Constructing object..." << endl;
}

Member Function Documentation

void CommissioningHistosUsingDb::addDcuDetIds ( ) [protected, virtual]

Reimplemented in FastFedCablingHistosUsingDb.

Definition at line 186 of file CommissioningHistosUsingDb.cc.

References cabling_, FedChannelConnection::ccuAddr(), FedChannelConnection::ccuChan(), SiStripFedCabling::connection(), CommissioningHistograms::data(), CommissioningAnalysis::dcuId(), FedChannelConnection::dcuId(), FedChannelConnection::detId(), CommissioningAnalysis::detId(), FedChannelConnection::fecCrate(), SiStripFedKey::feChan(), CommissioningAnalysis::fecKey(), FedChannelConnection::fecRing(), FedChannelConnection::fecSlot(), FedChannelConnection::fedCh(), SiStripFedKey::fedChannel(), SiStripFedKey::fedId(), FedChannelConnection::fedId(), CommissioningAnalysis::fedKey(), SiStripFedKey::feUnit(), FedChannelConnection::lldChannel(), sistrip::mlDqmClient_, and SiStripKey::path().

Referenced by uploadToConfigDb().

                                              {
  
  if ( !cabling_ ) {
    edm::LogWarning(mlDqmClient_) 
      << "[CommissioningHistosUsingDb::" << __func__ << "]"
      << " NULL pointer to SiStripFedCabling object!";
    return;
  }
  
  Analyses::iterator ianal = data().begin();
  Analyses::iterator janal = data().end();
  for ( ; ianal != janal; ++ianal ) { 

    CommissioningAnalysis* anal = ianal->second;
  
    if ( !anal ) {
      edm::LogWarning(mlDqmClient_) 
        << "[CommissioningHistosUsingDb::" << __func__ << "]"
        << " NULL pointer to CommissioningAnalysis object!";
      return;
    }
    
    SiStripFedKey fed_key = anal->fedKey();
    SiStripFecKey fec_key = anal->fecKey();
    
    FedChannelConnection conn = cabling_->connection( fed_key.fedId(),
                                                      fed_key.fedChannel() );
  
    SiStripFedKey fed( conn.fedId(),
                       SiStripFedKey::feUnit( conn.fedCh() ),
                       SiStripFedKey::feChan( conn.fedCh() ) );
  
    SiStripFecKey fec( conn.fecCrate(),
                       conn.fecSlot(),
                       conn.fecRing(),
                       conn.ccuAddr(),
                       conn.ccuChan(),
                       conn.lldChannel() );
  
    if ( fed_key.path() != fed.path() ) {

      std::stringstream ss;
      ss << "[CommissioningHistosUsingDb::" << __func__ << "]"
         << " Cannot set DCU and DetId values in commissioning analysis object!" << std::endl
         << " Incompatible FED key retrieved from cabling!" << std::endl
         << " FED key from analysis object  : " << fed_key.path() << std::endl
         << " FED key from cabling object   : " << fed.path() << std::endl
         << " FED id/ch from analysis object: " << fed_key.fedId() << "/" << fed_key.fedChannel() << std::endl
         << " FED id/ch from cabling object : " << conn.fedId() << "/" << conn.fedCh();
      edm::LogWarning(mlDqmClient_) << ss.str();

    } else if ( fec_key.path() != fec.path() ) {

      std::stringstream ss;
      ss << "[CommissioningHistosUsingDb::" << __func__ << "]"
         << " Cannot set DCU and DetId values in commissioning analysis object!" << std::endl
         << " Incompatible FEC key retrieved from cabling!" << std::endl
         << " FEC key from analysis object : " << fec_key.path() << std::endl
         << " FEC key from cabling object  : " << fec.path();
      edm::LogWarning(mlDqmClient_) << ss.str();

    } else {

      anal->dcuId( conn.dcuId() );
      anal->detId( conn.detId() );

    }

  }

}
void CommissioningHistosUsingDb::buildDetInfo ( ) [protected]

Definition at line 299 of file CommissioningHistosUsingDb.cc.

References SiStripFecKey::ccuAddr(), SiStripConfigDb::DeviceAddress::ccuAddr_, SiStripFecKey::ccuChan(), SiStripConfigDb::DeviceAddress::ccuChan_, db(), db_, SiStripConfigDb::dbParams(), CommissioningHistosUsingDb::DetInfo::dcuId_, CommissioningHistosUsingDb::DetInfo::detId_, detInfo_, SiStripConfigDb::deviceAddress(), SiStripFecKey::fecCrate(), SiStripConfigDb::DeviceAddress::fecCrate_, SiStripFecKey::fecRing(), SiStripConfigDb::DeviceAddress::fecRing_, SiStripFecKey::fecSlot(), SiStripConfigDb::DeviceAddress::fecSlot_, SiStripConfigDb::findDcuDetId(), SiStripConfigDb::getDcuDetIds(), SiStripConfigDb::getDeviceDescriptions(), info, edm::isDebugEnabled(), SiStripFecKey::isValid(), combine::key, SiStripKey::key(), sistrip::mlDqmClient_, CommissioningHistosUsingDb::DetInfo::pairs_, SiStripDbParams::partitions(), and createTree::pp.

Referenced by uploadToConfigDb().

                                              {
  
  detInfo_.clear();
  
  if ( !db() ) {
    edm::LogError(mlDqmClient_) 
      << "[CommissioningHistosUsingDb::" << __func__ << "]"
      << " NULL pointer to SiStripConfigDb interface!";
    return;
  }

  SiStripDbParams::SiStripPartitions::const_iterator ii = db_->dbParams().partitions().begin();
  SiStripDbParams::SiStripPartitions::const_iterator jj = db_->dbParams().partitions().end();
  for ( ; ii != jj; ++ii ) {
    
    // Retrieve DCUs and DetIds for given partition
    std::string pp = ii->second.partitionName();
    SiStripConfigDb::DeviceDescriptionsRange dcus = db()->getDeviceDescriptions( DCU, pp ); 
    SiStripConfigDb::DcuDetIdsRange dets = db()->getDcuDetIds( pp ); 
    
    // Iterate through DCUs
    SiStripConfigDb::DeviceDescriptionsV::const_iterator idcu = dcus.begin();
    SiStripConfigDb::DeviceDescriptionsV::const_iterator jdcu = dcus.end();
    for ( ; idcu != jdcu; ++idcu ) {
      
      // Extract DCU-FEH description 
      dcuDescription* dcu = dynamic_cast<dcuDescription*>( *idcu );
      if ( !dcu ) { continue; }
      if ( dcu->getDcuType() != "FEH" ) { continue; }

      // S.L. 29/1/2010
      // HARDCODED!!! We have a broken module, known from Pisa integration tests
      // We could really use a better solutin for this than hardcode it!!!
      if ( dcu->getDcuHardId() == 16448250 ) continue; // fake dcu (0xfafafa)

      // Find TkDcuInfo object corresponding to given DCU description
      SiStripConfigDb::DcuDetIdsV::const_iterator idet = dets.end();
      idet = SiStripConfigDb::findDcuDetId( dets.begin(), dets.end(), dcu->getDcuHardId() );
      if ( idet == dets.begin() ) { continue; }
      
      // Extract TkDcuInfo object
      TkDcuInfo* det = idet->second;
      if ( !det ) { continue; }
      
      // Build FEC key
      const SiStripConfigDb::DeviceAddress& addr = db()->deviceAddress( *dcu );
      SiStripFecKey fec_key( addr.fecCrate_,
                             addr.fecSlot_,
                             addr.fecRing_,
                             addr.ccuAddr_,
                             addr.ccuChan_ );
      
      // Build DetInfo object
      DetInfo info;
      info.dcuId_ = det->getDcuHardId();
      info.detId_ = det->getDetId();
      info.pairs_ = det->getApvNumber()/2; 

      // Add it to map
      if ( fec_key.isValid() ) { detInfo_[pp][fec_key.key()] = info; }
      
    } 
  }
  
  // Debug
  if ( edm::isDebugEnabled() ) {
    std::stringstream ss;
    ss << "[CommissioningHistosUsingDb::" << __func__ << "]"
       << " List of modules for "
       << detInfo_.size()
       << " partitions, with their DCUids, DetIds, and nApvPairs: " << std::endl;
    std::map<std::string,DetInfos>::const_iterator ii = detInfo_.begin();
    std::map<std::string,DetInfos>::const_iterator jj = detInfo_.end();
    for ( ; ii != jj; ++ii ) {
      ss << " Partition \"" << ii->first 
         << "\" has " << ii->second.size()
         << " modules:"
         << std::endl;
      DetInfos::const_iterator iii = ii->second.begin();
      DetInfos::const_iterator jjj = ii->second.end();
      for ( ; iii != jjj; ++iii ) {
        SiStripFecKey key = iii->first;
        ss << "  module= "
           << key.fecCrate() << "/"    
           << key.fecSlot() << "/"
           << key.fecRing() << "/"
           << key.ccuAddr() << "/"
           << key.ccuChan() << ", "
           << std::hex
           << " DCUid= " 
           << std::setw(8) << std::setfill('0') << iii->second.dcuId_
           << " DetId= " 
           << std::setw(8) << std::setfill('0') << iii->second.detId_
           << std::dec
           << " nPairs= "
           << iii->second.pairs_
           << std::endl;
      }
    }
    //LogTrace(mlDqmClient_) << ss.str();
  }
  
}
SiStripFedCabling *const CommissioningHistosUsingDb::cabling ( ) const [inline, protected]
virtual void CommissioningHistosUsingDb::create ( SiStripConfigDb::AnalysisDescriptionsV ,
Analysis   
) [inline, protected, virtual]
void CommissioningHistosUsingDb::createAnalyses ( SiStripConfigDb::AnalysisDescriptionsV desc) [protected, virtual]

Definition at line 260 of file CommissioningHistosUsingDb.cc.

References create(), CommissioningHistograms::data(), LogTrace, and sistrip::mlDqmClient_.

Referenced by uploadAnalyses().

                                                                                            {
  
  LogTrace(mlDqmClient_) 
    << "[CommissioningHistosUsingDb::" << __func__ << "]"
    << " Creating AnalysisDescriptions...";

  desc.clear();
  
//   uint16_t size = 0;
//   std::stringstream ss;
//   ss << "[CommissioningHistosUsingDb::" << __func__ << "]"
//      << " Analysis descriptions:" << std::endl;

  Analyses::iterator ianal = data().begin();
  Analyses::iterator janal = data().end();
  for ( ; ianal != janal; ++ianal ) { 

    // create analysis description
    create( desc, ianal ); 
    
//     // debug
//     if ( ianal->second ) {
//       if ( desc.size()/2 > size ) { // print every 2nd description
//      size = desc.size()/2;
//      ianal->second->print(ss); 
//      ss << (*(desc.end()-2))->toString();
//      ss << (*(desc.end()-1))->toString();
//      ss << std::endl;
//       }
//     }

  }

//   LogTrace(mlDqmClient_) << ss.str(); 
  
}
SiStripConfigDb *const CommissioningHistosUsingDb::db ( ) const [inline, protected]
std::pair< std::string, CommissioningHistosUsingDb::DetInfo > CommissioningHistosUsingDb::detInfo ( const SiStripFecKey key) [protected]

Definition at line 405 of file CommissioningHistosUsingDb.cc.

References sistrip::CCU_CHAN, detInfo_, SiStripFecKey::isInvalid(), SiStripKey::key(), and tmp.

Referenced by deviceIsPresent().

                                                                                                                   {
  SiStripFecKey tmp( key, sistrip::CCU_CHAN );
  if ( tmp.isInvalid() ) { return std::make_pair("",DetInfo()); }
  std::map<std::string,DetInfos>::const_iterator ii = detInfo_.begin();
  std::map<std::string,DetInfos>::const_iterator jj = detInfo_.end();
  for ( ; ii != jj; ++ii ) {
    DetInfos::const_iterator iii = ii->second.find( tmp.key() );
    if ( iii != ii->second.end() ) { return std::make_pair(ii->first,iii->second); }
  }
  return std::make_pair("",DetInfo());
}
bool CommissioningHistosUsingDb::deviceIsPresent ( const SiStripFecKey key) [protected]

Definition at line 419 of file CommissioningHistosUsingDb.cc.

References sistrip::CCU_CHAN, SiStripFecKey::ccuAddr(), SiStripFecKey::ccuChan(), SiStripKey::channel(), detInfo(), SiStripFecKey::fecCrate(), SiStripFecKey::fecRing(), SiStripFecKey::fecSlot(), info, sistrip::invalid32_, sistrip::mlDqmClient_, and tmp.

Referenced by OptoScanHistosUsingDb::update(), PedsFullNoiseHistosUsingDb::update(), PedestalsHistosUsingDb::update(), ApvTimingHistosUsingDb::update(), and VpspScanHistosUsingDb::update().

                                                                           {
  SiStripFecKey tmp( key, sistrip::CCU_CHAN );
  std::pair<std::string,DetInfo> info = detInfo(key);
  if ( info.second.dcuId_ != sistrip::invalid32_ ) {
    if ( key.channel() == 2 && info.second.pairs_ == 2 ) { return false; }
    else { return true; }
  } else {
    std::stringstream ss;
    ss << "[CommissioningHistosUsingDb::" << __func__ << "]"
       << " Cannot find module (crate/FEC/ring/CCU/module): "
       << tmp.fecCrate() << "/"
       << tmp.fecSlot() << "/"
       << tmp.fecRing() << "/"
       << tmp.ccuAddr() << "/"
       << tmp.ccuChan()
       << "!";
    edm::LogWarning(mlDqmClient_) << ss.str();
    return true;
  }
}
bool CommissioningHistosUsingDb::doUploadAnal ( ) const [inline]

Definition at line 98 of file CommissioningHistosUsingDb.h.

References uploadAnal_.

Referenced by SiStripCommissioningOfflineDbClient::createHistos().

{ return uploadAnal_; }
void CommissioningHistosUsingDb::doUploadAnal ( bool  upload) [inline]

Definition at line 96 of file CommissioningHistosUsingDb.h.

References alcaDQMUpload::upload(), and uploadAnal_.

bool CommissioningHistosUsingDb::doUploadConf ( ) const [inline]
void CommissioningHistosUsingDb::doUploadConf ( bool  upload) [inline]

Definition at line 95 of file CommissioningHistosUsingDb.h.

References alcaDQMUpload::upload(), and uploadConf_.

void CommissioningHistosUsingDb::uploadAnalyses ( ) [protected]

Definition at line 94 of file CommissioningHistosUsingDb.cc.

References SiStripConfigDb::addAnalysisDescriptions(), SiStripConfigDb::clearAnalysisDescriptions(), createAnalyses(), db_, SiStripConfigDb::dbParams(), SiStripConfigDb::deviceFactory(), sistrip::mlDqmClient_, SiStripDbParams::partitions(), uploadAnal_, SiStripConfigDb::uploadAnalysisDescriptions(), and uploadConf_.

Referenced by uploadToConfigDb().

                                                {

  if ( !db_ ) {
    edm::LogError(mlDqmClient_) 
      << "[CommissioningHistosUsingDb::" << __func__ << "]"
      << " NULL pointer to SiStripConfigDb interface!"
      << " Aborting upload...";
    return;
  }
  
  db_->clearAnalysisDescriptions();
  SiStripDbParams::SiStripPartitions::const_iterator ip = db_->dbParams().partitions().begin();
  SiStripDbParams::SiStripPartitions::const_iterator jp = db_->dbParams().partitions().end();
  for ( ; ip != jp; ++ip ) {

    edm::LogVerbatim(mlDqmClient_) 
      << "[CommissioningHistosUsingDb::" << __func__ << "]"
      << " Starting from partition " << ip->first
      << " with versions:\n" << std::dec
      << "   Conn: " << ip->second.cabVersion().first << "." << ip->second.cabVersion().second << "\n"
      << "   FED:  " << ip->second.fedVersion().first  << "." << ip->second.fedVersion().second << "\n"
      << "   FEC:  " << ip->second.fecVersion().first  << "." << ip->second.fecVersion().second << "\n"
      << "   Mask: " << ip->second.maskVersion().first << "." << ip->second.maskVersion().second;

    // Upload commissioning analysis results 
    SiStripConfigDb::AnalysisDescriptionsV anals;
    createAnalyses( anals );
    
    edm::LogVerbatim(mlDqmClient_) 
      << "[CommissioningHistosUsingDb::" << __func__ << "]"
      << " Created analysis descriptions for " 
      << anals.size() << " devices";
    
    // Update analysis descriptions with new commissioning results
    if ( uploadAnal_ ) {
      if ( uploadConf_ ) { 
                                edm::LogVerbatim(mlDqmClient_)
                        << "[CommissioningHistosUsingDb::" << __func__ << "]"
                        << " Uploading major version of analysis descriptions to DB"
                        << " (will be used for physics)...";
      } 
      else {
                                edm::LogVerbatim(mlDqmClient_)
                                << "[CommissioningHistosUsingDb::" << __func__ << "]"
                        << " Uploading minor version of analysis descriptions to DB"
                        << " (will not be used for physics)...";
      }
      db_->clearAnalysisDescriptions( ip->second.partitionName() );
      db_->addAnalysisDescriptions( ip->second.partitionName(), anals ); 
      db_->uploadAnalysisDescriptions( uploadConf_, ip->second.partitionName() ); 
      edm::LogVerbatim(mlDqmClient_) 
                        << "[CommissioningHistosUsingDb::" << __func__ << "]"
      << " Upload of analysis descriptions to DB finished!";
    } 
    else {
      edm::LogWarning(mlDqmClient_) 
        << "[CommissioningHistosUsingDb::" << __func__ << "]"
        << " TEST! No analysis descriptions will be uploaded to DB...";
    }

    if ( uploadConf_ ) {
      SiStripDbParams::SiStripPartitions::const_iterator ip = db_->dbParams().partitions().begin();
      SiStripDbParams::SiStripPartitions::const_iterator jp = db_->dbParams().partitions().end();
      for ( ; ip != jp; ++ip ) {
        DeviceFactory* df = db_->deviceFactory();
        tkStateVector states = df->getCurrentStates();
        tkStateVector::const_iterator istate = states.begin();
        tkStateVector::const_iterator jstate = states.end();
        while ( istate != jstate ) {
          if ( *istate && ip->first == (*istate)->getPartitionName() ) { break; }
          istate++;
        }
        // Set versions if state was found
        if ( istate != states.end() ) {
          edm::LogVerbatim(mlDqmClient_) 
            << "[CommissioningHistosUsingDb::" << __func__ << "]"
            << " Created new version for partition " << ip->first
            << ". Current state:\n" << std::dec
            << "   Conn: " << (*istate)->getConnectionVersionMajorId() << "." << (*istate)->getConnectionVersionMinorId() << "\n"
            << "   FED:  " << (*istate)->getFedVersionMajorId()  << "." << (*istate)->getFedVersionMinorId() << "\n"
            << "   FEC:  " << (*istate)->getFecVersionMajorId()  << "." << (*istate)->getFecVersionMinorId() << "\n"
            << "   Mask: " << (*istate)->getMaskVersionMajorId() << "." << (*istate)->getMaskVersionMinorId();
        }
      }
    }

  }
  
}
virtual void CommissioningHistosUsingDb::uploadConfigurations ( ) [inline, protected, virtual]
void CommissioningHistosUsingDb::uploadToConfigDb ( )

Member Data Documentation

Definition at line 83 of file CommissioningHistosUsingDb.h.

Referenced by addDcuDetIds(), cabling(), and CommissioningHistosUsingDb().

std::map<std::string,DetInfos> CommissioningHistosUsingDb::detInfo_ [private]

Definition at line 87 of file CommissioningHistosUsingDb.h.

Referenced by buildDetInfo(), and detInfo().

Definition at line 79 of file CommissioningHistosUsingDb.h.

Referenced by CommissioningHistosUsingDb().

Definition at line 89 of file CommissioningHistosUsingDb.h.

Referenced by doUploadAnal(), and uploadAnalyses().

Definition at line 91 of file CommissioningHistosUsingDb.h.

Referenced by doUploadConf(), and uploadAnalyses().