CMS 3D CMS Logo

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

CommissioningTask Class Reference

#include <CommissioningTask.h>

Inheritance diagram for CommissioningTask:
ApvTimingTask CalibrationScanTask CalibrationTask DaqScopeModeTask FastFedCablingTask FedCablingTask FedTimingTask FineDelayTask LatencyTask NoiseTask OptoScanTask PedestalsTask PedsFullNoiseTask PedsOnlyTask VpspScanTask

List of all members.

Classes

class  CompactHistoSet
class  HistoSet

Public Member Functions

void bookHistograms ()
 CommissioningTask (DQMStore *, const FedChannelConnection &, const std::string &my_name)
void eventSetup (const edm::EventSetup *)
const uint32_t & fillCntr () const
void fillHistograms (const SiStripEventSummary &, const edm::DetSet< SiStripRawDigi > &)
void fillHistograms (const SiStripEventSummary &, const uint16_t &fed_id, const std::map< uint16_t, float > &fed_ch)
const std::string & myName () const
const uint32_t & updateFreq () const
void updateFreq (const uint32_t &)
void updateHistograms ()
virtual ~CommissioningTask ()

Protected Member Functions

const FedChannelConnectionconnection () const
DQMStore *const dqm () const
const edm::EventSetup *const eventSetup () const
const uint32_t & fecKey () const
const uint32_t & fedKey () const
void updateHistoSet (CompactHistoSet &, const uint32_t &bin)
void updateHistoSet (HistoSet &)
void updateHistoSet (HistoSet &, const uint32_t &bin)
void updateHistoSet (HistoSet &, const float &value)
void updateHistoSet (HistoSet &, const uint32_t &bin, const float &value)
void updateHistoSet (CompactHistoSet &)
void updateHistoSet (CompactHistoSet &, const uint32_t &bin, const short &value)

Private Member Functions

virtual void book ()
 CommissioningTask ()
virtual void fill (const SiStripEventSummary &, const uint16_t &fed_id, const std::map< uint16_t, float > &fed_ch)
virtual void fill (const SiStripEventSummary &, const edm::DetSet< SiStripRawDigi > &)
virtual void update ()

Private Attributes

bool booked_
FedChannelConnection connection_
DQMStoredqm_
const edm::EventSetupeventSetup_
uint32_t fecKey_
uint32_t fedKey_
uint32_t fillCntr_
std::string myName_
uint32_t updateFreq_

Detailed Description

Definition at line 21 of file CommissioningTask.h.


Constructor & Destructor Documentation

CommissioningTask::CommissioningTask ( DQMStore dqm,
const FedChannelConnection conn,
const std::string &  my_name 
)

Definition at line 17 of file CommissioningTask.cc.

References FedChannelConnection::ccuAddr(), FedChannelConnection::ccuChan(), connection_, FedChannelConnection::fecCrate(), SiStripFedKey::feChan(), fecKey_, FedChannelConnection::fecRing(), FedChannelConnection::fecSlot(), FedChannelConnection::fedCh(), FedChannelConnection::fedId(), fedKey_, SiStripFedKey::feUnit(), combine::key, FedChannelConnection::lldChannel(), LogTrace, sistrip::mlDqmSource_, and myName_.

                                                                 :
  dqm_(dqm),
  updateFreq_(0),
  fillCntr_(0),
  connection_(conn),
  fedKey_(0),
  fecKey_(0),
  booked_(false),
  myName_(my_name),
  eventSetup_(0)
{
  uint16_t fed_ch = connection_.fedCh();
  fedKey_ = SiStripFedKey( connection_.fedId(), 
                           SiStripFedKey::feUnit(fed_ch),
                           SiStripFedKey::feChan(fed_ch) ).key();
  fecKey_ = SiStripFecKey( connection_.fecCrate(),
                           connection_.fecSlot(),
                           connection_.fecRing(),
                           connection_.ccuAddr(),
                           connection_.ccuChan(),
                           connection_.lldChannel() ).key();
  
  LogTrace(mlDqmSource_)
    << "[CommissioningTask::" << __func__ << "]" 
    << " Constructing '" << myName_
    << "' object for FecKey/FedKey: "
    << "0x" << std::hex << std::setw(8) << std::setfill('0') << fecKey_ << std::dec
    << "/"
    << "0x" << std::hex << std::setw(8) << std::setfill('0') << fedKey_ << std::dec
    << " and Crate/FEC/ring/CCU/module/LLDchan: " 
    << connection_.fecCrate() << "/"
    << connection_.fecSlot() << "/" 
    << connection_.fecRing() << "/" 
    << connection_.ccuAddr() << "/" 
    << connection_.ccuChan() << "/" 
    << connection_.lldChannel() 
    << " and FedId/Ch: " 
    << connection_.fedId() << "/" 
    << connection_.fedCh();
}
CommissioningTask::~CommissioningTask ( ) [virtual]

