CMS 3D CMS Logo

Public Member Functions | Private Attributes

SamplingHistograms Class Reference

#include <SamplingHistograms.h>

Inheritance diagram for SamplingHistograms:
CommissioningHistograms FineDelayHistosUsingDb LatencyHistosUsingDb SamplingHistosUsingDb

List of all members.

Public Member Functions

virtual void configure (const edm::ParameterSet &, const edm::EventSetup &)
void histoAnalysis (bool debug)
 SamplingHistograms (const edm::ParameterSet &pset, DQMStore *, const sistrip::RunType &task=sistrip::APV_LATENCY)
virtual ~SamplingHistograms ()

Private Attributes

int latencyCode_
float sOnCut_

Detailed Description

Definition at line 10 of file SamplingHistograms.h.


Constructor & Destructor Documentation

SamplingHistograms::SamplingHistograms ( const edm::ParameterSet pset,
DQMStore bei,
const sistrip::RunType task = sistrip::APV_LATENCY 
)

Definition at line 19 of file SamplingHistograms.cc.

References sistrip::collate_, CommissioningHistograms::factory_, DQMStore::get(), MonitorElement::getIntValue(), latencyCode_, LogTrace, sistrip::mlDqmClient_, and sistrip::root_.

  : CommissioningHistograms( pset.getParameter<edm::ParameterSet>("SamplingParameters"),
                             bei,
                             task ),
    sOnCut_(3)
{
  LogTrace(mlDqmClient_) 
       << "[SamplingHistograms::" << __func__ << "]"
       << " Constructing object...";
  factory_ = auto_ptr<SamplingSummaryFactory>( new SamplingSummaryFactory );
  // retreive the latency code from the root file
  std::string dataPath = std::string(sistrip::collate_) + "/" + sistrip::root_ + "/latencyCode";
  MonitorElement* codeElement = bei->get(dataPath);
  if(codeElement) latencyCode_ = codeElement->getIntValue() ;
  else latencyCode_ = 0;
}
SamplingHistograms::~SamplingHistograms ( ) [virtual]

Definition at line 40 of file SamplingHistograms.cc.

References LogTrace, and sistrip::mlDqmClient_.

                                        {
  LogTrace(mlDqmClient_) 
       << "[SamplingHistograms::" << __func__ << "]"
       << " Deleting object...";
}

Member Function Documentation

void SamplingHistograms::configure ( const edm::ParameterSet pset,
const edm::EventSetup  
) [virtual]

Reimplemented from CommissioningHistograms.

Reimplemented in FineDelayHistosUsingDb, and LatencyHistosUsingDb.

Definition at line 87 of file SamplingHistograms.cc.

References sOnCut_.

{
 //TODO: should use the parameter set. Why is this crashing ???
//  sOnCut_ = pset.getParameter<double>("SignalToNoiseCut");
   sOnCut_ = 3.;
}
void SamplingHistograms::histoAnalysis ( bool  debug) [virtual]

Reimplemented from CommissioningHistograms.

Definition at line 48 of file SamplingHistograms.cc.

References algo, CommissioningAlgorithm::analysis(), begin, CommissioningHistograms::data(), extract(), CommissioningHistograms::histos(), latencyCode_, sistrip::mlDqmClient_, CommissioningHistograms::pset(), SamplingAnalysis::setSoNcut(), and sOnCut_.

                                                   {

  // Clear map holding analysis objects
  Analyses::iterator ianal;
  for ( ianal = data().begin(); ianal != data().end(); ianal++ ) {
    if ( ianal->second ) { delete ianal->second; }
  }
  data().clear();
  
  // Iterate through map containing vectors of profile histograms
  HistosMap::const_iterator iter = histos().begin();
  for ( ; iter != histos().end(); iter++ ) {
    // Check vector of histos is not empty (should be 1 histo)
    if ( iter->second.empty() ) {
      edm::LogWarning(mlDqmClient_)
           << "[SamplingHistograms::" << __func__ << "]"
           << " Zero collation histograms found!";
      continue;
    }
    
    // Retrieve pointers to profile histos for this FED channel 
    vector<TH1*> profs;
    Histos::const_iterator ihis = iter->second.begin();
    for ( ; ihis != iter->second.end(); ihis++ ) {
      TProfile* prof = ExtractTObject<TProfile>().extract( (*ihis)->me_ );
      if ( prof ) { profs.push_back(prof); }
    } 
    
    // Perform histo analysis
    SamplingAnalysis* anal = new SamplingAnalysis( iter->first );
    anal->setSoNcut(sOnCut_);
    SamplingAlgorithm algo( this->pset(), anal, latencyCode_ );
    algo.analysis( profs );
    data()[iter->first] = anal; 
    
  }
  
}

Member Data Documentation

Definition at line 25 of file SamplingHistograms.h.

Referenced by histoAnalysis(), and SamplingHistograms().

float SamplingHistograms::sOnCut_ [private]

Definition at line 23 of file SamplingHistograms.h.

Referenced by configure(), and histoAnalysis().