CMS 3D CMS Logo

Public Member Functions | Private Attributes

GlobalHitsProdHistStripper Class Reference

#include <GlobalHitsProdHistStripper.h>

Inheritance diagram for GlobalHitsProdHistStripper:
edm::EDAnalyzer

List of all members.

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
virtual void beginJob (void)
virtual void beginRun (const edm::Run &, const edm::EventSetup &)
virtual void endJob ()
virtual void endRun (const edm::Run &, const edm::EventSetup &)
 GlobalHitsProdHistStripper (const edm::ParameterSet &)
virtual ~GlobalHitsProdHistStripper ()

Private Attributes

unsigned int count
DQMStoredbe
bool doOutput
std::string fName
int frequency
bool getAllProvenances
std::vector< MonitorElement * > me
MonitorElementmeCaloEcal [2]
MonitorElementmeCaloEcalE [2]
MonitorElementmeCaloEcalEta
MonitorElementmeCaloEcalPhi
MonitorElementmeCaloEcalToF [2]
MonitorElementmeCaloHcal [2]
MonitorElementmeCaloHcalE [2]
MonitorElementmeCaloHcalEta
MonitorElementmeCaloHcalPhi
MonitorElementmeCaloHcalToF [2]
MonitorElementmeCaloPreSh [2]
MonitorElementmeCaloPreShE [2]
MonitorElementmeCaloPreShEta
MonitorElementmeCaloPreShPhi
MonitorElementmeCaloPreShToF [2]
MonitorElementmeGeantTrkE
MonitorElementmeGeantTrkPt
MonitorElementmeGeantVtxX [2]
MonitorElementmeGeantVtxY [2]
MonitorElementmeGeantVtxZ [2]
MonitorElementmeMCG4Trk [2]
MonitorElementmeMCG4Vtx [2]
MonitorElementmeMCRGP [2]
MonitorElementmeMuon [2]
MonitorElementmeMuonCscToF [2]
MonitorElementmeMuonCscZ
MonitorElementmeMuonDtR
MonitorElementmeMuonDtToF [2]
MonitorElementmeMuonEta
MonitorElementmeMuonPhi
MonitorElementmeMuonRpcBR
MonitorElementmeMuonRpcBToF [2]
MonitorElementmeMuonRpcFToF [2]
MonitorElementmeMuonRpcFZ
MonitorElementmeTrackerPx [2]
MonitorElementmeTrackerPxBR
MonitorElementmeTrackerPxBToF
MonitorElementmeTrackerPxEta
MonitorElementmeTrackerPxFToF
MonitorElementmeTrackerPxFZ
MonitorElementmeTrackerPxPhi
MonitorElementmeTrackerSi [2]
MonitorElementmeTrackerSiBR
MonitorElementmeTrackerSiBToF
MonitorElementmeTrackerSiEta
MonitorElementmeTrackerSiFToF
MonitorElementmeTrackerSiFZ
MonitorElementmeTrackerSiPhi
std::map< std::string,
MonitorElement * > 
monitorElements
std::string outputfile
bool printProvenanceInfo
int verbosity
int vtxunit

Detailed Description

Class to fill dqm monitor elements from existing EDM file

Date:
2010/01/06 14:24:50
Revision:
1.7
Author:
M. Strang SUNY-Buffalo

Definition at line 44 of file GlobalHitsProdHistStripper.h.


Constructor & Destructor Documentation

GlobalHitsProdHistStripper::GlobalHitsProdHistStripper ( const edm::ParameterSet iPSet) [explicit]

Definition at line 14 of file GlobalHitsProdHistStripper.cc.

