CMS 3D CMS Logo

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

EBTriggerTowerTask Class Reference

#include <EBTriggerTowerTask.h>

Inheritance diagram for EBTriggerTowerTask:
edm::EDAnalyzer

List of all members.

Public Member Functions

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

Static Public Attributes

static const int nSM = 36
 number of supermodules
static const int nTTEta = 17
 number of trigger towers in eta
static const int nTTPhi = 4
 number of trigger towers in phi

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

typedef std::vector
< MonitorElement * > 
array1
 1D array

Private Member Functions

void processDigis (const edm::Event &e, const edm::Handle< EcalTrigPrimDigiCollection > &digis, array1 &meEtMap, array1 &meVeto, const edm::Handle< EcalTrigPrimDigiCollection > &compDigis=edm::Handle< EcalTrigPrimDigiCollection >(), const edm::Handle< edm::TriggerResults > &hltResults=edm::Handle< edm::TriggerResults >())
 process a collection of digis, either real or emulated
void reserveArray (array1 &array)
 reserve an array to hold one histogram per supermodule
void setup (std::string const &nameext, std::string const &folder, bool emulated)
 book monitor elements for real, or emulated digis

Private Attributes

DQMStoredqmStore_
 DQM back-end interface.
edm::InputTag EBDigiCollection_
 to find the input collection of crystal digis
edm::InputTag emulCollection_
 to find the input collection of emulated digis
bool enableCleanup_
 remove MEs
std::string HLTCaloHLTBit_
std::string HLTMuonHLTBit_
edm::InputTag HLTResultsCollection_
 to find the input collection of HLT bits
int ievt_
 local event counter
bool init_
 init flag
array1 meEmulError_
array1 meEmulMatch_
MonitorElementmeEmulMatchIndex1D_
 1D emulator match 1D
MonitorElementmeEmulMatchMaxIndex1D_
MonitorElementmeEtBxReal_
 number and ET average of TP vs bx
array1 meEtMapEmul_
 Emulated Et vs ix vs iy, for each SM.
array1 meEtMapReal_
 Et vs ix vs iy, for each SM.
MonitorElementmeEtSpectrumEmul_
MonitorElementmeEtSpectrumEmulMax_
MonitorElementmeEtSpectrumReal_
 ET spectrums for the whole EB.
MonitorElementmeOccupancyBxReal_
bool mergeRuns_
 merge MEs across runs
MonitorElementmeTCCTimingCalo_
 TCC timing.
MonitorElementmeTCCTimingMuon_
array1 meVetoEmul_
 Emulated fine grain veto vs iphi vs ieta, for each SM.
array1 meVetoEmulError_
array1 meVetoReal_
 fine grain veto vs iphi vs ieta, for each SM
std::string outputFile_
 debug output root file. if empty, no output file created.
std::string prefixME_
 path to MEs
edm::InputTag realCollection_
 to find the input collection of real digis

Detailed Description

Definition at line 23 of file EBTriggerTowerTask.h.


Member Typedef Documentation

typedef std::vector<MonitorElement*> EBTriggerTowerTask::array1 [private]

1D array

Definition at line 72 of file EBTriggerTowerTask.h.


Constructor & Destructor Documentation

EBTriggerTowerTask::EBTriggerTowerTask ( const edm::ParameterSet ps)

Constructor.

Definition at line 27 of file EBTriggerTowerTask.cc.

