CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Private Types | Private Attributes

EBOccupancyTask Class Reference

#include <EBOccupancyTask.h>

Inheritance diagram for EBOccupancyTask:
edm::EDAnalyzer

List of all members.

Public Member Functions

 EBOccupancyTask (const edm::ParameterSet &ps)
 Constructor.
virtual ~EBOccupancyTask ()
 Destructor.

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze.
void beginJob (void)
 BeginJob.
void beginRun (const edm::Run &r, const edm::EventSetup &c)
 BeginRun.
void cleanup (void)
 Cleanup.
void endJob (void)
 EndJob.
void endRun (const edm::Run &r, const edm::EventSetup &c)
 EndRun.
void reset (void)
 Reset.
void setup (void)
 Setup.

Private Types

enum  runClassification {
  notdata, physics, testpulse, laser,
  pedestal
}

Private Attributes

DQMStoredqmStore_
edm::InputTag EBDigiCollection_
edm::InputTag EcalPnDiodeDigiCollection_
edm::InputTag EcalRawDataCollection_
edm::InputTag EcalRecHitCollection_
edm::InputTag EcalTrigPrimDigiCollection_
bool enableCleanup_
int ievt_
bool init_
MonitorElementmeEBDigiOccupancy_
MonitorElementmeEBDigiOccupancyProjEta_
MonitorElementmeEBDigiOccupancyProjPhi_
MonitorElementmeEBLaserDigiOccupancy_
MonitorElementmeEBPedestalDigiOccupancy_
MonitorElementmeEBRecHitEnergy_ [36]
MonitorElementmeEBRecHitOccupancy_
MonitorElementmeEBRecHitOccupancyProjEta_
MonitorElementmeEBRecHitOccupancyProjEtaThr_
MonitorElementmeEBRecHitOccupancyProjPhi_
MonitorElementmeEBRecHitOccupancyProjPhiThr_
MonitorElementmeEBRecHitOccupancyThr_
MonitorElementmeEBRecHitSpectrum_
MonitorElementmeEBTestPulseDigiOccupancy_
MonitorElementmeEBTrigPrimDigiOccupancy_
MonitorElementmeEBTrigPrimDigiOccupancyProjEta_
MonitorElementmeEBTrigPrimDigiOccupancyProjEtaThr_
MonitorElementmeEBTrigPrimDigiOccupancyProjPhi_
MonitorElementmeEBTrigPrimDigiOccupancyProjPhiThr_
MonitorElementmeEBTrigPrimDigiOccupancyThr_
MonitorElementmeEvent_ [36]
MonitorElementmeOccupancy_ [36]
MonitorElementmeOccupancyMem_ [36]
bool mergeRuns_
MonitorElementmeSpectrum_ [36]
std::string prefixME_
float recHitEnergyMin_
float trigPrimEtMin_

Detailed Description

Definition at line 20 of file EBOccupancyTask.h.


Member Enumeration Documentation

Enumerator:
notdata 
physics 
testpulse 
laser 
pedestal 

Definition at line 74 of file EBOccupancyTask.h.


Constructor & Destructor Documentation

EBOccupancyTask::EBOccupancyTask ( const edm::ParameterSet ps)

Constructor.

Definition at line 37 of file EBOccupancyTask.cc.

References dqmStore_, EBDigiCollection_, EcalPnDiodeDigiCollection_, EcalRawDataCollection_, EcalRecHitCollection_, EcalTrigPrimDigiCollection_, enableCleanup_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), i, init_, meEBDigiOccupancy_, meEBDigiOccupancyProjEta_, meEBDigiOccupancyProjPhi_, meEBLaserDigiOccupancy_, meEBPedestalDigiOccupancy_, meEBRecHitEnergy_, meEBRecHitOccupancy_, meEBRecHitOccupancyProjEta_, meEBRecHitOccupancyProjEtaThr_, meEBRecHitOccupancyProjPhi_, meEBRecHitOccupancyProjPhiThr_, meEBRecHitOccupancyThr_, meEBRecHitSpectrum_, meEBTestPulseDigiOccupancy_, meEBTrigPrimDigiOccupancy_, meEBTrigPrimDigiOccupancyProjEta_, meEBTrigPrimDigiOccupancyProjEtaThr_, meEBTrigPrimDigiOccupancyProjPhi_, meEBTrigPrimDigiOccupancyProjPhiThr_, meEBTrigPrimDigiOccupancyThr_, meOccupancy_, meOccupancyMem_, mergeRuns_, meSpectrum_, cmsCodeRules::cppFunctionSkipper::operator, prefixME_, recHitEnergyMin_, and trigPrimEtMin_.

                                                         {

  init_ = false;

  dqmStore_ = edm::Service<DQMStore>().operator->();

  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");

  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);

  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);

  EcalRawDataCollection_ = ps.getParameter<edm::InputTag>("EcalRawDataCollection");
  EBDigiCollection_ = ps.getParameter<edm::InputTag>("EBDigiCollection");
  EcalPnDiodeDigiCollection_ = ps.getParameter<edm::InputTag>("EcalPnDiodeDigiCollection");
  EcalRecHitCollection_ = ps.getParameter<edm::InputTag>("EcalRecHitCollection");
  EcalTrigPrimDigiCollection_ = ps.getParameter<edm::InputTag>("EcalTrigPrimDigiCollection");

  for (int i = 0; i < 36; i++) {
    meOccupancy_[i]    = 0;
    meOccupancyMem_[i] = 0;
    meEBRecHitEnergy_[i] = 0;
    meSpectrum_[i] = 0;
  }

  meEBRecHitSpectrum_ = 0;

  meEBDigiOccupancy_ = 0;
  meEBDigiOccupancyProjEta_ = 0;
  meEBDigiOccupancyProjPhi_ = 0;

  meEBRecHitOccupancy_ = 0;
  meEBRecHitOccupancyProjEta_ = 0;
  meEBRecHitOccupancyProjPhi_ = 0;

  meEBRecHitOccupancyThr_ = 0;
  meEBRecHitOccupancyProjEtaThr_ = 0;
  meEBRecHitOccupancyProjPhiThr_ = 0;

  meEBTrigPrimDigiOccupancy_ = 0;
  meEBTrigPrimDigiOccupancyProjEta_ = 0;
  meEBTrigPrimDigiOccupancyProjPhi_ = 0;

  meEBTrigPrimDigiOccupancyThr_ = 0;
  meEBTrigPrimDigiOccupancyProjEtaThr_ = 0;
  meEBTrigPrimDigiOccupancyProjPhiThr_ = 0;

  meEBTestPulseDigiOccupancy_ = 0;
  meEBLaserDigiOccupancy_ = 0;
  meEBPedestalDigiOccupancy_ = 0;

  recHitEnergyMin_ = 0.300; // GeV
  trigPrimEtMin_ = 4.; // 4 ADCs == 1 GeV

}
EBOccupancyTask::~EBOccupancyTask ( ) [virtual]

