CMS 3D CMS Logo

Functions

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/DQM/SiStripHistoricInfoClient/bin/SiStripHDQMInspector.cc File Reference

#include "DQMServices/Diagnostic/interface/HDQMInspector.h"
#include "DQM/SiStripHistoricInfoClient/interface/HDQMInspectorConfigSiStrip.h"
#include "DQMServices/Diagnostic/interface/DQMHistoryTrendsConfig.h"
#include "DQMServices/Diagnostic/interface/DQMHistoryCreateTrend.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include <string>
#include <vector>
#include "FWCore/FWLite/interface/AutoLibraryLoader.h"
#include <TROOT.h>
#include <TFile.h>
#include <TSystem.h>

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
string multiItems (const vector< string > &subDetectors, const string &item)
 Simple helper function for building the string for TIB,TOB,TEC,TID items.
void runTrackingInspector (const string &dbName, const string &tagName, const string &Password, const string &whiteListFile, const int Start, const int End, const int nRuns)
void SiStripHDQMInspector (const string &dbName, const string &tagName, const string &password, const std::string &whiteListFile, const int start, const int end)
void SiStripHDQMInspector (const string &dbName, const string &tagName, const string &password, const std::string &whiteListFile, const int nRuns)

Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 160 of file SiStripHDQMInspector.cc.

References dtNoiseDBValidation_cfg::cerr, gather_cfg::cout, AutoLibraryLoader::enable(), and SiStripHDQMInspector().

{
  gSystem->Load( "libFWCoreFWLite" );
  AutoLibraryLoader::enable();

  if (argc != 6 && argc != 7) {
    std::cerr << "Usage: " << argv[0] << " [Database] [TagName] [Password] [WhiteListFile] [NRuns] " << std::endl;
    std::cerr << "Or:    " << argv[0] << " [Database] [TagName] [Password] [WhiteListFile] [FirstRun] [LastRun] " << std::endl;
    return 1;
  }

  if (argc == 6) {
    std::cout << "Creating trends for NRuns = " << argv[5] << " for tag: " << argv[2] << std::endl;
    SiStripHDQMInspector( argv[1], argv[2], argv[3], argv[4], atoi(argv[5]) );
  } else if(argc == 7) {
    std::cout << "Creating trends for range:  " << argv[5] << " " << argv[6] << " for tag: " << argv[2] << std::endl;
    SiStripHDQMInspector( argv[1], argv[2], argv[3], argv[4], atoi(argv[5]), atoi(argv[6]) );
  }

  return 0;
}
string multiItems ( const vector< string > &  subDetectors,
const string &  item 
)

Simple helper function for building the string for TIB,TOB,TEC,TID items.

Definition at line 18 of file SiStripHDQMInspector.cc.

Referenced by runTrackingInspector().

{
  string multiItems;
  if( !subDetectors.empty() ) {
    // Fill the first and then the others, prepending the rest with a ","
    vector<string>::const_iterator subDet = subDetectors.begin();
    multiItems.append(*subDet+"@"+item);
    ++subDet;
    for( ; subDet != subDetectors.end(); ++subDet ) {
      multiItems.append(","+*subDet+"@"+item);
    }
  }
  return multiItems;
}
void runTrackingInspector ( const string &  dbName,
const string &  tagName,
const string &  Password,
const string &  whiteListFile,
const int  Start,
const int  End,
const int  nRuns 
)

Extraction of the summary information using DQMServices/Diagnostic/test/HDQMInspector.
The sqlite database should have been filled using the new SiPixelHistoryDQMService.

Definition at line 37 of file SiStripHDQMInspector.cc.

References DQMHistoryCreateTrend::closeFile(), HDQMInspectorConfigBase::computeIntegralList(), HDQMDatabaseProducer::config, multiItems(), DQMHistoryCreateTrend::setBlackList(), DQMHistoryCreateTrend::setDB(), DQMHistoryCreateTrend::setDebug(), DQMHistoryCreateTrend::setDoStat(), DQMHistoryCreateTrend::setSkip99s(), and DQMHistoryCreateTrend::setWhiteListFromFile().