References dqmStore_, EBDigiCollection_, emulCollection_, enableCleanup_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLTCaloHLTBit_, HLTMuonHLTBit_, HLTResultsCollection_, init_, LogDebug, meEmulError_, meEmulMatch_, meEmulMatchIndex1D_, meEmulMatchMaxIndex1D_, meEtBxReal_, meEtMapEmul_, meEtMapReal_, meEtSpectrumEmul_, meEtSpectrumEmulMax_, meEtSpectrumReal_, meOccupancyBxReal_, mergeRuns_, meTCCTimingCalo_, meTCCTimingMuon_, meVetoEmul_, meVetoEmulError_, meVetoReal_, cmsCodeRules::cppFunctionSkipper::operator, outputFile_, prefixME_, realCollection_, and reserveArray().

                                                                {

  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);

  meEtSpectrumReal_ = 0;
  meEtSpectrumEmul_ = 0;
  meEtSpectrumEmulMax_ = 0;
  meEtBxReal_ = 0;
  meOccupancyBxReal_ = 0;
  meTCCTimingCalo_ = 0;
  meTCCTimingMuon_ = 0;
  meEmulMatchIndex1D_ = 0;
  meEmulMatchMaxIndex1D_ = 0;

  reserveArray(meEtMapReal_);
  reserveArray(meVetoReal_);
  reserveArray(meEtMapEmul_);
  reserveArray(meVetoEmul_);
  reserveArray(meEmulError_);
  reserveArray(meEmulMatch_);
  reserveArray(meVetoEmulError_);

  realCollection_ =  ps.getParameter<edm::InputTag>("EcalTrigPrimDigiCollectionReal");
  emulCollection_ =  ps.getParameter<edm::InputTag>("EcalTrigPrimDigiCollectionEmul");
  EBDigiCollection_ = ps.getParameter<edm::InputTag>("EBDigiCollection");
  HLTResultsCollection_ = ps.getParameter<edm::InputTag>("HLTResultsCollection");

  HLTCaloHLTBit_ = ps.getUntrackedParameter<std::string>("HLTCaloHLTBit", "");
  HLTMuonHLTBit_ = ps.getUntrackedParameter<std::string>("HLTMuonHLTBit", "");

  outputFile_ = ps.getUntrackedParameter<std::string>("OutputRootFile", "");

  LogDebug("EBTriggerTowerTask") << "REAL     digis: " << realCollection_;
  LogDebug("EBTriggerTowerTask") << "EMULATED digis: " << emulCollection_;

}
EBTriggerTowerTask::~EBTriggerTowerTask ( ) [virtual]

Destructor.

Definition at line 72 of file EBTriggerTowerTask.cc.

                                       {

}

Member Function Documentation

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

Analyze.

Implements edm::EDAnalyzer.

Definition at line 276 of file EBTriggerTowerTask.cc.