Destructor.

Definition at line 93 of file EBOccupancyTask.cc.

                                 {

}

Member Function Documentation

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

Analyze.

Implements edm::EDAnalyzer.

Definition at line 359 of file EBOccupancyTask.cc.

References EcalDCCHeaderBlock::COSMIC, EcalDCCHeaderBlock::COSMICS_GLOBAL, EcalDCCHeaderBlock::COSMICS_LOCAL, EBDigiCollection_, EcalBarrel, EcalPnDiodeDigiCollection_, EcalRawDataCollection_, EcalRecHitCollection_, EcalTrigPrimDigiCollection_, MonitorElement::Fill(), edm::EventSetup::get(), edm::Event::getByLabel(), EBDetId::ic(), EBDetId::ieta(), ievt_, init_, Numbers::iSM(), ecalpyutils::ism(), EcalRecHit::kGood, EcalSeverityLevelAlgo::kGood, laser, EcalDCCHeaderBlock::LASER_GAP, EcalDCCHeaderBlock::LASER_STD, LogDebug, meEBDigiOccupancy_, meEBDigiOccupancyProjEta_, meEBDigiOccupancyProjPhi_, meEBLaserDigiOccupancy_, meEBPedestalDigiOccupancy_, meEBRecHitEnergy_, meEBRecHitOccupancy_, meEBRecHitOccupancyProjEta_, meEBRecHitOccupancyProjEtaThr_, meEBRecHitOccupancyProjPhi_, meEBRecHitOccupancyProjPhiThr_, meEBRecHitOccupancyThr_, meEBRecHitSpectrum_, meEBTestPulseDigiOccupancy_, meEBTrigPrimDigiOccupancy_, meEBTrigPrimDigiOccupancyProjEta_, meEBTrigPrimDigiOccupancyProjEtaThr_, meEBTrigPrimDigiOccupancyProjPhi_, meEBTrigPrimDigiOccupancyProjPhiThr_, meEBTrigPrimDigiOccupancyThr_, meOccupancy_, meOccupancyMem_, meSpectrum_, EcalDCCHeaderBlock::MTCC, notdata, pedestal, EcalDCCHeaderBlock::PEDESTAL_GAP, EcalDCCHeaderBlock::PEDESTAL_STD, physics, EcalDCCHeaderBlock::PHYSICS_GLOBAL, EcalDCCHeaderBlock::PHYSICS_LOCAL, recHitEnergyMin_, setup(), Numbers::subDet(), testpulse, EcalDCCHeaderBlock::TESTPULSE_GAP, EcalDCCHeaderBlock::TESTPULSE_MGPA, and trigPrimEtMin_.

                                                                      {

  if ( ! init_ ) this->setup();

  ievt_++;

  int runType[36] = { notdata };

  edm::Handle<EcalRawDataCollection> dcchs;

  if (  e.getByLabel(EcalRawDataCollection_, dcchs) ) {

    for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {

      if ( Numbers::subDet( *dcchItr ) != EcalBarrel ) continue;

      int ism = Numbers::iSM( *dcchItr, EcalBarrel );

      int runtype = dcchItr->getRunType();

      if ( runtype == EcalDCCHeaderBlock::COSMIC ||
           runtype == EcalDCCHeaderBlock::MTCC ||
           runtype == EcalDCCHeaderBlock::COSMICS_GLOBAL ||
           runtype == EcalDCCHeaderBlock::PHYSICS_GLOBAL ||
           runtype == EcalDCCHeaderBlock::COSMICS_LOCAL ||
           runtype == EcalDCCHeaderBlock::PHYSICS_LOCAL ) runType[ism-1] = physics;
      if ( runtype == EcalDCCHeaderBlock::TESTPULSE_MGPA ||
           runtype == EcalDCCHeaderBlock::TESTPULSE_GAP ) runType[ism-1] = testpulse;
      if ( runtype == EcalDCCHeaderBlock::LASER_STD ||
           runtype == EcalDCCHeaderBlock::LASER_GAP ) runType[ism-1] = laser;
      if ( runtype == EcalDCCHeaderBlock::PEDESTAL_STD ||
           runtype == EcalDCCHeaderBlock::PEDESTAL_GAP ) runType[ism-1] = pedestal;

    }

  } else {
    edm::LogWarning("EBOccupancyTask") << EcalRawDataCollection_ << " not available";
  }

  edm::Handle<EBDigiCollection> digis;

  if ( e.getByLabel(EBDigiCollection_, digis) ) {

    int nebd = digis->size();
    LogDebug("EBOccupancyTask") << "event " << ievt_ << " digi collection size " << nebd;

    for ( EBDigiCollection::const_iterator digiItr = digis->begin(); digiItr != digis->end(); ++digiItr ) {

      EBDetId id = digiItr->id();

      int ic = id.ic();
      int ie = (ic-1)/20 + 1;
      int ip = (ic-1)%20 + 1;

      int ism = Numbers::iSM( id );

      float xie = ie - 0.5;
      float xip = ip - 0.5;

      if ( xie <= 0. || xie >= 85. || xip <= 0. || xip >= 20. ) {
        edm::LogWarning("EBOccupancyTask") << " det id = " << id;
        edm::LogWarning("EBOccupancyTask") << " sm, ieta, iphi " << ism << " " << ie << " " << ip;
        edm::LogWarning("EBOccupancyTask") << " xie, xip " << xie << " " << xip;
      }

      if ( meOccupancy_[ism-1] ) meOccupancy_[ism-1]->Fill(xie, xip);

      int ebeta = id.ieta();
      int ebphi = id.iphi();

      float xebeta = ebeta - 0.5*id.zside();
      float xebphi = ebphi - 0.5;

      if ( runType[ism-1] == physics || runType[ism-1] == notdata ) {

        if ( meEBDigiOccupancy_ ) meEBDigiOccupancy_->Fill( xebphi, xebeta );
        if ( meEBDigiOccupancyProjEta_ ) meEBDigiOccupancyProjEta_->Fill( xebeta );
        if ( meEBDigiOccupancyProjPhi_ ) meEBDigiOccupancyProjPhi_->Fill( xebphi );

      }

      if ( runType[ism-1] == testpulse ) {

        if ( meEBTestPulseDigiOccupancy_ ) meEBTestPulseDigiOccupancy_->Fill( xebphi, xebeta );

      }

      if ( runType[ism-1] == laser ) {

        if ( meEBLaserDigiOccupancy_ ) meEBLaserDigiOccupancy_->Fill( xebphi, xebeta );

      }

      if ( runType[ism-1] == pedestal ) {

        if ( meEBPedestalDigiOccupancy_ ) meEBPedestalDigiOccupancy_->Fill( xebphi, xebeta );

      }

    }

  } else {

    edm::LogWarning("EBOccupancyTask") << EBDigiCollection_ << " not available";

  }

  edm::Handle<EcalPnDiodeDigiCollection> PNs;

  if ( e.getByLabel(EcalPnDiodeDigiCollection_, PNs) ) {

    // filling mem occupancy only for the 5 channels belonging
    // to a fully reconstructed PN's

    for ( EcalPnDiodeDigiCollection::const_iterator pnItr = PNs->begin(); pnItr != PNs->end(); ++pnItr ) {

      if ( Numbers::subDet( pnItr->id() ) != EcalBarrel ) continue;

      int   ism   = Numbers::iSM( pnItr->id() );

      float PnId  = pnItr->id().iPnId();

      PnId        = PnId - 0.5;
      float st    = 0.0;

      for (int chInStrip = 1; chInStrip <= 5; chInStrip++){
        if ( meOccupancyMem_[ism-1] ) {
          st = chInStrip - 0.5;
          meOccupancyMem_[ism-1]->Fill(PnId, st);
        }
      }

    }

  } else {

    edm::LogWarning("EBOccupancyTask") << EcalPnDiodeDigiCollection_ << " not available";

  }

  edm::ESHandle<EcalSeverityLevelAlgo> sevlv;
  c.get<EcalSeverityLevelAlgoRcd>().get(sevlv);

  edm::Handle<EcalRecHitCollection> rechits;

  if ( e.getByLabel(EcalRecHitCollection_, rechits) ) {

    int nebrh = rechits->size();
    LogDebug("EBOccupancyTask") << "event " << ievt_ << " rec hits collection size " << nebrh;

    for ( EcalRecHitCollection::const_iterator rechitItr = rechits->begin(); rechitItr != rechits->end(); ++rechitItr ) {

      EBDetId id = rechitItr->id();

      // global coordinates
      int ebeta = id.ieta();
      int ebphi = id.iphi();

      float xebeta = ebeta - 0.5*id.zside();
      float xebphi = ebphi - 0.5;

      int ism = Numbers::iSM( id );

      // local coordinates
      int ic = id.ic();
      int ie = (ic-1)/20 + 1;
      int ip = (ic-1)%20 + 1;

      float xie = ie - 0.5;
      float xip = ip - 0.5;

      if ( runType[ism-1] == physics || runType[ism-1] == notdata ) {

        if ( meEBRecHitOccupancy_ ) meEBRecHitOccupancy_->Fill( xebphi, xebeta );
        if ( meEBRecHitOccupancyProjEta_ ) meEBRecHitOccupancyProjEta_->Fill( xebeta );
        if ( meEBRecHitOccupancyProjPhi_ ) meEBRecHitOccupancyProjPhi_->Fill( xebphi );

        uint32_t flag = rechitItr->recoFlag();
        
        uint32_t sev = sevlv->severityLevel( id, *rechits);

        if ( rechitItr->energy() > recHitEnergyMin_ && flag == EcalRecHit::kGood && sev == EcalSeverityLevelAlgo::kGood ) {

          if ( meEBRecHitOccupancyThr_ ) meEBRecHitOccupancyThr_->Fill( xebphi, xebeta );
          if ( meEBRecHitOccupancyProjEtaThr_ ) meEBRecHitOccupancyProjEtaThr_->Fill( xebeta );
          if ( meEBRecHitOccupancyProjPhiThr_ ) meEBRecHitOccupancyProjPhiThr_->Fill( xebphi );

        }

        if ( flag == EcalRecHit::kGood && sev == EcalSeverityLevelAlgo::kGood ) {
          if ( meEBRecHitEnergy_[ism-1] ) meEBRecHitEnergy_[ism-1]->Fill( xie, xip, rechitItr->energy() );
          if ( meSpectrum_[ism-1] ) meSpectrum_[ism-1]->Fill( rechitItr->energy() );
          if ( meEBRecHitSpectrum_ ) meEBRecHitSpectrum_->Fill( rechitItr->energy() );
        }

      }
    }

  } else {

    edm::LogWarning("EBOccupancyTask") << EcalRecHitCollection_ << " not available";

  }

  edm::Handle<EcalTrigPrimDigiCollection> trigPrimDigis;

  if ( e.getByLabel(EcalTrigPrimDigiCollection_, trigPrimDigis) ) {

    int nebtpg = trigPrimDigis->size();
    LogDebug("EBOccupancyTask") << "event " << ievt_ << " trigger primitives digis collection size " << nebtpg;

    for ( EcalTrigPrimDigiCollection::const_iterator tpdigiItr = trigPrimDigis->begin(); tpdigiItr != trigPrimDigis->end(); ++tpdigiItr ) {

      if ( Numbers::subDet( tpdigiItr->id() ) != EcalBarrel ) continue;

      int ebeta = tpdigiItr->id().ieta();
      int ebphi = tpdigiItr->id().iphi();

      // phi_tower: change the range from global to SM-local
      // phi==0 is in the middle of a SM
      ebphi = ebphi + 2;
      if ( ebphi > 72 ) ebphi = ebphi - 72;

      float xebeta = ebeta-0.5*tpdigiItr->id().zside();
      float xebphi = ebphi-0.5;

      int ism = Numbers::iSM( tpdigiItr->id() );

      if ( runType[ism-1] == physics || runType[ism-1] == notdata ) {

        if ( meEBTrigPrimDigiOccupancy_ ) meEBTrigPrimDigiOccupancy_->Fill( xebphi, xebeta );
        if ( meEBTrigPrimDigiOccupancyProjEta_ ) meEBTrigPrimDigiOccupancyProjEta_->Fill( xebeta );
        if ( meEBTrigPrimDigiOccupancyProjPhi_ ) meEBTrigPrimDigiOccupancyProjPhi_->Fill( xebphi );

        if ( tpdigiItr->compressedEt() > trigPrimEtMin_ ) {

          if ( meEBTrigPrimDigiOccupancyThr_ ) meEBTrigPrimDigiOccupancyThr_->Fill( xebphi, xebeta );
          if ( meEBTrigPrimDigiOccupancyProjEtaThr_ ) meEBTrigPrimDigiOccupancyProjEtaThr_->Fill( xebeta );
          if ( meEBTrigPrimDigiOccupancyProjPhiThr_ ) meEBTrigPrimDigiOccupancyProjPhiThr_->Fill( xebphi );

        }
      }
    }

  } else {

    edm::LogWarning("EBOccupancyTask") << EcalTrigPrimDigiCollection_ << " not available";

  }

}
void EBOccupancyTask::beginJob ( void  ) [protected, virtual]

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 97 of file EBOccupancyTask.cc.