Definition at line 62 of file CommissioningTask.cc.

References FedChannelConnection::ccuAddr(), FedChannelConnection::ccuChan(), connection_, FedChannelConnection::fecCrate(), fecKey_, FedChannelConnection::fecRing(), FedChannelConnection::fecSlot(), FedChannelConnection::fedCh(), FedChannelConnection::fedId(), fedKey_, FedChannelConnection::lldChannel(), LogTrace, sistrip::mlDqmSource_, and myName_.

                                      {
  LogTrace(mlDqmSource_)
    << "[CommissioningTask::" << __func__ << "]" 
    << " Destructing object for FED id/ch " 
    << " Constructing '" << myName_
    << "' object for FecKey/FedKey: "
    << "0x" << std::hex << std::setw(8) << std::setfill('0') << fecKey_ << std::dec
    << "/"
    << "0x" << std::hex << std::setw(8) << std::setfill('0') << fedKey_ << std::dec
    << " and Crate/FEC/ring/CCU/module/LLDchan: " 
    << connection_.fecCrate() << "/"
    << connection_.fecSlot() << "/" 
    << connection_.fecRing() << "/" 
    << connection_.ccuAddr() << "/" 
    << connection_.ccuChan() << "/" 
    << connection_.lldChannel() 
    << " and FedId/Ch: " 
    << connection_.fedId() << "/" 
    << connection_.fedCh();
  //@@ do not delete EventSetup pointer!
}
CommissioningTask::CommissioningTask ( ) [inline, private]

Definition at line 134 of file CommissioningTask.h.

{;}

Member Function Documentation

void CommissioningTask::book ( ) [private, virtual]

Reimplemented in ApvTimingTask, CalibrationScanTask, CalibrationTask, DaqScopeModeTask, FastFedCablingTask, FedCablingTask, FedTimingTask, FineDelayTask, LatencyTask, NoiseTask, OptoScanTask, PedestalsTask, PedsFullNoiseTask, PedsOnlyTask, and VpspScanTask.

Definition at line 144 of file CommissioningTask.cc.

References sistrip::mlDqmSource_.

Referenced by bookHistograms().

                             {
  edm::LogWarning(mlDqmSource_)
    << "[CommissioningTask::" << __func__ << "]"
    << " No derived implementation exists!";
}
void CommissioningTask::bookHistograms ( )

Books histograms and constructs HistoSet cache.

Definition at line 179 of file CommissioningTask.cc.

References book(), and booked_.

                                       {
  book();
  booked_ = true;
}
const FedChannelConnection & CommissioningTask::connection ( ) const [inline, protected]
DQMStore *const CommissioningTask::dqm ( ) const [inline, protected]
void CommissioningTask::eventSetup ( const edm::EventSetup setup) [inline]

Define access to the EventSetup.

Definition at line 182 of file CommissioningTask.h.

References eventSetup_, and HcalObjRepresent::setup().

const edm::EventSetup *const CommissioningTask::eventSetup ( ) const [inline, protected]

Access to the EventSetup.

Definition at line 183 of file CommissioningTask.h.

References eventSetup_.

Referenced by NoiseTask::book().

{ return eventSetup_; }
const uint32_t & CommissioningTask::fecKey ( ) const [inline, protected]

Returns FEC key.

Definition at line 179 of file CommissioningTask.h.

References fecKey_.

Referenced by VpspScanTask::fill().

{ return fecKey_; }
const uint32_t & CommissioningTask::fedKey ( ) const [inline, protected]
void CommissioningTask::fill ( const SiStripEventSummary summary,
const edm::DetSet< SiStripRawDigi > &  digis 
) [private, virtual]

Reimplemented in ApvTimingTask, CalibrationScanTask, CalibrationTask, DaqScopeModeTask, FastFedCablingTask, FedTimingTask, FineDelayTask, LatencyTask, NoiseTask, OptoScanTask, PedestalsTask, PedsFullNoiseTask, PedsOnlyTask, and VpspScanTask.