References emulCollection_, edm::Event::getByLabel(), JetPDSkim_cfg::hltResults, HLTResultsCollection_, ievt_, init_, edm::InputTag::instance(), edm::InputTag::label(), LogDebug, meEtMapEmul_, meEtMapReal_, meVetoEmul_, meVetoReal_, processDigis(), realCollection_, and setup().

                                                                         {

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

  ievt_++;

  edm::Handle<EcalTrigPrimDigiCollection> realDigis;

  if ( e.getByLabel(realCollection_, realDigis) ) {

    int nebtpd = realDigis->size();
    LogDebug("EBTriggerTowerTask") << "event " << ievt_ <<" trigger primitive digi collection size: " << nebtpd;

    processDigis( e,
                  realDigis,
                  meEtMapReal_,
                  meVetoReal_);

  } else {
    edm::LogWarning("EBTriggerTowerTask") << realCollection_ << " not available";
  }

  edm::Handle<EcalTrigPrimDigiCollection> emulDigis;

  if ( e.getByLabel(emulCollection_, emulDigis) ) {

    edm::Handle<edm::TriggerResults> hltResults;

    if ( !e.getByLabel(HLTResultsCollection_, hltResults) ) {
      HLTResultsCollection_ = edm::InputTag(HLTResultsCollection_.label(), HLTResultsCollection_.instance(), "HLT");
    }

    if ( !e.getByLabel(HLTResultsCollection_, hltResults) ) {
      HLTResultsCollection_ = edm::InputTag(HLTResultsCollection_.label(), HLTResultsCollection_.instance(), "FU");
    }

    if ( e.getByLabel(HLTResultsCollection_, hltResults) ) {

      processDigis( e,
                    emulDigis,
                    meEtMapEmul_,
                    meVetoEmul_,
                    realDigis,
                    hltResults);

    } else {
      edm::LogWarning("EBTriggerTowerTask") << HLTResultsCollection_ << " not available";
    }

  } else {
    edm::LogInfo("EBTriggerTowerTask") << emulCollection_ << " not available";
  }

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

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 83 of file EBTriggerTowerTask.cc.

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

                                     {

  ievt_ = 0;

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

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

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 94 of file EBTriggerTowerTask.cc.

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

                                                                         {

  Numbers::initGeometry(c, false);

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

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

Cleanup.

Definition at line 252 of file EBTriggerTowerTask.cc.

References dqmStore_, init_, outputFile_, prefixME_, DQMStore::rmdir(), and DQMStore::save().

Referenced by endJob().

                                     {

  if ( ! init_ ) return;

  if ( dqmStore_ ) {

    if ( !outputFile_.empty() ) dqmStore_->save( outputFile_.c_str() );

    dqmStore_->rmdir( prefixME_ + "/EBTriggerTowerTask" );

  }

  init_ = false;

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

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 268 of file EBTriggerTowerTask.cc.

References cleanup(), enableCleanup_, and ievt_.

                                   {

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

  if ( enableCleanup_ ) this->cleanup();

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

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 102 of file EBTriggerTowerTask.cc.

                                                                       {

}
void EBTriggerTowerTask::processDigis ( const edm::Event e,
const edm::Handle< EcalTrigPrimDigiCollection > &  digis,
array1 meEtMap,
array1 meVeto,
const edm::Handle< EcalTrigPrimDigiCollection > &  compDigis = edm::Handle<EcalTrigPrimDigiCollection>(),
const edm::Handle< edm::TriggerResults > &  hltResults = edm::Handle<edm::TriggerResults>() 
) [private]

process a collection of digis, either real or emulated

Definition at line 332 of file EBTriggerTowerTask.cc.

References abs, accept(), edm::EventBase::bunchCrossing(), EBDigiCollection_, EcalBarrel, MonitorElement::Fill(), edm::Event::getByLabel(), HLTCaloHLTBit_, HLTMuonHLTBit_, getHLTprescales::index, Numbers::iSM(), edm::HandleBase::isValid(), Numbers::iTCC(), Numbers::iTT(), j, meEmulError_, meEmulMatch_, meEmulMatchIndex1D_, meEmulMatchMaxIndex1D_, meEtBxReal_, meEtSpectrumEmul_, meEtSpectrumEmulMax_, meEtSpectrumReal_, meOccupancyBxReal_, meTCCTimingCalo_, meTCCTimingMuon_, meVetoEmulError_, Numbers::subDet(), edm::TriggerNames::triggerName(), and edm::Event::triggerNames().

Referenced by analyze().

                                                                                   {

  int bx = e.bunchCrossing();
  int nTP = 0;

  //  map<EcalTrigTowerDetId, int> crystalsInTower;
  int readoutCrystalsInTower[108][68];
    for (int itcc = 0; itcc < 108; itcc++) {
    for (int itt = 0; itt < 68; itt++) readoutCrystalsInTower[itcc][itt] = 0;
  }

  if ( compDigis.isValid() ) {

    edm::Handle<EBDigiCollection> crystalDigis;

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

      for ( EBDigiCollection::const_iterator cDigiItr = crystalDigis->begin(); cDigiItr != crystalDigis->end(); ++cDigiItr ) {

        EBDetId id = cDigiItr->id();
        EcalTrigTowerDetId towid = id.tower();

        int itcc = Numbers::iTCC( towid );
        int itt = Numbers::iTT( towid );

        readoutCrystalsInTower[itcc-1][itt-1]++;

      }

    } else {
      edm::LogWarning("EBTriggerTowerTask") << EBDigiCollection_ << " not available";
    }

  }

  bool caloTrg = false;
  bool muonTrg = false;

  if ( hltResults.isValid() ) {

    int ntrigs = hltResults->size();
    if ( ntrigs!=0 ) {

      const edm::TriggerNames & triggerNames = e.triggerNames(*hltResults);

      for ( int itrig = 0; itrig != ntrigs; ++itrig ) {
        std::string trigName = triggerNames.triggerName(itrig);
        bool accept = hltResults->accept(itrig);

        if ( trigName == HLTCaloHLTBit_ ) caloTrg = accept;

        if ( trigName == HLTMuonHLTBit_ ) muonTrg = accept;

      }

    } else {
      edm::LogWarning("EBTriggerTowerTask") << " zero size trigger names in input TriggerResults";
    }

  }

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

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

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

    int iet = std::abs(tpdigiItr->id().ieta());
    int ipt = tpdigiItr->id().iphi();

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

    // phi_tower: SM-local phi runs opposite to global in EB+
    if ( tpdigiItr->id().zside() > 0 ) ipt = 5 - ipt;

    float xiet = iet-0.5;
    float xipt = ipt-0.5;

    int itt = Numbers::iTT( tpdigiItr->id() );
    int itcc = Numbers::iTCC( tpdigiItr->id() );

    float xvalEt = tpdigiItr->compressedEt();
    float xvalVeto = 0.5 + tpdigiItr->fineGrain();

    bool good = true;
    bool goodVeto = true;

    int compDigiInterest = -1;

    bool matchSample[6];
    for (int j=0; j<6; j++) matchSample[j]=false;

    if ( compDigis.isValid() ) {

      if ( meEtSpectrumEmul_ ) meEtSpectrumEmul_->Fill( xvalEt );

      float maxEt = 0;
      int maxTPIndex = -1;
      for (int j=0; j<5; j++) {
        float EtTP = (*tpdigiItr)[j].compressedEt();
        if ( EtTP > maxEt ) {
          maxEt = EtTP;
          maxTPIndex = j+1;
        }
      }

      if ( meEtSpectrumEmulMax_ ) meEtSpectrumEmulMax_->Fill( maxEt );
      if ( meEmulMatchMaxIndex1D_ && maxEt > 0 ) meEmulMatchMaxIndex1D_->Fill( maxTPIndex );

      EcalTrigPrimDigiCollection::const_iterator compDigiItr = compDigis->find( tpdigiItr->id().rawId() );
      if ( compDigiItr != compDigis->end() ) {
        int compDigiEt = compDigiItr->compressedEt();
        compDigiInterest = (compDigiItr->ttFlag() & 0x3);

        if ( compDigiEt > 0 ) nTP++;
        if ( meEtSpectrumReal_ ) meEtSpectrumReal_->Fill( compDigiEt );
        if ( meEtBxReal_ && compDigiEt > 0 ) meEtBxReal_->Fill( bx, compDigiEt );

        // compare the 5 TPs with different time-windows
        // sample 0 means no match, 1-5: sample of the TP that matches
        matchSample[0]=false;
        bool matchedAny=false;

        for (int j=0; j<5; j++) {
          if ((*tpdigiItr)[j].compressedEt() == compDigiEt ) {
            matchSample[j+1]=true;
            matchedAny=true;
          } else {
            matchSample[j+1]=false;
          }
        }

        if (!matchedAny) matchSample[0]=true;

        // check if the tower has been readout completely and if it is medium or high interest
        if (readoutCrystalsInTower[itcc-1][itt-1] == 25 &&
            (compDigiInterest == 1 || compDigiInterest == 3) && compDigiEt > 0) {

          if ( tpdigiItr->compressedEt() != compDigiEt ) {
            good = false;
          }
          if ( tpdigiItr->fineGrain() != compDigiItr->fineGrain() ) {
            goodVeto = false;
          }

          for (int j=0; j<6; j++) {
            if (matchSample[j]) {

              int index = ( j==0 ) ? -1 : j;

              meEmulMatchIndex1D_->Fill(index+0.5);

              meEmulMatch_[ismt-1]->Fill(xiet, xipt, j+0.5);
              if ( meTCCTimingCalo_ && caloTrg ) meTCCTimingCalo_->Fill( itcc, index+0.5 );
              if ( meTCCTimingMuon_ && muonTrg ) meTCCTimingMuon_->Fill( itcc, index+0.5 );

            }
          }

        } // check readout

      } else {
        good = false;
        goodVeto = false;
      }

      if (!good ) {
        if ( meEmulError_[ismt-1] ) meEmulError_[ismt-1]->Fill(xiet, xipt);
      }
      if (!goodVeto) {
        if ( meVetoEmulError_[ismt-1] ) meVetoEmulError_[ismt-1]->Fill(xiet, xipt);
      }

    } // compDigis.isValid

    if ( meEtMap[ismt-1] ) meEtMap[ismt-1]->Fill(xiet, xipt, xvalEt);
    if ( meVeto[ismt-1] ) meVeto[ismt-1]->Fill(xiet, xipt, xvalVeto);

  } // loop on TP

  if ( meOccupancyBxReal_ ) meOccupancyBxReal_->Fill( bx, nTP );

}
void EBTriggerTowerTask::reserveArray ( array1 array) [private]

reserve an array to hold one histogram per supermodule

Definition at line 76 of file EBTriggerTowerTask.cc.

References nSM.

Referenced by EBTriggerTowerTask().

                                                     {

  array.reserve( nSM );
  array.resize( nSM, static_cast<MonitorElement*>(0) );

}
void EBTriggerTowerTask::reset ( void  ) [protected]
void EBTriggerTowerTask::setup ( void  ) [protected]

Setup.

Definition at line 132 of file EBTriggerTowerTask.cc.

References dqmStore_, init_, and prefixME_.

Referenced by analyze().

                                  {

  init_ = true;

  if ( dqmStore_ ) {
    setup( "Real Digis",
           (prefixME_ + "/EBTriggerTowerTask").c_str(), false );

    setup( "Emulated Digis",
           (prefixME_ + "/EBTriggerTowerTask/Emulated").c_str(), true);
  }
  else {
    edm::LogError("EBTriggerTowerTask") << "Bad DQMStore, cannot book MonitorElements.";
  }
}
void EBTriggerTowerTask::setup ( std::string const &  nameext,
std::string const &  folder,
bool  emulated 
) [private]

book monitor elements for real, or emulated digis

Definition at line 148 of file EBTriggerTowerTask.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::book3D(), DQMStore::bookProfile(), DQMStore::bookProfile2D(), dqmStore_, HLTCaloHLTBit_, HLTMuonHLTBit_, i, meEmulError_, meEmulMatch_, meEmulMatchIndex1D_, meEmulMatchMaxIndex1D_, meEtBxReal_, meEtMapEmul_, meEtMapReal_, meEtSpectrumEmul_, meEtSpectrumEmulMax_, meEtSpectrumReal_, meOccupancyBxReal_, meTCCTimingCalo_, meTCCTimingMuon_, meVetoEmulError_, mergeVDriftHistosByStation::name, nTTEta, nTTPhi, Numbers::sEB(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), DQMStore::tag(), and fw3dlego::xbins.

                                                {

  array1*  meEtMap = &meEtMapReal_;

  if ( emulated ) {
    meEtMap = &meEtMapEmul_;
  }

  dqmStore_->setCurrentFolder(folder);

  std::string name;

  if (!emulated) {
    name = "EBTTT Et spectrum " + nameext;
    meEtSpectrumReal_ = dqmStore_->book1D(name, name, 256, 0., 256.);
    meEtSpectrumReal_->setAxisTitle("energy (ADC)", 1);

    name = "EBTTT TP matching index";
    meEmulMatchIndex1D_ = dqmStore_->book1D(name, name, 7, -1., 6.);
    meEmulMatchIndex1D_->setAxisTitle("TP data matching emulator", 1);

    name = "EBTTT max TP matching index";
    meEmulMatchMaxIndex1D_ = dqmStore_->book1D(name, name, 7, -1., 6.);
    meEmulMatchMaxIndex1D_->setAxisTitle("Max TP data matching emulator", 1);

    double xbins[51];
    for ( int i=0; i<=11; i++ ) xbins[i] = i-1;  // begin of orbit
    // abort gap in presence of calibration: [3381-3500]
    // abort gap in absence of calibration: [3444-3500]
    // using the wider abort gap always, start finer binning at bx=3371
    for ( int i=12; i<=22; i++) xbins[i] = 3371+i-12;
    // use 29 bins for the abort gap
    for ( int i=23; i<=50; i++) xbins[i] = 3382+(i-23)*6;

    name = "EBTTT Et vs bx " + nameext;
    meEtBxReal_ = dqmStore_->bookProfile(name, name, 50, xbins, 256, 0, 256);
    meEtBxReal_->setAxisTitle("bunch crossing", 1);
    meEtBxReal_->setAxisTitle("energy (ADC)", 2);

    name = "EBTTT TP occupancy vs bx " + nameext;
    meOccupancyBxReal_ = dqmStore_->bookProfile(name, name, 50, xbins, 2448, 0, 2448);
    meOccupancyBxReal_->setAxisTitle("bunch crossing", 1);
    meOccupancyBxReal_->setAxisTitle("TP number", 2);

    if ( HLTCaloHLTBit_ != "" ) {
      name = "EBTTT TCC timing calo triggers " + nameext;
      meTCCTimingCalo_ = dqmStore_->book2D(name, name, 36, 37, 73, 7, -1., 6.);
      meTCCTimingCalo_->setAxisTitle("nTCC", 1);
      meTCCTimingCalo_->setAxisTitle("TP data matching emulator", 2);
    }

    if ( HLTMuonHLTBit_ != "" ) {
      name = "EBTTT TCC timing muon triggers " + nameext;
      meTCCTimingMuon_ = dqmStore_->book2D(name, name, 36, 37, 73, 7, -1., 6.);
      meTCCTimingMuon_->setAxisTitle("nTCC", 1);
      meTCCTimingMuon_->setAxisTitle("TP data matching emulator", 2);
    }

  } else {
    name = "EBTTT Et spectrum " + nameext;
    meEtSpectrumEmul_ = dqmStore_->book1D(name, name, 256, 0., 256.);
    meEtSpectrumEmul_->setAxisTitle("energy (ADC)", 1);

    name = "EBTTT Et spectrum " + nameext + " max";
    meEtSpectrumEmulMax_ = dqmStore_->book1D(name, name, 256, 0., 256.);
    meEtSpectrumEmulMax_->setAxisTitle("energy (ADC)", 1);
  }

  for (int i = 0; i < 36; i++) {

    name = "EBTTT Et map " + nameext + " " + Numbers::sEB(i+1);
    (*meEtMap)[i] = dqmStore_->bookProfile2D(name, name, nTTEta, 0, nTTEta, nTTPhi, 0, nTTPhi, 256, 0, 256.);
    (*meEtMap)[i]->setAxisTitle("ieta'", 1);
    (*meEtMap)[i]->setAxisTitle("iphi'", 2);
    dqmStore_->tag((*meEtMap)[i], i+1);

    if (!emulated) {

      name = "EBTTT EmulError " + Numbers::sEB(i+1);
      meEmulError_[i] = dqmStore_->book2D(name, name, nTTEta, 0., nTTEta, nTTPhi, 0., nTTPhi );
      meEmulError_[i]->setAxisTitle("ieta'", 1);
      meEmulError_[i]->setAxisTitle("iphi'", 2);
      dqmStore_->tag(meEmulError_[i], i+1);

      name = "EBTTT EmulMatch " + Numbers::sEB(i+1);
      meEmulMatch_[i] = dqmStore_->book3D(name, name, nTTEta, 0., nTTEta, nTTPhi, 0., nTTPhi, 6, 0., 6.);
      meEmulMatch_[i]->setAxisTitle("ieta'", 1);
      meEmulMatch_[i]->setAxisTitle("iphi'", 2);
      meEmulMatch_[i]->setAxisTitle("TP timing", 3);
      dqmStore_->tag(meEmulMatch_[i], i+1);

      name ="EBTTT EmulFineGrainVetoError " + Numbers::sEB(i+1);
      meVetoEmulError_[i] = dqmStore_->book2D(name, name, nTTEta, 0., nTTEta, nTTPhi, 0., nTTPhi);
      meVetoEmulError_[i]->setAxisTitle("ieta'", 1);
      meVetoEmulError_[i]->setAxisTitle("iphi'", 2);
      dqmStore_->tag(meVetoEmulError_[i], i+1);

    }
  }

}

Member Data Documentation

DQM back-end interface.

Definition at line 120 of file EBTriggerTowerTask.h.

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

to find the input collection of crystal digis

Definition at line 138 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), and processDigis().

to find the input collection of emulated digis

Definition at line 135 of file EBTriggerTowerTask.h.

Referenced by analyze(), and EBTriggerTowerTask().

remove MEs

Definition at line 126 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), and endJob().

std::string EBTriggerTowerTask::HLTCaloHLTBit_ [private]

Definition at line 142 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), and setup().

