CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Private Attributes

L1TGCT Class Reference

#include <L1TGCT.h>

Inheritance diagram for L1TGCT:
edm::EDAnalyzer

List of all members.

Public Member Functions

 L1TGCT (const edm::ParameterSet &ps)
virtual ~L1TGCT ()

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
void beginJob (void)
void endJob (void)

Private Attributes

DQMStoredbe
edm::InputTag gctCenJetsSource_
edm::InputTag gctEnergySumsSource_
edm::InputTag gctForJetsSource_
edm::InputTag gctIsoEmSource_
edm::InputTag gctNonIsoEmSource_
edm::InputTag gctTauJetsSource_
MonitorElementl1GctAllEmOccRankBx_
MonitorElementl1GctAllJetsEtEtaPhi_
MonitorElementl1GctAllJetsOccEtaPhi_
MonitorElementl1GctAllJetsOccRankBx_
MonitorElementl1GctCenJetsEtEtaPhi_
MonitorElementl1GctCenJetsOccEtaPhi_
MonitorElementl1GctCenJetsRank_
MonitorElementl1GctEtHad_
MonitorElementl1GctEtHadOccBx_
MonitorElementl1GctEtHadOf_
MonitorElementl1GctEtMiss_
MonitorElementl1GctEtMissHtMissCorr_
MonitorElementl1GctEtMissHtMissCorrPhi_
MonitorElementl1GctEtMissOccBx_
MonitorElementl1GctEtMissOf_
MonitorElementl1GctEtMissPhi_
MonitorElementl1GctEtTotal_
MonitorElementl1GctEtTotalEtHadCorr_
MonitorElementl1GctEtTotalOccBx_
MonitorElementl1GctEtTotalOf_
MonitorElementl1GctForJetsEtEtaPhi_
MonitorElementl1GctForJetsOccEtaPhi_
MonitorElementl1GctForJetsRank_
MonitorElementl1GctHFRing1ETSumNegEta_
MonitorElementl1GctHFRing1ETSumPosEta_
MonitorElementl1GctHFRing1PosEtaNegEta_
MonitorElementl1GctHFRing1TowerCountNegEta_
MonitorElementl1GctHFRing1TowerCountPosEta_
MonitorElementl1GctHFRing1TowerCountPosEtaNegEta_
MonitorElementl1GctHFRing2ETSumNegEta_
MonitorElementl1GctHFRing2ETSumPosEta_
MonitorElementl1GctHFRing2PosEtaNegEta_
MonitorElementl1GctHFRing2TowerCountNegEta_
MonitorElementl1GctHFRing2TowerCountPosEta_
MonitorElementl1GctHFRing2TowerCountPosEtaNegEta_
MonitorElementl1GctHFRingETSumOccBx_
MonitorElementl1GctHFRingRatioNegEta_
MonitorElementl1GctHFRingRatioPosEta_
MonitorElementl1GctHFRingTowerCountOccBx_
MonitorElementl1GctHtMiss_
MonitorElementl1GctHtMissOccBx_
MonitorElementl1GctHtMissOf_
MonitorElementl1GctHtMissPhi_
MonitorElementl1GctIsoEmOccEtaPhi_
MonitorElementl1GctIsoEmRank_
MonitorElementl1GctIsoEmRankEtaPhi_
MonitorElementl1GctNonIsoEmOccEtaPhi_
MonitorElementl1GctNonIsoEmRank_
MonitorElementl1GctNonIsoEmRankEtaPhi_
MonitorElementl1GctTauJetsEtEtaPhi_
MonitorElementl1GctTauJetsOccEtaPhi_
MonitorElementl1GctTauJetsRank_
ofstream logFile_
bool monitorDaemon_
int nev_
std::string outputFile_
bool verbose_

Detailed Description

Definition at line 127 of file L1TGCT.h.


Constructor & Destructor Documentation

L1TGCT::L1TGCT ( const edm::ParameterSet ps)

Definition at line 238 of file L1TGCT.cc.

References dbe, edm::ParameterSet::getUntrackedParameter(), NULL, cmsCodeRules::cppFunctionSkipper::operator, outputFile_, DQMStore::setCurrentFolder(), DQMStore::setVerbose(), and verbose_.

                                         :
  gctCenJetsSource_(ps.getParameter<edm::InputTag>("gctCentralJetsSource")),
  gctForJetsSource_(ps.getParameter<edm::InputTag>("gctForwardJetsSource")),
  gctTauJetsSource_(ps.getParameter<edm::InputTag>("gctTauJetsSource")),
  gctEnergySumsSource_(ps.getParameter<edm::InputTag>("gctEnergySumsSource")),
  gctIsoEmSource_(ps.getParameter<edm::InputTag>("gctIsoEmSource")),
  gctNonIsoEmSource_(ps.getParameter<edm::InputTag>("gctNonIsoEmSource"))
{

  // verbosity switch
  verbose_ = ps.getUntrackedParameter < bool > ("verbose", false);

  if (verbose_)
    edm::LogInfo("L1TGCT") << "L1TGCT: constructor...." << std::endl;


  dbe = NULL;
  if (ps.getUntrackedParameter < bool > ("DQMStore", false)) {
    dbe = edm::Service < DQMStore > ().operator->();
    dbe->setVerbose(0);
  }

  outputFile_ = ps.getUntrackedParameter < std::string > ("outputFile", "");
  if (outputFile_.size() != 0) {
    edm::LogInfo("L1TGCT") << "L1T Monitoring histograms will be saved to "
                           << outputFile_ << std::endl;
  }

  bool disable = ps.getUntrackedParameter<bool>("disableROOToutput", false);
  if(disable){
    outputFile_="";
  }


  if (dbe != NULL) {
    dbe->setCurrentFolder("L1T/L1TGCT");
  }

}
L1TGCT::~L1TGCT ( ) [virtual]