Definition at line 152 of file CommissioningTask.cc.

References sistrip::mlDqmSource_.

Referenced by fillHistograms().

                                                                       {
  edm::LogWarning(mlDqmSource_)
    << "[CommissioningTask::" << __func__ << "]"
    << " No derived implementation exists!";
}
void CommissioningTask::fill ( const SiStripEventSummary summary,
const uint16_t &  fed_id,
const std::map< uint16_t, float > &  fed_ch 
) [private, virtual]

Reimplemented in FedCablingTask.

Definition at line 161 of file CommissioningTask.cc.

References sistrip::mlDqmSource_.

                                                                     {
  edm::LogWarning(mlDqmSource_)
    << "[CommissioningTask::" << __func__ << "]"
    << " No derived implementation exists!";
}
const uint32_t & CommissioningTask::fillCntr ( ) const [inline]

Get histogram filled counter.

Definition at line 171 of file CommissioningTask.h.

References fillCntr_.

Referenced by DaqScopeModeTask::fill().

{ return fillCntr_; }
void CommissioningTask::fillHistograms ( const SiStripEventSummary summary,
const edm::DetSet< SiStripRawDigi > &  digis 
)

Fills HistoSet cache.

Definition at line 186 of file CommissioningTask.cc.

References booked_, fill(), fillCntr_, sistrip::mlDqmSource_, update(), and updateFreq_.

                                                                                 {
  if ( !booked_ ) {
    edm::LogWarning(mlDqmSource_)
      << "[CommissioningTask::" << __func__ << "]"
      << " Attempting to fill histos that haven't been booked yet!";
    return;
  }
  fillCntr_++;
  fill( summary, digis ); 
  if ( updateFreq_ && !(fillCntr_%updateFreq_) ) { 
    update(); 
  }
  
}
void CommissioningTask::fillHistograms ( const SiStripEventSummary summary,
const uint16_t &  fed_id,
const std::map< uint16_t, float > &  fed_ch 
)

Fill HistoSet cache for FED cabling (special case).

Definition at line 204 of file CommissioningTask.cc.

References booked_, fill(), fillCntr_, sistrip::mlDqmSource_, update(), and updateFreq_.

                                                                               {
  if ( !booked_ ) {
    edm::LogWarning(mlDqmSource_)
      << "[CommissioningTask::" << __func__ << "]"
      << " Attempting to fill histos that haven't been booked yet!";
    return;
  }
  fillCntr_++;
  fill( summary, fed_id, fed_ch ); 
  if ( updateFreq_ && !(fillCntr_%updateFreq_) ) { 
    update(); 
  }
  
}
const std::string & CommissioningTask::myName ( void  ) const [inline]

Returns the name of this commissioning task.

Definition at line 174 of file CommissioningTask.h.

References myName_.

{ return myName_; }
void CommissioningTask::update ( void  ) [private, virtual]

Reimplemented in ApvTimingTask, CalibrationScanTask, CalibrationTask, DaqScopeModeTask, FastFedCablingTask, FedCablingTask, FedTimingTask, FineDelayTask, LatencyTask, NoiseTask, OptoScanTask, PedestalsTask, PedsFullNoiseTask, PedsOnlyTask, and VpspScanTask.

Definition at line 171 of file CommissioningTask.cc.

References sistrip::mlDqmSource_.

Referenced by fillHistograms(), and updateHistograms().

                               {
  edm::LogWarning(mlDqmSource_)
    << "[CommissioningTask::" << __func__ << "]"
    << " No derived implementation exists!";
}
const uint32_t & CommissioningTask::updateFreq ( ) const [inline]

Get histogram update frequency.

Definition at line 172 of file CommissioningTask.h.

References updateFreq_.

Referenced by DaqScopeModeTask::fill().

{ return updateFreq_; }
void CommissioningTask::updateFreq ( const uint32_t &  freq) [inline]

Set histogram update frequency.

Definition at line 173 of file CommissioningTask.h.

References updateFreq_.

{ updateFreq_ = freq; }
void CommissioningTask::updateHistograms ( )

Updates histograms using HistoSet cache.

Definition at line 223 of file CommissioningTask.cc.

References update().

                                         {
  update();
}
void CommissioningTask::updateHistoSet ( CompactHistoSet histo_set,
const uint32_t &  bin 
) [protected]

Definition at line 237 of file CommissioningTask.cc.