std::string EBTriggerTowerTask::HLTMuonHLTBit_ [private]

Definition at line 143 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), and setup().

to find the input collection of HLT bits

Definition at line 141 of file EBTriggerTowerTask.h.

Referenced by analyze(), and EBTriggerTowerTask().

local event counter

Definition at line 95 of file EBTriggerTowerTask.h.

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

bool EBTriggerTowerTask::init_ [private]

init flag

Definition at line 117 of file EBTriggerTowerTask.h.

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

error flag vs iphi vs ieta, for each SM the error flag is set to true in case of a discrepancy between the emulator and the real data

Definition at line 112 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

Definition at line 113 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

1D emulator match 1D

Definition at line 149 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

Definition at line 150 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

number and ET average of TP vs bx

Definition at line 158 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

Emulated Et vs ix vs iy, for each SM.

Definition at line 104 of file EBTriggerTowerTask.h.

Referenced by analyze(), EBTriggerTowerTask(), reset(), and setup().

Et vs ix vs iy, for each SM.

Definition at line 98 of file EBTriggerTowerTask.h.

Referenced by analyze(), EBTriggerTowerTask(), reset(), and setup().

Definition at line 154 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

Definition at line 155 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

ET spectrums for the whole EB.

Definition at line 153 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

Definition at line 159 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