Definition at line 278 of file L1TGCT.cc.

{
}

Member Function Documentation

void L1TGCT::analyze ( const edm::Event e,
const edm::EventSetup c 
) [protected, virtual]

Implements edm::EDAnalyzer.

Definition at line 415 of file L1TGCT.cc.

References MonitorElement::Fill(), gctCenJetsSource_, gctEnergySumsSource_, gctForJetsSource_, gctIsoEmSource_, gctNonIsoEmSource_, gctTauJetsSource_, edm::Event::getByLabel(), i, edm::HandleBase::isValid(), l1GctAllEmOccRankBx_, l1GctAllJetsEtEtaPhi_, l1GctAllJetsOccEtaPhi_, l1GctAllJetsOccRankBx_, l1GctCenJetsEtEtaPhi_, l1GctCenJetsOccEtaPhi_, l1GctCenJetsRank_, l1GctEtHad_, l1GctEtHadOccBx_, l1GctEtHadOf_, l1GctEtMiss_, l1GctEtMissHtMissCorr_, l1GctEtMissHtMissCorrPhi_, l1GctEtMissOccBx_, l1GctEtMissOf_, l1GctEtMissPhi_, l1GctEtTotal_, l1GctEtTotalEtHadCorr_, l1GctEtTotalOccBx_, l1GctEtTotalOf_, l1GctForJetsEtEtaPhi_, l1GctForJetsOccEtaPhi_, l1GctForJetsRank_, l1GctHFRing1ETSumNegEta_, l1GctHFRing1ETSumPosEta_, l1GctHFRing1PosEtaNegEta_, l1GctHFRing1TowerCountNegEta_, l1GctHFRing1TowerCountPosEta_, l1GctHFRing1TowerCountPosEtaNegEta_, l1GctHFRing2ETSumNegEta_, l1GctHFRing2ETSumPosEta_, l1GctHFRing2PosEtaNegEta_, l1GctHFRing2TowerCountNegEta_, l1GctHFRing2TowerCountPosEta_, l1GctHFRing2TowerCountPosEtaNegEta_, l1GctHFRingETSumOccBx_, l1GctHFRingRatioNegEta_, l1GctHFRingRatioPosEta_, l1GctHFRingTowerCountOccBx_, l1GctHtMiss_, l1GctHtMissOccBx_, l1GctHtMissOf_, l1GctHtMissPhi_, l1GctIsoEmOccEtaPhi_, l1GctIsoEmRank_, l1GctIsoEmRankEtaPhi_, l1GctNonIsoEmOccEtaPhi_, l1GctNonIsoEmRank_, l1GctNonIsoEmRankEtaPhi_, l1GctTauJetsEtEtaPhi_, l1GctTauJetsOccEtaPhi_, l1GctTauJetsRank_, CaloMET_cfi::met, python::Vispa::Plugins::EdmBrowser::EdmDataAccessor::ne(), nev_, and verbose_.