References dbe, doOutput, fName, frequency, getAllProvenances, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), cmsCodeRules::cppFunctionSkipper::operator, outputfile, printProvenanceInfo, DQMStore::setVerbose(), DQMStore::showDirStructure(), verbosity, and vtxunit.

  : fName(""), verbosity(0), frequency(0), vtxunit(0), 
    getAllProvenances(false), printProvenanceInfo(false), outputfile(""),
    count(0)
{
  std::string MsgLoggerCat = 
    "GlobalHitsProdHistStripper_GlobalHitsProdHistStripper";

  // get information from parameter set
  fName = iPSet.getUntrackedParameter<std::string>("Name");
  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
  frequency = iPSet.getUntrackedParameter<int>("Frequency");
  vtxunit = iPSet.getUntrackedParameter<int>("VtxUnit");
  outputfile = iPSet.getParameter<std::string>("OutputFile");
  doOutput = iPSet.getParameter<bool>("DoOutput");
  edm::ParameterSet m_Prov =
    iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
  getAllProvenances = 
    m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
  printProvenanceInfo = 
    m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");


  // use value of first digit to determine default output level (inclusive)
  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
  verbosity %= 10;

  // get dqm info
  dbe = 0;
  dbe = edm::Service<DQMStore>().operator->();
  if (dbe) {
    if (verbosity > 0 ) {
      dbe->setVerbose(1);
    } else {
      dbe->setVerbose(0);
    }
  }

  if (dbe) {
    if (verbosity > 0 ) dbe->showDirStructure();
  }

  // print out Parameter Set information being used
  if (verbosity >= 0) {
    edm::LogInfo(MsgLoggerCat) 
      << "\n===============================\n"
      << "Initialized as EDAnalyzer with parameter values:\n"
      << "    Name           = " << fName << "\n"
      << "    Verbosity      = " << verbosity << "\n"
      << "    Frequency      = " << frequency << "\n"
      << "    VtxUnit        = " << vtxunit << "\n"
      << "    OutputFile     = " << outputfile << "\n"
      << "    DoOutput      = " << doOutput << "\n"
      << "    GetProv        = " << getAllProvenances << "\n"
      << "    PrintProv      = " << printProvenanceInfo << "\n"
      << "===============================\n";
  }

}
GlobalHitsProdHistStripper::~GlobalHitsProdHistStripper ( ) [virtual]

Definition at line 76 of file GlobalHitsProdHistStripper.cc.

References dbe, doOutput, outputfile, and DQMStore::save().

{
  if (doOutput)
    if (outputfile.size() != 0 && dbe) dbe->save(outputfile);
}

Member Function Documentation

void GlobalHitsProdHistStripper::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [virtual]

Implements edm::EDAnalyzer.

Definition at line 277 of file GlobalHitsProdHistStripper.cc.