merge MEs across runs

Definition at line 129 of file EBTriggerTowerTask.h.

Referenced by beginRun(), and EBTriggerTowerTask().

TCC timing.

Definition at line 162 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

Definition at line 163 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

Emulated fine grain veto vs iphi vs ieta, for each SM.

Definition at line 107 of file EBTriggerTowerTask.h.

Referenced by analyze(), EBTriggerTowerTask(), and reset().

Definition at line 114 of file EBTriggerTowerTask.h.

Referenced by EBTriggerTowerTask(), processDigis(), reset(), and setup().

fine grain veto vs iphi vs ieta, for each SM

Definition at line 101 of file EBTriggerTowerTask.h.

Referenced by analyze(), EBTriggerTowerTask(), and reset().

const int EBTriggerTowerTask::nSM = 36 [static]

number of supermodules

Definition at line 40 of file EBTriggerTowerTask.h.

Referenced by reserveArray().

const int EBTriggerTowerTask::nTTEta = 17 [static]

number of trigger towers in eta

Definition at line 34 of file EBTriggerTowerTask.h.

Referenced by setup().

const int EBTriggerTowerTask::nTTPhi = 4 [static]

number of trigger towers in phi

Definition at line 37 of file EBTriggerTowerTask.h.

Referenced by setup().

std::string EBTriggerTowerTask::outputFile_ [private]

debug output root file. if empty, no output file created.

Definition at line 146 of file EBTriggerTowerTask.h.

Referenced by cleanup(), and EBTriggerTowerTask().

std::string EBTriggerTowerTask::prefixME_ [private]

path to MEs

Definition at line 123 of file EBTriggerTowerTask.h.

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

to find the input collection of real digis

Definition at line 132 of file EBTriggerTowerTask.h.

Referenced by analyze(), and EBTriggerTowerTask().