References dqmStore_, ievt_, prefixME_, DQMStore::rmdir(), and DQMStore::setCurrentFolder().

                                  {

  ievt_ = 0;

  if ( dqmStore_ ) {
    dqmStore_->setCurrentFolder(prefixME_ + "/EBOccupancyTask");
    dqmStore_->rmdir(prefixME_ + "/EBOccupancyTask");
  }

}
void EBOccupancyTask::beginRun ( const edm::Run r,
const edm::EventSetup c 
) [protected, virtual]

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 108 of file EBOccupancyTask.cc.

References Numbers::initGeometry(), mergeRuns_, and reset().

                                                                      {

  Numbers::initGeometry(c, false);

  if ( ! mergeRuns_ ) this->reset();

}
void EBOccupancyTask::cleanup ( void  ) [protected]

Cleanup.

Definition at line 280 of file EBOccupancyTask.cc.

References dqmStore_, edm::getName(), MonitorElement::getName(), i, init_, meEBDigiOccupancy_, meEBDigiOccupancyProjEta_, meEBDigiOccupancyProjPhi_, meEBLaserDigiOccupancy_, meEBPedestalDigiOccupancy_, meEBRecHitEnergy_, meEBRecHitOccupancy_, meEBRecHitOccupancyProjEta_, meEBRecHitOccupancyProjEtaThr_, meEBRecHitOccupancyProjPhi_, meEBRecHitOccupancyProjPhiThr_, meEBRecHitOccupancyThr_, meEBRecHitSpectrum_, meEBTestPulseDigiOccupancy_, meEBTrigPrimDigiOccupancy_, meEBTrigPrimDigiOccupancyProjEta_, meEBTrigPrimDigiOccupancyProjEtaThr_, meEBTrigPrimDigiOccupancyProjPhi_, meEBTrigPrimDigiOccupancyProjPhiThr_, meEBTrigPrimDigiOccupancyThr_, meOccupancy_, meOccupancyMem_, meSpectrum_, prefixME_, DQMStore::removeElement(), and DQMStore::setCurrentFolder().