{
  nev_++;
  if (verbose_) {
    edm::LogInfo("L1TGCT") << "L1TGCT: analyze...." << std::endl;
  }
  
  // Get all the collections
  edm::Handle < L1GctEmCandCollection > l1IsoEm;
  edm::Handle < L1GctEmCandCollection > l1NonIsoEm;
  edm::Handle < L1GctJetCandCollection > l1CenJets;
  edm::Handle < L1GctJetCandCollection > l1ForJets;
  edm::Handle < L1GctJetCandCollection > l1TauJets;
  edm::Handle < L1GctHFRingEtSumsCollection > l1HFSums; 
  edm::Handle < L1GctHFBitCountsCollection > l1HFCounts;
  edm::Handle < L1GctEtMissCollection >  l1EtMiss;
  edm::Handle < L1GctHtMissCollection >  l1HtMiss;
  edm::Handle < L1GctEtHadCollection >   l1EtHad;
  edm::Handle < L1GctEtTotalCollection > l1EtTotal;

  e.getByLabel(gctIsoEmSource_, l1IsoEm);
  e.getByLabel(gctNonIsoEmSource_, l1NonIsoEm);
  e.getByLabel(gctCenJetsSource_, l1CenJets);
  e.getByLabel(gctForJetsSource_, l1ForJets);
  e.getByLabel(gctTauJetsSource_, l1TauJets);
  e.getByLabel(gctEnergySumsSource_, l1HFSums);
  e.getByLabel(gctEnergySumsSource_, l1HFCounts);  
  e.getByLabel(gctEnergySumsSource_, l1EtMiss);
  e.getByLabel(gctEnergySumsSource_, l1HtMiss);
  e.getByLabel(gctEnergySumsSource_, l1EtHad);
  e.getByLabel(gctEnergySumsSource_, l1EtTotal);

  // Fill histograms

  // Central jets
  if (l1CenJets.isValid()) {
    for (L1GctJetCandCollection::const_iterator cj = l1CenJets->begin();cj != l1CenJets->end(); cj++) {
      // only plot central BX
      if (cj->bx()==0) {
        l1GctCenJetsRank_->Fill(cj->rank());
        // only plot eta and phi maps for non-zero candidates
        if (cj->rank()) {
          l1GctAllJetsEtEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi(),cj->rank());
          l1GctAllJetsOccEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi());
          l1GctCenJetsEtEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi(),cj->rank());
          l1GctCenJetsOccEtaPhi_->Fill(cj->regionId().ieta(),cj->regionId().iphi());
        }
      }
      if (cj->rank()) l1GctAllJetsOccRankBx_->Fill(cj->bx(),cj->rank()); // for all BX
    }
  } else {    
    edm::LogWarning("DataNotFound") << " Could not find l1CenJets label was " << gctCenJetsSource_ ;
  }

  // Forward jets
  if (l1ForJets.isValid()) {
    for (L1GctJetCandCollection::const_iterator fj = l1ForJets->begin(); fj != l1ForJets->end(); fj++) {
      // only plot central BX
      if (fj->bx()==0) {
        l1GctForJetsRank_->Fill(fj->rank());
        // only plot eta and phi maps for non-zero candidates
        if (fj->rank()) {
          l1GctAllJetsEtEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi(),fj->rank());
          l1GctAllJetsOccEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi());
          l1GctForJetsEtEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi(),fj->rank());
          l1GctForJetsOccEtaPhi_->Fill(fj->regionId().ieta(),fj->regionId().iphi());    
        }
      }
      if (fj->rank()) l1GctAllJetsOccRankBx_->Fill(fj->bx(),fj->rank()); // for all BX
    }
  } else {    
    edm::LogWarning("DataNotFound") << " Could not find l1ForJets label was " << gctForJetsSource_ ;
  }

  // Tau jets
  if (l1TauJets.isValid()) {
    for (L1GctJetCandCollection::const_iterator tj = l1TauJets->begin(); tj != l1TauJets->end(); tj++) {
      // only plot central BX
      if (tj->bx()==0) {
        l1GctTauJetsRank_->Fill(tj->rank());
        // only plot eta and phi maps for non-zero candidates
        if (tj->rank()) {
          l1GctTauJetsEtEtaPhi_->Fill(tj->regionId().ieta(),tj->regionId().iphi(),tj->rank());
          l1GctTauJetsOccEtaPhi_->Fill(tj->regionId().ieta(),tj->regionId().iphi());
        }
      }
      if (tj->rank()) l1GctAllJetsOccRankBx_->Fill(tj->bx(),tj->rank()); // for all BX
    }
  } else {    
    edm::LogWarning("DataNotFound") << " Could not find l1TauJets label was " << gctTauJetsSource_ ;
  }

  // Missing ET
  if (l1EtMiss.isValid()) { 
    for (L1GctEtMissCollection::const_iterator met = l1EtMiss->begin(); met != l1EtMiss->end(); met++) {
      // only plot central BX
      if (met->bx()==0) {
        if (met->overFlow() == 0 && met->et() > 0) {
          //Avoid problems with met=0 candidates affecting MET_PHI plots
          l1GctEtMiss_->Fill(met->et());
          l1GctEtMissPhi_->Fill(met->phi());
        }
        l1GctEtMissOf_->Fill(met->overFlow());
      }
      if (met->overFlow() == 0 && met->et() > 0) l1GctEtMissOccBx_->Fill(met->bx(),met->et()); // for all BX
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1EtMiss label was " << gctEnergySumsSource_ ;    
  }

  // Missing HT
  if (l1HtMiss.isValid()) { 
    for (L1GctHtMissCollection::const_iterator mht = l1HtMiss->begin(); mht != l1HtMiss->end(); mht++) {
      // only plot central BX
      if (mht->bx()==0) {
        if (mht->overFlow() == 0 && mht->et() > 0) {
          //Avoid problems with mht=0 candidates affecting MHT_PHI plots
          l1GctHtMiss_->Fill(mht->et());
          l1GctHtMissPhi_->Fill(mht->phi());
        }
        l1GctHtMissOf_->Fill(mht->overFlow());
      }
      if (mht->overFlow() == 0 && mht->et() > 0) l1GctHtMissOccBx_->Fill(mht->bx(),mht->et()); // for all BX
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1HtMiss label was " << gctEnergySumsSource_ ;    
  }

  // Missing ET HT correlations
  if (l1HtMiss.isValid() && l1EtMiss.isValid()) { 
    if (l1HtMiss->size() == l1EtMiss->size()) {
      for (unsigned i=0; i<l1HtMiss->size(); i++) {
        if (l1HtMiss->at(i).overFlow() == 0 && l1EtMiss->at(i).overFlow() == 0 && 
            l1HtMiss->at(i).bx() == 0 && l1EtMiss->at(i).bx() == 0) {
          // Avoid problems overflows and only plot central BX
          l1GctEtMissHtMissCorr_->Fill(l1EtMiss->at(i).et(),l1HtMiss->at(i).et());
          if (l1HtMiss->at(i).et() && l1EtMiss->at(i).et()){ // Don't plot phi if one or other is zero
            l1GctEtMissHtMissCorrPhi_->Fill(l1EtMiss->at(i).phi(),l1HtMiss->at(i).phi());
          }
        }
      }
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1EtMiss or l1HtMiss label was " << gctEnergySumsSource_ ;    
  }

  // HT 
  if (l1EtHad.isValid()) {
    for (L1GctEtHadCollection::const_iterator ht = l1EtHad->begin(); ht != l1EtHad->end(); ht++) {
      // only plot central BX
      if (ht->bx()==0) {
        l1GctEtHad_->Fill(ht->et());
        l1GctEtHadOf_->Fill(ht->overFlow());
      }
      l1GctEtHadOccBx_->Fill(ht->bx(),ht->et()); // for all BX
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1EtHad label was " << gctEnergySumsSource_ ;    
  }

  // Total ET
  if (l1EtTotal.isValid()) {
    for (L1GctEtTotalCollection::const_iterator et = l1EtTotal->begin(); et != l1EtTotal->end(); et++) {
      // only plot central BX
      if (et->bx()==0) {
        l1GctEtTotal_->Fill(et->et());
        l1GctEtTotalOf_->Fill(et->overFlow());
      }
      l1GctEtTotalOccBx_->Fill(et->bx(),et->et()); // for all BX
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1EtTotal label was " << gctEnergySumsSource_ ;    
  }

  // Total ET HT correlations
  if (l1EtTotal.isValid() && l1EtHad.isValid()) { 
    if (l1EtTotal->size() == l1EtHad->size()) {
      for (unsigned i=0; i<l1EtHad->size(); i++) {
        if (l1EtHad->at(i).overFlow() == 0 && l1EtTotal->at(i).overFlow() == 0 && 
            l1EtHad->at(i).bx() == 0 && l1EtTotal->at(i).bx() == 0) {
          // Avoid problems overflows and only plot central BX
          l1GctEtTotalEtHadCorr_->Fill(l1EtTotal->at(i).et(),l1EtHad->at(i).et());
        }
      }
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1EtTotal or l1EtHad label was " << gctEnergySumsSource_ ;    
  }

  //HF Ring Et Sums
  if (l1HFSums.isValid()) {
    for (L1GctHFRingEtSumsCollection::const_iterator hfs=l1HFSums->begin(); hfs!=l1HFSums->end(); hfs++){ 
      // only plot central BX
      if (hfs->bx()==0) {
        // Individual ring Et sums
        l1GctHFRing1ETSumPosEta_->Fill(hfs->etSum(0));
        l1GctHFRing1ETSumNegEta_->Fill(hfs->etSum(1));
        l1GctHFRing2ETSumPosEta_->Fill(hfs->etSum(2));
        l1GctHFRing2ETSumNegEta_->Fill(hfs->etSum(3));
        // Ratio of ring Et sums
        if (hfs->etSum(2)!=0) l1GctHFRingRatioPosEta_->Fill((hfs->etSum(0))/(hfs->etSum(2)));
        if (hfs->etSum(3)!=0) l1GctHFRingRatioNegEta_->Fill((hfs->etSum(1))/(hfs->etSum(3)));
        // Correlate positive and neagative eta
        l1GctHFRing1PosEtaNegEta_->Fill(hfs->etSum(0),hfs->etSum(1));
        l1GctHFRing2PosEtaNegEta_->Fill(hfs->etSum(2),hfs->etSum(3));
      }
      // Occupancy vs BX
      for (unsigned i=0; i<4; i++){
        l1GctHFRingETSumOccBx_->Fill(hfs->bx(),hfs->etSum(i));
      }
    }
  } else {    
    edm::LogWarning("DataNotFound") << " Could not find l1HFSums label was " << gctEnergySumsSource_ ;
  }

  // HF Ring Counts
  if (l1HFCounts.isValid()) {
    for (L1GctHFBitCountsCollection::const_iterator hfc=l1HFCounts->begin(); hfc!=l1HFCounts->end(); hfc++){ 
      // only plot central BX
      if (hfc->bx()==0) {
        // Individual ring counts
        l1GctHFRing1TowerCountPosEta_->Fill(hfc->bitCount(0));
        l1GctHFRing1TowerCountNegEta_->Fill(hfc->bitCount(1));
        l1GctHFRing2TowerCountPosEta_->Fill(hfc->bitCount(2));
        l1GctHFRing2TowerCountNegEta_->Fill(hfc->bitCount(3));
        // Correlate positive and negative eta
        l1GctHFRing1TowerCountPosEtaNegEta_->Fill(hfc->bitCount(0),hfc->bitCount(1));
        l1GctHFRing2TowerCountPosEtaNegEta_->Fill(hfc->bitCount(2),hfc->bitCount(3));
      }
      // Occupancy vs BX
      for (unsigned i=0; i<4; i++){
        l1GctHFRingTowerCountOccBx_->Fill(hfc->bx(),hfc->bitCount(i));
      }
    }
  } else {    
    edm::LogWarning("DataNotFound") << " Could not find l1HFCounts label was " << gctEnergySumsSource_ ;
  }
  
  // Isolated EM
  if (l1IsoEm.isValid()) {
    for (L1GctEmCandCollection::const_iterator ie=l1IsoEm->begin(); ie!=l1IsoEm->end(); ie++) {
      // only plot central BX
      if (ie->bx()==0) {
        l1GctIsoEmRank_->Fill(ie->rank());
        // only plot eta and phi maps for non-zero candidates
        if (ie->rank()){ 
          l1GctIsoEmRankEtaPhi_->Fill(ie->regionId().ieta(),ie->regionId().iphi(),ie->rank());
          l1GctIsoEmOccEtaPhi_->Fill(ie->regionId().ieta(),ie->regionId().iphi());
        }
      }
      if (ie->rank()) l1GctAllEmOccRankBx_->Fill(ie->bx(),ie->rank()); // for all BX
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1IsoEm label was " << gctIsoEmSource_ ;
  } 

  // Non-isolated EM
  if (l1NonIsoEm.isValid()) { 
    for (L1GctEmCandCollection::const_iterator ne=l1NonIsoEm->begin(); ne!=l1NonIsoEm->end(); ne++) {
      // only plot central BX
      if (ne->bx()==0) {
        l1GctNonIsoEmRank_->Fill(ne->rank());
        // only plot eta and phi maps for non-zero candidates
        if (ne->rank()){ 
          l1GctNonIsoEmRankEtaPhi_->Fill(ne->regionId().ieta(),ne->regionId().iphi(),ne->rank());
          l1GctNonIsoEmOccEtaPhi_->Fill(ne->regionId().ieta(),ne->regionId().iphi());
        }
      }
      if (ne->rank()) l1GctAllEmOccRankBx_->Fill(ne->bx(),ne->rank()); // for all BX
    }
  } else {
    edm::LogWarning("DataNotFound") << " Could not find l1NonIsoEm label was " << gctNonIsoEmSource_ ;
  }     
}
void L1TGCT::beginJob ( void  ) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 282 of file L1TGCT.cc.

References DQMStore::book1D(), DQMStore::book2D(), BXBINS, BXMAX, BXMIN, dbe, EMETABINS, EMETAMAX, EMETAMIN, JETETABINS, JETETAMAX, JETETAMIN, l1GctAllEmOccRankBx_, l1GctAllJetsEtEtaPhi_, l1GctAllJetsOccEtaPhi_, l1GctAllJetsOccRankBx_, l1GctCenJetsEtEtaPhi_, l1GctCenJetsOccEtaPhi_, l1GctCenJetsRank_, l1GctEtHad_, l1GctEtHadOccBx_, l1GctEtHadOf_, l1GctEtMiss_, l1GctEtMissHtMissCorr_, l1GctEtMissHtMissCorrPhi_, l1GctEtMissOccBx_, l1GctEtMissOf_, l1GctEtMissPhi_, l1GctEtTotal_, l1GctEtTotalEtHadCorr_, l1GctEtTotalOccBx_, l1GctEtTotalOf_, l1GctForJetsEtEtaPhi_, l1GctForJetsOccEtaPhi_, l1GctForJetsRank_, l1GctHFRing1ETSumNegEta_, l1GctHFRing1ETSumPosEta_, l1GctHFRing1PosEtaNegEta_, l1GctHFRing1TowerCountNegEta_, l1GctHFRing1TowerCountPosEta_, l1GctHFRing1TowerCountPosEtaNegEta_, l1GctHFRing2ETSumNegEta_, l1GctHFRing2ETSumPosEta_, l1GctHFRing2PosEtaNegEta_, l1GctHFRing2TowerCountNegEta_, l1GctHFRing2TowerCountPosEta_, l1GctHFRing2TowerCountPosEtaNegEta_, l1GctHFRingETSumOccBx_, l1GctHFRingRatioNegEta_, l1GctHFRingRatioPosEta_, l1GctHFRingTowerCountOccBx_, l1GctHtMiss_, l1GctHtMissOccBx_, l1GctHtMissOf_, l1GctHtMissPhi_, l1GctIsoEmOccEtaPhi_, l1GctIsoEmRank_, l1GctIsoEmRankEtaPhi_, l1GctNonIsoEmOccEtaPhi_, l1GctNonIsoEmRank_, l1GctNonIsoEmRankEtaPhi_, l1GctTauJetsEtEtaPhi_, l1GctTauJetsOccEtaPhi_, l1GctTauJetsRank_, METPHIBINS, METPHIMAX, METPHIMIN, MHTPHIBINS, MHTPHIMAX, MHTPHIMIN, nev_, OFBINS, OFMAX, OFMIN, cmsCodeRules::cppFunctionSkipper::operator, PHIBINS, PHIMAX, PHIMIN, R12BINS, R12MAX, R12MIN, R3BINS, R3MAX, R3MIN, R5BINS, R5MAX, R5MIN, R6BINS, R6MAX, R6MIN, R7BINS, R7MAX, R7MIN, DQMStore::rmdir(), and DQMStore::setCurrentFolder().

{

  nev_ = 0;

  // get hold of back-end interface
  DQMStore *dbe = 0;
  dbe = edm::Service < DQMStore > ().operator->();

  if (dbe) {
    dbe->setCurrentFolder("L1T/L1TGCT");
    dbe->rmdir("L1T/L1TGCT");
  }


  if (dbe) {

    dbe->setCurrentFolder("L1T/L1TGCT");

    l1GctAllJetsEtEtaPhi_ = dbe->book2D("AllJetsEtEtaPhi", "CENTRAL AND FORWARD JET E_{T}",
                                        JETETABINS, JETETAMIN, JETETAMAX,
                                        PHIBINS, PHIMIN, PHIMAX);
    l1GctCenJetsEtEtaPhi_ = dbe->book2D("CenJetsEtEtaPhi", "CENTRAL JET E_{T}",
                                        JETETABINS, JETETAMIN, JETETAMAX,
                                        PHIBINS, PHIMIN, PHIMAX); 
    l1GctForJetsEtEtaPhi_ = dbe->book2D("ForJetsEtEtaPhi", "FORWARD JET E_{T}",
                                        JETETABINS, JETETAMIN, JETETAMAX,
                                        PHIBINS, PHIMIN, PHIMAX); 
    l1GctTauJetsEtEtaPhi_ = dbe->book2D("TauJetsEtEtaPhi", "TAU JET E_{T}", 
                                        EMETABINS, EMETAMIN, EMETAMAX,
                                        PHIBINS, PHIMIN, PHIMAX); 
    l1GctIsoEmRankEtaPhi_ = dbe->book2D("IsoEmRankEtaPhi", "ISO EM E_{T}", 
                                        EMETABINS, EMETAMIN, EMETAMAX,
                                        PHIBINS, PHIMIN, PHIMAX);                   
    l1GctNonIsoEmRankEtaPhi_ = dbe->book2D("NonIsoEmRankEtaPhi", "NON-ISO EM E_{T}",
                                           EMETABINS, EMETAMIN, EMETAMAX,
                                           PHIBINS, PHIMIN, PHIMAX); 
    l1GctAllJetsOccEtaPhi_ = dbe->book2D("AllJetsOccEtaPhi", "CENTRAL AND FORWARD JET OCCUPANCY",
                                        JETETABINS, JETETAMIN, JETETAMAX,
                                        PHIBINS, PHIMIN, PHIMAX);
    l1GctCenJetsOccEtaPhi_ = dbe->book2D("CenJetsOccEtaPhi", "CENTRAL JET OCCUPANCY",
                                         JETETABINS, JETETAMIN, JETETAMAX,
                                         PHIBINS, PHIMIN, PHIMAX); 
    l1GctForJetsOccEtaPhi_ = dbe->book2D("ForJetsOccEtaPhi", "FORWARD JET OCCUPANCY",
                                         JETETABINS, JETETAMIN, JETETAMAX,
                                         PHIBINS, PHIMIN, PHIMAX);
    l1GctTauJetsOccEtaPhi_ = dbe->book2D("TauJetsOccEtaPhi", "TAU JET OCCUPANCY",
                                         EMETABINS, EMETAMIN, EMETAMAX,
                                         PHIBINS, PHIMIN, PHIMAX); 
    l1GctIsoEmOccEtaPhi_ = dbe->book2D("IsoEmOccEtaPhi", "ISO EM OCCUPANCY",
                                       EMETABINS, EMETAMIN, EMETAMAX,
                                       PHIBINS, PHIMIN, PHIMAX); 
    l1GctNonIsoEmOccEtaPhi_ = dbe->book2D("NonIsoEmOccEtaPhi", "NON-ISO EM OCCUPANCY",
                                          EMETABINS, EMETAMIN, EMETAMAX,
                                          PHIBINS, PHIMIN, PHIMAX); 
  
    l1GctHFRing1PosEtaNegEta_ = dbe->book2D("HFRing1Corr", "HF RING1 E_{T} CORRELATION +/-  #eta",
                                            R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX); 
    l1GctHFRing2PosEtaNegEta_ = dbe->book2D("HFRing2Corr", "HF RING2 E_{T} CORRELATION +/-  #eta",
                                            R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
    l1GctHFRing1TowerCountPosEtaNegEta_ = dbe->book2D("HFRing1TowerCountCorr", "HF RING1 TOWER COUNT CORRELATION +/-  #eta",
                                                      R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);
    l1GctHFRing2TowerCountPosEtaNegEta_ = dbe->book2D("HFRing2TowerCountCorr", "HF RING2 TOWER COUNT CORRELATION +/-  #eta",
                                                      R3BINS, R3MIN, R3MAX, R3BINS, R3MIN, R3MAX);

    //HF Ring stuff
    l1GctHFRing1TowerCountPosEta_ = dbe->book1D("HFRing1TowerCountPosEta", "HF RING1 TOWER COUNT  #eta  +", R3BINS, R3MIN, R3MAX);
    l1GctHFRing1TowerCountNegEta_ = dbe->book1D("HFRing1TowerCountNegEta", "HF RING1 TOWER COUNT  #eta  -", R3BINS, R3MIN, R3MAX);
    l1GctHFRing2TowerCountPosEta_ = dbe->book1D("HFRing2TowerCountPosEta", "HF RING2 TOWER COUNT  #eta  +", R3BINS, R3MIN, R3MAX);
    l1GctHFRing2TowerCountNegEta_ = dbe->book1D("HFRing2TowerCountNegEta", "HF RING2 TOWER COUNT  #eta  -", R3BINS, R3MIN, R3MAX);

    l1GctHFRing1ETSumPosEta_ = dbe->book1D("HFRing1ETSumPosEta", "HF RING1 E_{T}  #eta  +", R3BINS, R3MIN, R3MAX);
    l1GctHFRing1ETSumNegEta_ = dbe->book1D("HFRing1ETSumNegEta", "HF RING1 E_{T}  #eta  -", R3BINS, R3MIN, R3MAX);
    l1GctHFRing2ETSumPosEta_ = dbe->book1D("HFRing2ETSumPosEta", "HF RING2 E_{T}  #eta  +", R3BINS, R3MIN, R3MAX);
    l1GctHFRing2ETSumNegEta_ = dbe->book1D("HFRing2ETSumNegEta", "HF RING2 E_{T}  #eta  -", R3BINS, R3MIN, R3MAX);
    l1GctHFRingRatioPosEta_  = dbe->book1D("HFRingRatioPosEta", "HF RING E_{T} RATIO  #eta  +", R5BINS, R5MIN, R5MAX);
    l1GctHFRingRatioNegEta_  = dbe->book1D("HFRingRatioNegEta", "HF RING E_{T} RATIO  #eta  -", R5BINS, R5MIN, R5MAX);

    l1GctHFRingTowerCountOccBx_ = dbe->book2D("HFRingTowerCountOccBx", "HF RING TOWER COUNT PER BX",BXBINS, BXMIN, BXMAX, R3BINS, R3MIN, R3MAX);
    l1GctHFRingETSumOccBx_ = dbe->book2D("HFRingETSumOccBx", "HF RING E_{T} PER BX",BXBINS, BXMIN, BXMAX, R3BINS, R3MIN, R3MAX);
    
    // Rank histograms
    l1GctCenJetsRank_  = dbe->book1D("CenJetsRank", "CENTRAL JET E_{T}", R6BINS, R6MIN, R6MAX);
    l1GctForJetsRank_  = dbe->book1D("ForJetsRank", "FORWARD JET E_{T}", R6BINS, R6MIN, R6MAX);
    l1GctTauJetsRank_  = dbe->book1D("TauJetsRank", "TAU JET E_{T}", R6BINS, R6MIN, R6MAX);
    l1GctIsoEmRank_    = dbe->book1D("IsoEmRank", "ISO EM E_{T}", R6BINS, R6MIN, R6MAX);
    l1GctNonIsoEmRank_ = dbe->book1D("NonIsoEmRank", "NON-ISO EM E_{T}", R6BINS, R6MIN, R6MAX);

    l1GctAllJetsOccRankBx_ = dbe->book2D("AllJetsOccRankBx","ALL JETS E_{T} PER BX",BXBINS,BXMIN,BXMAX,R6BINS,R6MIN,R6MAX);
    l1GctAllEmOccRankBx_   = dbe->book2D("AllEmOccRankBx","ALL EM E_{T} PER BX",BXBINS,BXMIN,BXMAX,R6BINS,R6MIN,R6MAX);

    // Energy sums
    l1GctEtMiss_    = dbe->book1D("EtMiss", "MET", R12BINS, R12MIN, R12MAX);
    l1GctEtMissPhi_ = dbe->book1D("EtMissPhi", "MET  #phi", METPHIBINS, METPHIMIN, METPHIMAX);
    l1GctEtMissOf_  = dbe->book1D("EtMissOf", "MET OVERFLOW", OFBINS, OFMIN, OFMAX);
    l1GctEtMissOccBx_ = dbe->book2D("EtMissOccBx","MET PER BX",BXBINS,BXMIN,BXMAX,R12BINS,R12MIN,R12MAX);
    l1GctHtMiss_    = dbe->book1D("HtMiss", "MHT", R7BINS, R7MIN, R7MAX);
    l1GctHtMissPhi_ = dbe->book1D("HtMissPhi", "MHT  #phi", MHTPHIBINS, MHTPHIMIN, MHTPHIMAX);
    l1GctHtMissOf_  = dbe->book1D("HtMissOf", "MHT OVERFLOW", OFBINS, OFMIN, OFMAX);
    l1GctHtMissOccBx_ = dbe->book2D("HtMissOccBx","MHT PER BX",BXBINS,BXMIN,BXMAX,R7BINS,R7MIN,R7MAX);
    l1GctEtMissHtMissCorr_ = dbe->book2D("EtMissHtMissCorr", "MET MHT CORRELATION",
                                         R6BINS, R12MIN, R12MAX,
                                         R6BINS, R7MIN, R7MAX); 
    l1GctEtMissHtMissCorrPhi_ = dbe->book2D("EtMissHtMissPhiCorr", "MET MHT  #phi  CORRELATION",
                                            METPHIBINS, METPHIMIN, METPHIMAX,
                                            MHTPHIBINS, MHTPHIMIN, MHTPHIMAX);
    l1GctEtTotal_   = dbe->book1D("EtTotal", "SUM E_{T}", R12BINS, R12MIN, R12MAX);
    l1GctEtTotalOf_ = dbe->book1D("EtTotalOf", "SUM E_{T} OVERFLOW", OFBINS, OFMIN, OFMAX);
    l1GctEtTotalOccBx_ = dbe->book2D("EtTotalOccBx","SUM E_{T} PER BX",BXBINS,BXMIN,BXMAX,R12BINS,R12MIN,R12MAX);
    l1GctEtHad_     = dbe->book1D("EtHad", "H_{T}", R12BINS, R12MIN, R12MAX);
    l1GctEtHadOf_   = dbe->book1D("EtHadOf", "H_{T} OVERFLOW", OFBINS, OFMIN, OFMAX);
    l1GctEtHadOccBx_ = dbe->book2D("EtHadOccBx","H_{T} PER BX",BXBINS,BXMIN,BXMAX,R12BINS,R12MIN,R12MAX);
    l1GctEtTotalEtHadCorr_ = dbe->book2D("EtTotalEtHadCorr", "Sum E_{T} H_{T} CORRELATION",
                                         R6BINS, R12MIN, R12MAX,
                                         R6BINS, R12MIN, R12MAX); 
  }

}
void L1TGCT::endJob ( void  ) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 402 of file L1TGCT.cc.

References dbe, nev_, outputFile_, DQMStore::save(), and verbose_.

{
  if (verbose_)
    edm::LogInfo("L1TGCT") << "L1TGCT: end job...." << std::endl;
  edm::LogInfo("EndJob") << "analyzed " << nev_ << " events";

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

  return;
}

Member Data Documentation

DQMStore* L1TGCT::dbe [private]

Definition at line 149 of file L1TGCT.h.

Referenced by beginJob(), endJob(), and L1TGCT().

Definition at line 218 of file L1TGCT.h.

Referenced by analyze().

Definition at line 221 of file L1TGCT.h.

Referenced by analyze().

Definition at line 219 of file L1TGCT.h.

Referenced by analyze().

Definition at line 222 of file L1TGCT.h.

Referenced by analyze().

Definition at line 223 of file L1TGCT.h.

Referenced by analyze().

Definition at line 220 of file L1TGCT.h.

Referenced by analyze().

Definition at line 173 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 152 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 159 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 172 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 153 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 160 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 166 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 189 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 191 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 190 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 176 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 184 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 185 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 179 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 178 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 177 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 186 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 192 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 188 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 187 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 154 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 161 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 167 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 204 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 203 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 195 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 200 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 199 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 197 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 206 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 205 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 196 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 202 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 201 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 198 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 209 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 208 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 207 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 210 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 180 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 183 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 182 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 181 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 163 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 169 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 156 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 164 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 170 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 157 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 155 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 162 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

Definition at line 168 of file L1TGCT.h.

Referenced by analyze(), and beginJob().

ofstream L1TGCT::logFile_ [private]

Definition at line 216 of file L1TGCT.h.

bool L1TGCT::monitorDaemon_ [private]

Definition at line 215 of file L1TGCT.h.

int L1TGCT::nev_ [private]

Definition at line 212 of file L1TGCT.h.

Referenced by analyze(), beginJob(), and endJob().

std::string L1TGCT::outputFile_ [private]

Definition at line 213 of file L1TGCT.h.

Referenced by endJob(), and L1TGCT().

bool L1TGCT::verbose_ [private]

Definition at line 214 of file L1TGCT.h.

Referenced by analyze(), endJob(), and L1TGCT().