{
  return;
}
void GlobalHitsProdHistStripper::beginJob ( void  ) [virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 82 of file GlobalHitsProdHistStripper.cc.

{
  return;
}
void GlobalHitsProdHistStripper::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
) [virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 96 of file GlobalHitsProdHistStripper.cc.

References count, frequency, edm::Run::getAllProvenance(), getAllProvenances, i, printProvenanceInfo, edm::RunBase::run(), and verbosity.

{
  std::string MsgLoggerCat = "GlobalHitsProdHistStripper_beginRun";
  // keep track of number of runs processed
  ++count;  

  int nrun = iRun.run();

  if (verbosity > 0) {
    edm::LogInfo(MsgLoggerCat)
      << "Processing run " << nrun << " (" << count << " runs total)";
  } else if (verbosity == 0) {
    if (nrun%frequency == 0 || count == 1) {
      edm::LogInfo(MsgLoggerCat)
        << "Processing run " << nrun << " (" << count << " runs total)";
    }
  }

  if (getAllProvenances) {

    std::vector<const edm::Provenance*> AllProv;
    iRun.getAllProvenance(AllProv);

    if (verbosity >= 0)
      edm::LogInfo(MsgLoggerCat)
        << "Number of Provenances = " << AllProv.size();

    if (printProvenanceInfo && (verbosity >= 0)) {
      TString eventout("\nProvenance info:\n");      

      for (unsigned int i = 0; i < AllProv.size(); ++i) {
        eventout += "\n       ******************************";
        eventout += "\n       Module       : ";
        eventout += AllProv[i]->moduleLabel();
        eventout += "\n       ProductID    : ";
        eventout += AllProv[i]->productID().id();
        eventout += "\n       ClassName    : ";
        eventout += AllProv[i]->className();
        eventout += "\n       InstanceName : ";
        eventout += AllProv[i]->productInstanceName();
        eventout += "\n       BranchName   : ";
        eventout += AllProv[i]->branchName();
      }
      eventout += "\n       ******************************\n";
      edm::LogInfo(MsgLoggerCat) << eventout << "\n";
      printProvenanceInfo = false;
    }
    getAllProvenances = false;
  }

  return;
}
void GlobalHitsProdHistStripper::endJob ( void  ) [virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 87 of file GlobalHitsProdHistStripper.cc.

References count, and verbosity.

{
  std::string MsgLoggerCat = "GlobalHitsProdHistStripper_endJob";
  if (verbosity >= 0)
    edm::LogInfo(MsgLoggerCat) 
      << "Terminating having processed " << count << " runs.";
  return;
}
void GlobalHitsProdHistStripper::endRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
) [virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 150 of file GlobalHitsProdHistStripper.cc.

References DQMStore::book1D(), dbe, edm::Run::getManyByType(), i, edm::HandleBase::isValid(), me, moduleLabel(), edm::HandleBase::provenance(), DQMStore::setCurrentFolder(), relativeConstraints::value, and ExpressReco_HICollisions_FallBack::x.

{
  std::string MsgLoggerCat = "GlobalHitsProdHistStripper_endRun";

  edm::Handle<TH1F> histogram1D;
  std::vector<edm::Handle<TH1F> > allhistogram1D;
  iRun.getManyByType(allhistogram1D);

  me.resize(allhistogram1D.size());

  for (uint i = 0; i < allhistogram1D.size(); ++i) {
    histogram1D = allhistogram1D[i];
    if(!histogram1D.isValid()) {
      edm::LogWarning(MsgLoggerCat)
        << "Invalid histogram extracted from event.";
      continue;      
    }

    me[i] = 0;

    /*
    std::cout << "Extracting histogram: " << std::endl
              << "       Module       : "
              << (histogram1D.provenance()->product()).moduleLabel()
              << std::endl
              << "       ProductID    : "
              << (histogram1D.provenance()->product()).productID().id()
              << std::endl
              << "       ClassName    : "
              << (histogram1D.provenance()->product()).className()
              << std::endl
              << "       InstanceName : "
              << (histogram1D.provenance()->product()).productInstanceName()
              << std::endl
              << "       BranchName   : "
              << (histogram1D.provenance()->product()).branchName()
              << std::endl;
    */

    if ((histogram1D.provenance()->product()).moduleLabel()
        != "globalhitsprodhist") continue;
   
    std::string histname = histogram1D->GetName();
    
    std::string subhist1 = histname.substr(1,5);
    std::string subhist2 = histname.substr(1,4);

    if (dbe) {
      if (subhist1 == "CaloE" || subhist1 == "CaloP") {
        dbe->setCurrentFolder("GlobalHitsV/ECal");
      } else if (subhist1 == "CaloH") {
        dbe->setCurrentFolder("GlobalHitsV/HCal");
      } else if (subhist1 == "Geant" || subhist2 == "MCG4" ||
                 subhist1 == "MCRGP") {
        dbe->setCurrentFolder("GlobalHitsV/MCGeant");
      } else if (subhist2 == "Muon") {
        dbe->setCurrentFolder("GlobalHitsV/Muon");
      } else if (subhist1 == "Track") {
        dbe->setCurrentFolder("GlobalHitsV/Tracker");
      }
     
      me[i] = dbe->book1D(histname,histogram1D->GetTitle(),
                       histogram1D->GetXaxis()->GetNbins(),
                       histogram1D->GetXaxis()->GetXmin(),
                       histogram1D->GetXaxis()->GetXmax());
      me[i]->setAxisTitle(histogram1D->GetXaxis()->GetTitle(),1);
      me[i]->setAxisTitle(histogram1D->GetYaxis()->GetTitle(),2);
      
    }
    
    std::string mename = me[i]->getName();
    
    //std::cout << "Extracting histogram " << histname
    //        << " into MonitorElement " << mename
    //        << std::endl;
    
    for (Int_t x = 1; x <= histogram1D->GetXaxis()->GetNbins(); ++x) {
      Double_t binx = histogram1D->GetBinCenter(x);
      Double_t value = histogram1D->GetBinContent(x);
      me[i]->Fill(binx,value);
    }
  }
  return;
}

Member Data Documentation

unsigned int GlobalHitsProdHistStripper::count [private]

Definition at line 161 of file GlobalHitsProdHistStripper.h.

Referenced by beginRun(), and endJob().

std::string GlobalHitsProdHistStripper::fName [private]

Definition at line 62 of file GlobalHitsProdHistStripper.h.

Referenced by GlobalHitsProdHistStripper().

Definition at line 64 of file GlobalHitsProdHistStripper.h.

Referenced by beginRun(), and GlobalHitsProdHistStripper().

Definition at line 66 of file GlobalHitsProdHistStripper.h.

Referenced by beginRun(), and GlobalHitsProdHistStripper().

Definition at line 76 of file GlobalHitsProdHistStripper.h.

Referenced by endRun().

Definition at line 90 of file GlobalHitsProdHistStripper.h.

Definition at line 91 of file GlobalHitsProdHistStripper.h.

Definition at line 94 of file GlobalHitsProdHistStripper.h.

Definition at line 93 of file GlobalHitsProdHistStripper.h.

Definition at line 92 of file GlobalHitsProdHistStripper.h.

Definition at line 105 of file GlobalHitsProdHistStripper.h.

Definition at line 106 of file GlobalHitsProdHistStripper.h.

Definition at line 109 of file GlobalHitsProdHistStripper.h.

Definition at line 108 of file GlobalHitsProdHistStripper.h.

Definition at line 107 of file GlobalHitsProdHistStripper.h.

Definition at line 97 of file GlobalHitsProdHistStripper.h.

Definition at line 98 of file GlobalHitsProdHistStripper.h.

Definition at line 101 of file GlobalHitsProdHistStripper.h.

Definition at line 100 of file GlobalHitsProdHistStripper.h.

Definition at line 99 of file GlobalHitsProdHistStripper.h.

Definition at line 86 of file GlobalHitsProdHistStripper.h.

Definition at line 85 of file GlobalHitsProdHistStripper.h.

Definition at line 81 of file GlobalHitsProdHistStripper.h.

Definition at line 82 of file GlobalHitsProdHistStripper.h.

Definition at line 83 of file GlobalHitsProdHistStripper.h.

Definition at line 84 of file GlobalHitsProdHistStripper.h.

Definition at line 80 of file GlobalHitsProdHistStripper.h.

Definition at line 79 of file GlobalHitsProdHistStripper.h.

Definition at line 137 of file GlobalHitsProdHistStripper.h.

Definition at line 149 of file GlobalHitsProdHistStripper.h.

Definition at line 150 of file GlobalHitsProdHistStripper.h.

Definition at line 145 of file GlobalHitsProdHistStripper.h.

Definition at line 144 of file GlobalHitsProdHistStripper.h.

Definition at line 139 of file GlobalHitsProdHistStripper.h.

Definition at line 138 of file GlobalHitsProdHistStripper.h.

Definition at line 158 of file GlobalHitsProdHistStripper.h.

Definition at line 157 of file GlobalHitsProdHistStripper.h.

Definition at line 155 of file GlobalHitsProdHistStripper.h.

Definition at line 156 of file GlobalHitsProdHistStripper.h.

Definition at line 116 of file GlobalHitsProdHistStripper.h.

Definition at line 120 of file GlobalHitsProdHistStripper.h.

Definition at line 119 of file GlobalHitsProdHistStripper.h.

Definition at line 118 of file GlobalHitsProdHistStripper.h.

Definition at line 121 of file GlobalHitsProdHistStripper.h.

Definition at line 122 of file GlobalHitsProdHistStripper.h.

Definition at line 117 of file GlobalHitsProdHistStripper.h.

Definition at line 128 of file GlobalHitsProdHistStripper.h.

Definition at line 132 of file GlobalHitsProdHistStripper.h.

Definition at line 131 of file GlobalHitsProdHistStripper.h.

Definition at line 130 of file GlobalHitsProdHistStripper.h.

Definition at line 133 of file GlobalHitsProdHistStripper.h.

Definition at line 134 of file GlobalHitsProdHistStripper.h.

Definition at line 129 of file GlobalHitsProdHistStripper.h.

Definition at line 74 of file GlobalHitsProdHistStripper.h.

Definition at line 67 of file GlobalHitsProdHistStripper.h.

Referenced by beginRun(), and GlobalHitsProdHistStripper().

Definition at line 63 of file GlobalHitsProdHistStripper.h.

Referenced by beginRun(), endJob(), and GlobalHitsProdHistStripper().

Definition at line 65 of file GlobalHitsProdHistStripper.h.

Referenced by GlobalHitsProdHistStripper().