Referenced by endJob().

                                 {

  if ( ! init_ ) return;

  if ( dqmStore_ ) {
    dqmStore_->setCurrentFolder(prefixME_ + "/EBOccupancyTask");

    for (int i = 0; i < 36; i++) {
      if ( meOccupancy_[i] ) dqmStore_->removeElement( meOccupancy_[i]->getName() );
      meOccupancy_[i] = 0;
      if ( meOccupancyMem_[i] ) dqmStore_->removeElement( meOccupancyMem_[i]->getName() );
      meOccupancyMem_[i] = 0;
      if ( meEBRecHitEnergy_[i] ) dqmStore_->removeElement( meEBRecHitEnergy_[i]->getName() );
      meEBRecHitEnergy_[i] = 0;
      if ( meSpectrum_[i] ) dqmStore_->removeElement( meSpectrum_[i]->getName() );
      meSpectrum_[i] = 0;
    }

    if ( meEBRecHitSpectrum_ ) dqmStore_->removeElement( meEBRecHitSpectrum_->getName() );
    meEBRecHitSpectrum_ = 0;

    if ( meEBDigiOccupancy_ ) dqmStore_->removeElement( meEBDigiOccupancy_->getName() );
    meEBDigiOccupancy_ = 0;
    if ( meEBDigiOccupancyProjEta_ ) dqmStore_->removeElement( meEBDigiOccupancyProjEta_->getName() );
    meEBDigiOccupancyProjEta_ = 0;
    if ( meEBDigiOccupancyProjPhi_ ) dqmStore_->removeElement( meEBDigiOccupancyProjPhi_->getName() );
    meEBDigiOccupancyProjPhi_ = 0;

    if ( meEBRecHitOccupancy_ ) dqmStore_->removeElement( meEBRecHitOccupancy_->getName() );
    meEBRecHitOccupancy_ = 0;
    if ( meEBRecHitOccupancyProjEta_ ) dqmStore_->removeElement( meEBRecHitOccupancyProjEta_->getName() );
    meEBRecHitOccupancyProjEta_ = 0;
    if ( meEBRecHitOccupancyProjPhi_ ) dqmStore_->removeElement( meEBRecHitOccupancyProjPhi_->getName() );
    meEBRecHitOccupancyProjPhi_ = 0;

    if ( meEBRecHitOccupancyThr_ ) dqmStore_->removeElement( meEBRecHitOccupancyThr_->getName() );
    meEBRecHitOccupancyThr_ = 0;
    if ( meEBRecHitOccupancyProjEtaThr_ ) dqmStore_->removeElement( meEBRecHitOccupancyProjEtaThr_->getName() );
    meEBRecHitOccupancyProjEtaThr_ = 0;
    if ( meEBRecHitOccupancyProjPhiThr_ ) dqmStore_->removeElement( meEBRecHitOccupancyProjPhiThr_->getName() );
    meEBRecHitOccupancyProjPhiThr_ = 0;

    if ( meEBTrigPrimDigiOccupancy_ ) dqmStore_->removeElement( meEBTrigPrimDigiOccupancy_->getName() );
    meEBTrigPrimDigiOccupancy_ = 0;
    if ( meEBTrigPrimDigiOccupancyProjEta_ ) dqmStore_->removeElement( meEBTrigPrimDigiOccupancyProjEta_->getName() );
    meEBTrigPrimDigiOccupancyProjEta_ = 0;
    if ( meEBTrigPrimDigiOccupancyProjPhi_ ) dqmStore_->removeElement( meEBTrigPrimDigiOccupancyProjPhi_->getName() );
    meEBTrigPrimDigiOccupancyProjPhi_ = 0;

    if ( meEBTrigPrimDigiOccupancyThr_ ) dqmStore_->removeElement( meEBTrigPrimDigiOccupancyThr_->getName() );
    meEBTrigPrimDigiOccupancyThr_ = 0;
    if ( meEBTrigPrimDigiOccupancyProjEtaThr_ ) dqmStore_->removeElement( meEBTrigPrimDigiOccupancyProjEtaThr_->getName() );
    meEBTrigPrimDigiOccupancyProjEtaThr_ = 0;
    if ( meEBTrigPrimDigiOccupancyProjPhiThr_ ) dqmStore_->removeElement( meEBTrigPrimDigiOccupancyProjPhiThr_->getName() );
    meEBTrigPrimDigiOccupancyProjPhiThr_ = 0;

    if ( meEBTestPulseDigiOccupancy_ ) dqmStore_->removeElement( meEBTestPulseDigiOccupancy_->getName() );
    meEBTestPulseDigiOccupancy_ = 0;

    if ( meEBLaserDigiOccupancy_ ) dqmStore_->removeElement( meEBLaserDigiOccupancy_->getName() );
    meEBLaserDigiOccupancy_ = 0;

    if ( meEBPedestalDigiOccupancy_ ) dqmStore_->removeElement( meEBPedestalDigiOccupancy_->getName() );
    meEBPedestalDigiOccupancy_ = 0;

  }

  init_ = false;

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

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 351 of file EBOccupancyTask.cc.

References cleanup(), enableCleanup_, and ievt_.

                                 {

  edm::LogInfo("EBOccupancyTask") << "analyzed " << ievt_ << " events";

  if ( enableCleanup_ ) this->cleanup();

}
void EBOccupancyTask::endRun ( const edm::Run r,
const edm::EventSetup c 
) [protected, virtual]

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 116 of file EBOccupancyTask.cc.

                                                                    {

}
void EBOccupancyTask::reset ( void  ) [protected]

Reset.

Definition at line 120 of file EBOccupancyTask.cc.

References i, meEBDigiOccupancy_, meEBDigiOccupancyProjEta_, meEBDigiOccupancyProjPhi_, meEBLaserDigiOccupancy_, meEBPedestalDigiOccupancy_, meEBRecHitEnergy_, meEBRecHitOccupancy_, meEBRecHitOccupancyProjEta_, meEBRecHitOccupancyProjEtaThr_, meEBRecHitOccupancyProjPhi_, meEBRecHitOccupancyProjPhiThr_, meEBRecHitOccupancyThr_, meEBRecHitSpectrum_, meEBTestPulseDigiOccupancy_, meEBTrigPrimDigiOccupancy_, meEBTrigPrimDigiOccupancyProjEta_, meEBTrigPrimDigiOccupancyProjEtaThr_, meEBTrigPrimDigiOccupancyProjPhi_, meEBTrigPrimDigiOccupancyProjPhiThr_, meEBTrigPrimDigiOccupancyThr_, meOccupancy_, meOccupancyMem_, meSpectrum_, and MonitorElement::Reset().

Referenced by beginRun().

                                {

  for (int i = 0; i < 36; i++) {
    if ( meOccupancy_[i] ) meOccupancy_[i]->Reset();
    if ( meOccupancyMem_[i] ) meOccupancyMem_[i]->Reset();
    if ( meEBRecHitEnergy_[i] ) meEBRecHitEnergy_[i]->Reset();
    if ( meSpectrum_[i] ) meSpectrum_[i]->Reset();
  }

  if ( meEBRecHitSpectrum_ ) meEBRecHitSpectrum_->Reset();

  if ( meEBDigiOccupancy_ ) meEBDigiOccupancy_->Reset();
  if ( meEBDigiOccupancyProjEta_ ) meEBDigiOccupancyProjEta_->Reset();
  if ( meEBDigiOccupancyProjPhi_ ) meEBDigiOccupancyProjPhi_->Reset();

  if ( meEBRecHitOccupancy_ ) meEBRecHitOccupancy_->Reset();
  if ( meEBRecHitOccupancyProjEta_ ) meEBRecHitOccupancyProjEta_->Reset();
  if ( meEBRecHitOccupancyProjPhi_ ) meEBRecHitOccupancyProjPhi_->Reset();

  if ( meEBRecHitOccupancyThr_ ) meEBRecHitOccupancyThr_->Reset();
  if ( meEBRecHitOccupancyProjEtaThr_ ) meEBRecHitOccupancyProjEtaThr_->Reset();
  if ( meEBRecHitOccupancyProjPhiThr_ ) meEBRecHitOccupancyProjPhiThr_->Reset();

  if ( meEBTrigPrimDigiOccupancy_ ) meEBTrigPrimDigiOccupancy_->Reset();
  if ( meEBTrigPrimDigiOccupancyProjEta_ ) meEBTrigPrimDigiOccupancyProjEta_->Reset();
  if ( meEBTrigPrimDigiOccupancyProjPhi_ ) meEBTrigPrimDigiOccupancyProjPhi_->Reset();

  if ( meEBTrigPrimDigiOccupancyThr_ ) meEBTrigPrimDigiOccupancyThr_->Reset();
  if ( meEBTrigPrimDigiOccupancyProjEtaThr_ ) meEBTrigPrimDigiOccupancyProjEtaThr_->Reset();
  if ( meEBTrigPrimDigiOccupancyProjPhiThr_ ) meEBTrigPrimDigiOccupancyProjPhiThr_->Reset();

  if ( meEBTestPulseDigiOccupancy_ ) meEBTestPulseDigiOccupancy_->Reset();
  if ( meEBLaserDigiOccupancy_ ) meEBLaserDigiOccupancy_->Reset();
  if ( meEBPedestalDigiOccupancy_ ) meEBPedestalDigiOccupancy_->Reset();

}
void EBOccupancyTask::setup ( void  ) [protected]

Setup.

Definition at line 157 of file EBOccupancyTask.cc.

References DQMStore::book1D(), DQMStore::book1DD(), DQMStore::book2D(), DQMStore::bookProfile2D(), dqmStore_, trackerHits::histo, i, init_, meEBDigiOccupancy_, meEBDigiOccupancyProjEta_, meEBDigiOccupancyProjPhi_, meEBLaserDigiOccupancy_, meEBPedestalDigiOccupancy_, meEBRecHitEnergy_, meEBRecHitOccupancy_, meEBRecHitOccupancyProjEta_, meEBRecHitOccupancyProjEtaThr_, meEBRecHitOccupancyProjPhi_, meEBRecHitOccupancyProjPhiThr_, meEBRecHitOccupancyThr_, meEBRecHitSpectrum_, meEBTestPulseDigiOccupancy_, meEBTrigPrimDigiOccupancy_, meEBTrigPrimDigiOccupancyProjEta_, meEBTrigPrimDigiOccupancyProjEtaThr_, meEBTrigPrimDigiOccupancyProjPhi_, meEBTrigPrimDigiOccupancyProjPhiThr_, meEBTrigPrimDigiOccupancyThr_, meOccupancy_, meOccupancyMem_, meSpectrum_, prefixME_, Numbers::sEB(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), and DQMStore::tag().

Referenced by analyze().

                               {

  init_ = true;

  char histo[200];

  if ( dqmStore_ ) {
    dqmStore_->setCurrentFolder(prefixME_ + "/EBOccupancyTask");

    for (int i = 0; i < 36; i++) {
      sprintf(histo, "EBOT digi occupancy %s", Numbers::sEB(i+1).c_str());
      meOccupancy_[i] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
      meOccupancy_[i]->setAxisTitle("ieta", 1);
      meOccupancy_[i]->setAxisTitle("iphi", 2);
      dqmStore_->tag(meOccupancy_[i], i+1);

      sprintf(histo, "EBOT MEM digi occupancy %s", Numbers::sEB(i+1).c_str());
      meOccupancyMem_[i] = dqmStore_->book2D(histo, histo, 10, 0., 10., 5, 0., 5.);
      meOccupancyMem_[i]->setAxisTitle("pseudo-strip", 1);
      meOccupancyMem_[i]->setAxisTitle("channel", 2);
      dqmStore_->tag(meOccupancyMem_[i], i+1);

      sprintf(histo, "EBOT rec hit energy %s", Numbers::sEB(i+1).c_str());
      meEBRecHitEnergy_[i] = dqmStore_->bookProfile2D(histo, histo, 85, 0., 85., 20, 0., 20., 100, 0., 100., "s");
      meEBRecHitEnergy_[i]->setAxisTitle("ieta", 1);
      meEBRecHitEnergy_[i]->setAxisTitle("iphi", 2);
      meEBRecHitEnergy_[i]->setAxisTitle("energy (GeV)", 3);
      dqmStore_->tag(meEBRecHitEnergy_[i], i+1);

      sprintf(histo, "EBOT energy spectrum %s", Numbers::sEB(i+1).c_str());
      meSpectrum_[i] = dqmStore_->book1D(histo, histo, 100, 0., 1.5);
      meSpectrum_[i]->setAxisTitle("energy (GeV)", 1);
      dqmStore_->tag(meSpectrum_[i], i+1);
    }

    sprintf(histo, "EBOT rec hit spectrum");
    meEBRecHitSpectrum_ = dqmStore_->book1D(histo, histo, 100, 0., 10.);
    meEBRecHitSpectrum_->setAxisTitle("energy (GeV)", 1);

    sprintf(histo, "EBOT digi occupancy");
    meEBDigiOccupancy_ = dqmStore_->book2D(histo, histo, 72, 0., 360., 34, -85., 85.);
    meEBDigiOccupancy_->setAxisTitle("jphi", 1);
    meEBDigiOccupancy_->setAxisTitle("jeta", 2);
    sprintf(histo, "EBOT digi occupancy projection eta");
    meEBDigiOccupancyProjEta_ = dqmStore_->book1DD(histo, histo, 34, -85., 85.);
    meEBDigiOccupancyProjEta_->setAxisTitle("jeta", 1);
    meEBDigiOccupancyProjEta_->setAxisTitle("number of digis", 2);
    sprintf(histo, "EBOT digi occupancy projection phi");
    meEBDigiOccupancyProjPhi_ = dqmStore_->book1DD(histo, histo, 72, 0., 360.);
    meEBDigiOccupancyProjPhi_->setAxisTitle("jphi", 1);
    meEBDigiOccupancyProjPhi_->setAxisTitle("number of digis", 2);

    sprintf(histo, "EBOT rec hit occupancy");
    meEBRecHitOccupancy_ = dqmStore_->book2D(histo, histo, 72, 0., 360., 34, -85., 85.);
    meEBRecHitOccupancy_->setAxisTitle("jphi", 1);
    meEBRecHitOccupancy_->setAxisTitle("jeta", 2);
    sprintf(histo, "EBOT rec hit occupancy projection eta");
    meEBRecHitOccupancyProjEta_ = dqmStore_->book1DD(histo, histo, 34, -85., 85.);
    meEBRecHitOccupancyProjEta_->setAxisTitle("jeta", 1);
    meEBRecHitOccupancyProjEta_->setAxisTitle("number of hits", 2);
    sprintf(histo, "EBOT rec hit occupancy projection phi");
    meEBRecHitOccupancyProjPhi_ = dqmStore_->book1DD(histo, histo, 72, 0., 360.);
    meEBRecHitOccupancyProjPhi_->setAxisTitle("jphi", 1);
    meEBRecHitOccupancyProjPhi_->setAxisTitle("number of hits", 2);

    sprintf(histo, "EBOT rec hit thr occupancy");
    meEBRecHitOccupancyThr_ = dqmStore_->book2D(histo, histo, 72, 0., 360., 34, -85., 85.);
    meEBRecHitOccupancyThr_->setAxisTitle("jphi", 1);
    meEBRecHitOccupancyThr_->setAxisTitle("jeta", 2);
    sprintf(histo, "EBOT rec hit thr occupancy projection eta");
    meEBRecHitOccupancyProjEtaThr_ = dqmStore_->book1DD(histo, histo, 34, -85., 85.);
    meEBRecHitOccupancyProjEtaThr_->setAxisTitle("jeta", 1);
    meEBRecHitOccupancyProjEtaThr_->setAxisTitle("number of hits", 2);
    sprintf(histo, "EBOT rec hit thr occupancy projection phi");
    meEBRecHitOccupancyProjPhiThr_ = dqmStore_->book1DD(histo, histo, 72, 0., 360.);
    meEBRecHitOccupancyProjPhiThr_->setAxisTitle("jphi", 1);
    meEBRecHitOccupancyProjPhiThr_->setAxisTitle("number of hits", 2);

    sprintf(histo, "EBOT TP digi occupancy");
    meEBTrigPrimDigiOccupancy_ = dqmStore_->book2D(histo, histo, 72, 0., 72., 34, -17., 17.);
    meEBTrigPrimDigiOccupancy_->setAxisTitle("jphi'", 1);
    meEBTrigPrimDigiOccupancy_->setAxisTitle("jeta'", 2);
    sprintf(histo, "EBOT TP digi occupancy projection eta");
    meEBTrigPrimDigiOccupancyProjEta_ = dqmStore_->book1DD(histo, histo, 34, -17., 17.);
    meEBTrigPrimDigiOccupancyProjEta_->setAxisTitle("jeta'", 1);
    meEBTrigPrimDigiOccupancyProjEta_->setAxisTitle("number of TP digis", 2);
    sprintf(histo, "EBOT TP digi occupancy projection phi");
    meEBTrigPrimDigiOccupancyProjPhi_ = dqmStore_->book1DD(histo, histo, 72, 0., 72.);
    meEBTrigPrimDigiOccupancyProjPhi_->setAxisTitle("jphi'", 1);
    meEBTrigPrimDigiOccupancyProjPhi_->setAxisTitle("number of TP digis", 2);

    sprintf(histo, "EBOT TP digi thr occupancy");
    meEBTrigPrimDigiOccupancyThr_ = dqmStore_->book2D(histo, histo, 72, 0., 72., 34, -17., 17.);
    meEBTrigPrimDigiOccupancyThr_->setAxisTitle("jphi'", 1);
    meEBTrigPrimDigiOccupancyThr_->setAxisTitle("jeta'", 2);
    sprintf(histo, "EBOT TP digi thr occupancy projection eta");
    meEBTrigPrimDigiOccupancyProjEtaThr_ = dqmStore_->book1DD(histo, histo, 34, -17., 17.);
    meEBTrigPrimDigiOccupancyProjEtaThr_->setAxisTitle("jeta'", 1);
    meEBTrigPrimDigiOccupancyProjEtaThr_->setAxisTitle("number of TP digis", 2);
    sprintf(histo, "EBOT TP digi thr occupancy projection phi");
    meEBTrigPrimDigiOccupancyProjPhiThr_ = dqmStore_->book1DD(histo, histo, 72, 0., 72.);
    meEBTrigPrimDigiOccupancyProjPhiThr_->setAxisTitle("jphi'", 1);
    meEBTrigPrimDigiOccupancyProjPhiThr_->setAxisTitle("number of TP digis", 2);

    sprintf(histo, "EBOT test pulse digi occupancy");
    meEBTestPulseDigiOccupancy_ = dqmStore_->book2D(histo, histo, 72, 0., 360., 34, -85., 85.);
    meEBTestPulseDigiOccupancy_->setAxisTitle("jphi'", 1);
    meEBTestPulseDigiOccupancy_->setAxisTitle("jeta'", 2);

    sprintf(histo, "EBOT laser digi occupancy");
    meEBLaserDigiOccupancy_ = dqmStore_->book2D(histo, histo, 72, 0., 360., 34, -85., 85.);
    meEBLaserDigiOccupancy_->setAxisTitle("jphi'", 1);
    meEBLaserDigiOccupancy_->setAxisTitle("jeta'", 2);

    sprintf(histo, "EBOT pedestal digi occupancy");
    meEBPedestalDigiOccupancy_ = dqmStore_->book2D(histo, histo, 72, 0., 360., 34, -85., 85.);
    meEBPedestalDigiOccupancy_->setAxisTitle("jphi'", 1);
    meEBPedestalDigiOccupancy_->setAxisTitle("jeta'", 2);

  }

}

Member Data Documentation

Definition at line 60 of file EBOccupancyTask.h.

Referenced by beginJob(), cleanup(), EBOccupancyTask(), and setup().

Definition at line 69 of file EBOccupancyTask.h.

Referenced by analyze(), and EBOccupancyTask().

Definition at line 70 of file EBOccupancyTask.h.

Referenced by analyze(), and EBOccupancyTask().

Definition at line 68 of file EBOccupancyTask.h.

Referenced by analyze(), and EBOccupancyTask().

Definition at line 71 of file EBOccupancyTask.h.

Referenced by analyze(), and EBOccupancyTask().

Definition at line 72 of file EBOccupancyTask.h.

Referenced by analyze(), and EBOccupancyTask().

Definition at line 64 of file EBOccupancyTask.h.

Referenced by EBOccupancyTask(), and endJob().

int EBOccupancyTask::ievt_ [private]

Definition at line 58 of file EBOccupancyTask.h.

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

bool EBOccupancyTask::init_ [private]

Definition at line 105 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), and setup().

Definition at line 83 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 84 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 85 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 99 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 100 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 79 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 86 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 87 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 90 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 88 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 91 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 89 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 82 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 98 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 92 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 93 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 96 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 94 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 97 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 95 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 76 of file EBOccupancyTask.h.

Definition at line 77 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 78 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

Definition at line 66 of file EBOccupancyTask.h.

Referenced by beginRun(), and EBOccupancyTask().

Definition at line 80 of file EBOccupancyTask.h.

Referenced by analyze(), cleanup(), EBOccupancyTask(), reset(), and setup().

std::string EBOccupancyTask::prefixME_ [private]

Definition at line 62 of file EBOccupancyTask.h.

Referenced by beginJob(), cleanup(), EBOccupancyTask(), and setup().

Definition at line 102 of file EBOccupancyTask.h.

Referenced by analyze(), and EBOccupancyTask().

Definition at line 103 of file EBOccupancyTask.h.

Referenced by analyze(), and EBOccupancyTask().