Referenced by SiStripHDQMInspector(), and TrackingHDQMInspector().

{
  // IMPORTANT SETTINGS:
  string condition = "";
  // string condition = "369098752@Summary_TotalNumberOfClusters_OffTrack@entries > 10000 || 436207616@Summary_TotalNumberOfClusters_OffTrack@entries > 10000 || 402653184@Summary_TotalNumberOfClusters_OffTrack@entries > 10000 || 469762048@Summary_TotalNumberOfClusters_OffTrack@entries > 10000";
  string blackList = "109468";

  // string whiteList = readListFromFile(whiteListFile);

  string siStripTracker = "268435456";
  vector<string> subDetectors;
  subDetectors.push_back("369098752"); // TIB (check)
  subDetectors.push_back("436207616"); // TOB (check)
  // subDetectors.push_back("402653184"); // TID (check)
  subDetectors.push_back("402661376"); // TID- (check)
  subDetectors.push_back("402669568"); // TID+ (check)
  // subDetectors.push_back("469762048"); // TEC (check)
  subDetectors.push_back("470024192"); // TEC- (check)
  subDetectors.push_back("470286336"); // TEC+ (check)
  // -------------------

  HDQMInspectorConfigSiStrip siStripConfig;
  vector<string> ItemsForIntegration;
  ItemsForIntegration.push_back("TotalNumberOfClusters_OnTrack_entries");
  siStripConfig.computeIntegralList(ItemsForIntegration);
  DQMHistoryCreateTrend makeTrend(&siStripConfig);

  // Database and output configuration
  // makeTrend.setDB("oracle://cms_orcoff_prep/CMS_DQM_31X_OFFLINE",tagName,"cms_dqm_31x_offline", Password,"");
  // makeTrend.setDB(dbName,tagName,"cms_dqm_31x_offline", Password,"");
  makeTrend.setDB(dbName,tagName,"/afs/cern.ch/cms/DB/conddb");
  // makeTrend.setDB(dbName,tagName,"CMS_COND_GENERAL_R", Password,"");
  makeTrend.setDebug(0);
  makeTrend.setDoStat(1);
  makeTrend.setSkip99s(true);
  makeTrend.setBlackList(blackList);
  // makeTrend.setWhiteList(whiteList);
  makeTrend.setWhiteListFromFile(whiteListFile);

  // Definition of trends
  typedef DQMHistoryTrendsConfig Trend;
  vector<Trend> config;
  config.push_back(Trend( multiItems(subDetectors, "Summary_TotalNumberOfClusters_OnTrack@mean"), "OnTrackClusters_mean.gif", 0,
                          condition+"", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_TotalNumberOfClusters_OnTrack@entries"), "OnTrackClusters_entries.gif", 0,
                          condition+"&& 369098752@Summary_TotalNumberOfClusters_OnTrack@entries > 0", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_TotalNumberOfClusters_OffTrack@mean"), "TotalNumberOfClusters_OffTrack_mean.gif", 0,
                          condition+"&& 369098752@Summary_TotalNumberOfClusters_OffTrack@mean > 0", "", Start, End, nRuns, 0, 1000 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_TotalNumberOfClusters_OffTrack@entries"), "TotalNumberOfClusters_OffTrack_entries.gif", 0,
                          condition+"&& 369098752@Summary_TotalNumberOfClusters_OffTrack@entries > 0", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterChargeCorr_OnTrack@landauPeak"), "ClusterChargeCorr_OnTrack_landau.gif", 0,
                          condition+"&& 369098752@Summary_ClusterChargeCorr_OnTrack@entries > 10000", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterCharge_OffTrack@mean"), "ClusterCharge_OffTrack_mean.gif", 0,
                          condition+"&& 369098752@Summary_ClusterCharge_OffTrack@entries > 10000", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterCharge_OffTrack@landauPeak"), "ClusterCharge_OffTrack_landau.gif", 0,
                          condition+"&& 369098752@Summary_ClusterCharge_OffTrack@entries > 10000", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterNoise_OnTrack@gaussMean"), "ClusterNoise_OnTrack_gauss.gif", 0,
                          condition+"&& 369098752@Summary_ClusterNoise_OnTrack@entries > 10000", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterNoise_OffTrack@gaussMean"), "ClusterNoise_OffTrack_gauss.gif", 0,
                          condition+"&& 369098752@Summary_ClusterNoise_OffTrack@entries > 10000", "", Start, End, nRuns, 0, 8 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterStoNCorr_OnTrack@landauPeak"), "ClusterStoNCorr_OnTrack_landauPeak.gif", 0,
                          condition+"&& 369098752@Summary_ClusterStoNCorr_OnTrack@landauPeak > 0", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterStoNCorr_OnTrack@mean"), "ClusterStoNCorr_OnTrack_mean.gif", 0,
                          condition+"&& 369098752@Summary_ClusterStoNCorr_OnTrack@mean > 0", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterStoN_OffTrack@landauPeak"), "ClusterStoN_OffTrack_landauPeak.gif", 0,
                          condition+"&& 369098752@Summary_ClusterStoN_OffTrack@entries > 10000", "", Start, End, nRuns, 0, 60 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterStoN_OffTrack@mean"), "ClusterStoN_OffTrack_mean.gif", 0,
                          condition+"&& 369098752@Summary_ClusterStoN_OffTrack@entries > 10000", "", Start, End, nRuns, 0, 80 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterWidth_OnTrack@mean"), "ClusterWidth_OnTrack_mean.gif", 0,
                          condition+"&& 369098752@Summary_ClusterWidth_OnTrack@mean > 0", "", Start, End, nRuns, 0 ));
  config.push_back(Trend( multiItems(subDetectors, "Summary_ClusterWidth_OffTrack@mean"), "ClusterWidth_OffTrack_mean.gif", 0,
                          condition+"", "", Start, End, nRuns, 0, 7 ));
  config.push_back(Trend( multiItems(subDetectors, "TotalNumberOfClusterProfile@yMean"), "TotalNumberOfClusterProfile_ymean.gif", 0,
                          condition+"", "", Start, End, nRuns, 0, 15 ));

  // FED errors entries
  config.push_back(Trend( siStripTracker+"@nFEDErrors@entries", "nFEDErrors.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nBadActiveChannelStatusBits@entries", "nBadActiveChannelStatusBits.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nBadChannelStatusBits@entries", "nBadChannelStatusBits.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nAPVAddressError@entries", "nAPVAddressError.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nUnlocked@entries", "nUnlocked.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nOutOfSync@entries", "nOutOfSync.gif", 0,
                          condition, "", Start, End, nRuns ));

  // FED errors means
  config.push_back(Trend( siStripTracker+"@nFEDErrors@mean", "nFEDErrors_mean.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nBadActiveChannelStatusBits@mean", "nBadActiveChannelStatusBits_mean.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nBadChannelStatusBits@mean", "nBadChannelStatusBits_mean.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nAPVAddressError@mean", "nAPVAddressError_mean.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nUnlocked@mean", "nUnlocked_mean.gif", 0,
                          condition, "", Start, End, nRuns ));
  config.push_back(Trend( siStripTracker+"@nOutOfSync@mean", "nOutOfSync_mean.gif", 0,
                          condition, "", Start, End, nRuns ));

  // Creation of trends
  for_each(config.begin(), config.end(), makeTrend);

  // Close the output file
  makeTrend.closeFile();
}
void SiStripHDQMInspector ( const string &  dbName,
const string &  tagName,
const string &  password,
const std::string &  whiteListFile,
const int  start,
const int  end 
)

Definition at line 148 of file SiStripHDQMInspector.cc.

References runTrackingInspector().

Referenced by main().

{
  runTrackingInspector(dbName, tagName, password, whiteListFile, start, end, 0);
}
void SiStripHDQMInspector ( const string &  dbName,
const string &  tagName,
const string &  password,
const std::string &  whiteListFile,
const int  nRuns 
)

Definition at line 154 of file SiStripHDQMInspector.cc.

References runTrackingInspector().

{
  runTrackingInspector(dbName, tagName, password, whiteListFile, 0, 0, nRuns);
}