References updateHistoSet(), and relativeConstraints::value.

                                                              {
  short value = 1;
  updateHistoSet( histo_set, bin, value );
}
void CommissioningTask::updateHistoSet ( CompactHistoSet histo_set,
const uint32_t &  bin,
const short &  value 
) [protected]

Definition at line 297 of file CommissioningTask.cc.

References newFWLiteAna::bin, CommissioningTask::CompactHistoSet::explicitFill_, CommissioningTask::CompactHistoSet::histo(), sistrip::mlDqmSource_, relativeConstraints::value, and CommissioningTask::CompactHistoSet::vNumOfEntries_.

                                                             {
  
  // Check bin number
  if ( bin >= histo_set.vNumOfEntries_.size() && !histo_set.explicitFill_ ) { 
    edm::LogWarning(mlDqmSource_)
      << "[CommissioningTask::" << __func__ << "]"
      << " Unexpected bin number " << bin 
      << " when filling histogram of size " << histo_set.vNumOfEntries_.size();
    return;
  }

  if (histo_set.explicitFill_) {
    float origVal = histo_set.histo()->getBinContent( bin+1 );
    histo_set.histo()->setBinContent( bin+1, origVal + value );
  } else {
    // Set entries
    histo_set.vNumOfEntries_[bin] += value;
  }

}
void CommissioningTask::updateHistoSet ( HistoSet histo_set,
const float &  value 
) [protected]

Updates the vectors of HistoSet.

Definition at line 245 of file CommissioningTask.cc.

References CommissioningTask::HistoSet::bin(), updateHistoSet(), and CommonMethods::weight().

                                                             {
  float weight = 1.;
  updateHistoSet( histo_set, histo_set.bin(value), weight );
}
void CommissioningTask::updateHistoSet ( HistoSet histo_set) [protected]

Updates the MonitorElements of HistoSet.

Definition at line 322 of file CommissioningTask.cc.

References CommissioningTask::HistoSet::explicitFill_, extract(), CommissioningTask::HistoSet::histo(), CommissioningTask::HistoSet::isProfile_, sistrip::mlDqmSource_, profilereader::profile, CommissioningTask::HistoSet::vNumOfEntries_, CommissioningTask::HistoSet::vSumOfContents_, and CommissioningTask::HistoSet::vSumOfSquares_.

                                                            {
  
  // Check if histo exists
  if ( !histo_set.histo() ) {
    edm::LogWarning(mlDqmSource_)
      << "[CommissioningTask::" << __func__ << "]"
      << " NULL pointer to MonitorElement!";
    return;
  }

  if (!histo_set.explicitFill_) {

   if ( histo_set.isProfile_ ) {

    TProfile* prof = ExtractTObject<TProfile>().extract( histo_set.histo() );
    // if ( prof ) { prof->SetErrorOption("s"); } //@@ necessary?
    static UpdateTProfile profile;
    for ( uint32_t ibin = 0; ibin < histo_set.vNumOfEntries_.size(); ibin++ ) {
      profile.setBinContents( prof,
                              ibin+1, 
                              histo_set.vNumOfEntries_[ibin],
                              histo_set.vSumOfContents_[ibin],
                              histo_set.vSumOfSquares_[ibin] );
    }

   } else {

    for ( uint32_t ibin = 0; ibin < histo_set.vNumOfEntries_.size(); ibin++ ) {
      histo_set.histo()->setBinContent( ibin+1, histo_set.vNumOfEntries_[ibin] );
    }
    
   }

  }
  
}
void CommissioningTask::updateHistoSet ( HistoSet histo_set,
const uint32_t &  bin,
const float &  value 
) [protected]

Updates the vectors of HistoSet.

Definition at line 253 of file CommissioningTask.cc.

References newFWLiteAna::bin, CommissioningTask::HistoSet::explicitFill_, CommissioningTask::HistoSet::histo(), CommissioningTask::HistoSet::isProfile_, sistrip::mlDqmSource_, relativeConstraints::value, CommissioningTask::HistoSet::vNumOfEntries_, CommissioningTask::HistoSet::vSumOfContents_, and CommissioningTask::HistoSet::vSumOfSquares_.

Referenced by FedCablingTask::fill(), ApvTimingTask::fill(), DaqScopeModeTask::fill(), OptoScanTask::fill(), FedTimingTask::fill(), LatencyTask::fill(), PedsFullNoiseTask::fill(), CalibrationScanTask::fill(), FineDelayTask::fill(), CalibrationTask::fill(), PedestalsTask::fill(), FastFedCablingTask::fill(), VpspScanTask::fill(), FedTimingTask::update(), PedestalsTask::update(), CalibrationTask::update(), OptoScanTask::update(), VpspScanTask::update(), FastFedCablingTask::update(), CalibrationScanTask::update(), FedCablingTask::update(), NoiseTask::update(), PedsFullNoiseTask::update(), LatencyTask::update(), ApvTimingTask::update(), DaqScopeModeTask::update(), FineDelayTask::update(), and updateHistoSet().

                                                             {
  
  // Check bin number
  if ( bin >= histo_set.vNumOfEntries_.size() && !histo_set.explicitFill_ ) { 
    edm::LogWarning(mlDqmSource_)
      << "[CommissioningTask::" << __func__ << "]"
      << " Unexpected bin number " << bin 
      << " when filling histogram of size " << histo_set.vNumOfEntries_.size();
    return;
  }
  
  // Check if histo is TProfile or not
  if ( !histo_set.isProfile_ ) {
    // Set entries
    if (histo_set.explicitFill_) {
      float origVal = histo_set.histo()->getBinContent( bin+1 );
      histo_set.histo()->setBinContent( bin+1, origVal + value );
    } else {
      histo_set.vNumOfEntries_[bin]+=value;
    }
  } else {
    // Set entries
    histo_set.vNumOfEntries_[bin]++;
    
    // Check bin number
    if ( bin >= histo_set.vSumOfContents_.size() || 
         bin >= histo_set.vSumOfSquares_.size() ) { 
      edm::LogWarning(mlDqmSource_)
        << "[CommissioningTask::" << __func__ << "]"
        << " Unexpected bin when filling histogram: " << bin;
      return;
    }
    
    // Set sum of contents and squares
    histo_set.vSumOfContents_[bin] += value;
    histo_set.vSumOfSquares_[bin] += value*value;
  }

}
void CommissioningTask::updateHistoSet ( HistoSet histo_set,
const uint32_t &  bin 
) [protected]

Updates the vectors of HistoSet.

Definition at line 229 of file CommissioningTask.cc.

References updateHistoSet(), and relativeConstraints::value.

                                                              {
  float value = 1.;
  updateHistoSet( histo_set, bin, value );
}
void CommissioningTask::updateHistoSet ( CompactHistoSet histo_set) [protected]

Definition at line 361 of file CommissioningTask.cc.

References CommissioningTask::CompactHistoSet::explicitFill_, CommissioningTask::CompactHistoSet::histo(), sistrip::mlDqmSource_, and CommissioningTask::CompactHistoSet::vNumOfEntries_.

                                                                   {
  
  // Check if histo exists
  if ( !histo_set.histo() ) {
    edm::LogWarning(mlDqmSource_)
      << "[CommissioningTask::" << __func__ << "]"
      << " NULL pointer to MonitorElement!";
    return;
  }

  if (!histo_set.explicitFill_) {
    for ( uint32_t ibin = 0; ibin < histo_set.vNumOfEntries_.size(); ibin++ ) {
      histo_set.histo()->setBinContent( ibin+1, histo_set.vNumOfEntries_[ibin] );
    }
  }
  
}

Member Data Documentation

Definition at line 161 of file CommissioningTask.h.

Referenced by bookHistograms(), and fillHistograms().

Definition at line 155 of file CommissioningTask.h.

Referenced by CommissioningTask(), connection(), and ~CommissioningTask().

Definition at line 149 of file CommissioningTask.h.

Referenced by dqm().

Definition at line 165 of file CommissioningTask.h.

Referenced by eventSetup().

uint32_t CommissioningTask::fecKey_ [private]

Definition at line 159 of file CommissioningTask.h.

Referenced by CommissioningTask(), fecKey(), and ~CommissioningTask().

uint32_t CommissioningTask::fedKey_ [private]

Definition at line 157 of file CommissioningTask.h.

Referenced by CommissioningTask(), fedKey(), and ~CommissioningTask().

uint32_t CommissioningTask::fillCntr_ [private]

Definition at line 153 of file CommissioningTask.h.

Referenced by fillCntr(), and fillHistograms().

std::string CommissioningTask::myName_ [private]

Definition at line 163 of file CommissioningTask.h.

Referenced by CommissioningTask(), myName(), and ~CommissioningTask().

uint32_t CommissioningTask::updateFreq_ [private]

Definition at line 151 of file CommissioningTask.h.

Referenced by fillHistograms(), and updateFreq().