CMS 3D CMS Logo

EETimingTask Class Reference

#include <DQM/EcalEndcapMonitorTasks/interface/EETimingTask.h>

Inheritance diagram for EETimingTask:

edm::EDAnalyzer

List of all members.

Public Member Functions

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

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze.
void beginJob (const edm::EventSetup &c)
 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 Attributes

DQMStoredqmStore_
edm::InputTag EcalRawDataCollection_
edm::InputTag EcalUncalibratedRecHitCollection_
bool enableCleanup_
int ievt_
bool init_
bool mergeRuns_
MonitorElementmeTimeAmpli_ [18]
MonitorElementmeTimeMap_ [18]
std::string prefixME_


Detailed Description

Definition at line 20 of file EETimingTask.h.


Constructor & Destructor Documentation

EETimingTask::EETimingTask ( const edm::ParameterSet ps  ) 

Constructor.

Definition at line 34 of file EETimingTask.cc.

References dqmStore_, EcalRawDataCollection_, EcalUncalibratedRecHitCollection_, enableCleanup_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), i, init_, mergeRuns_, meTimeAmpli_, meTimeMap_, and prefixME_.

00034                                                 {
00035 
00036   init_ = false;
00037 
00038   dqmStore_ = Service<DQMStore>().operator->();
00039 
00040   prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00041 
00042   enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00043 
00044   mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
00045 
00046   EcalRawDataCollection_ = ps.getParameter<edm::InputTag>("EcalRawDataCollection");
00047   EcalUncalibratedRecHitCollection_ = ps.getParameter<edm::InputTag>("EcalUncalibratedRecHitCollection");
00048 
00049   for (int i = 0; i < 18; i++) {
00050     meTimeMap_[i] = 0;
00051     meTimeAmpli_[i] = 0;
00052   }
00053 
00054 }

EETimingTask::~EETimingTask (  )  [virtual]

Destructor.

Definition at line 56 of file EETimingTask.cc.

00056                            {
00057 
00058 }


Member Function Documentation

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

Analyze.

Implements edm::EDAnalyzer.

Definition at line 145 of file EETimingTask.cc.

References EcalDCCHeaderBlock::COSMIC, EcalDCCHeaderBlock::COSMICS_GLOBAL, EcalDCCHeaderBlock::COSMICS_LOCAL, EcalEndcap, EcalRawDataCollection_, EcalUncalibratedRecHitCollection_, MonitorElement::Fill(), edm::Event::getByLabel(), ievt_, init_, Numbers::iSM(), LogDebug, meTimeAmpli_, meTimeMap_, EcalDCCHeaderBlock::MTCC, EcalDCCHeaderBlock::PHYSICS_GLOBAL, EcalDCCHeaderBlock::PHYSICS_LOCAL, setup(), and Numbers::subDet().

00145                                                              {
00146 
00147   bool isData = true;
00148   bool enable = false;
00149   int runType[18] = { -1 };
00150 
00151   Handle<EcalRawDataCollection> dcchs;
00152 
00153   if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
00154 
00155     for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
00156 
00157       if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
00158 
00159       int ism = Numbers::iSM( *dcchItr, EcalEndcap );
00160 
00161       runType[ism-1] = dcchItr->getRunType();
00162 
00163       if ( dcchItr->getRunType() == EcalDCCHeaderBlock::COSMIC ||
00164            dcchItr->getRunType() == EcalDCCHeaderBlock::MTCC ||
00165            dcchItr->getRunType() == EcalDCCHeaderBlock::COSMICS_GLOBAL ||
00166            dcchItr->getRunType() == EcalDCCHeaderBlock::PHYSICS_GLOBAL ||
00167            dcchItr->getRunType() == EcalDCCHeaderBlock::COSMICS_LOCAL ||
00168            dcchItr->getRunType() == EcalDCCHeaderBlock::PHYSICS_LOCAL ) enable = true;
00169 
00170     }
00171 
00172   } else {
00173 
00174     isData = false; enable = true;
00175     LogWarning("EETimingTask") << EcalRawDataCollection_ << " not available";
00176 
00177   }
00178 
00179   if ( ! enable ) return;
00180 
00181   if ( ! init_ ) this->setup();
00182 
00183   ievt_++;
00184 
00185   Handle<EcalUncalibratedRecHitCollection> hits;
00186 
00187   if ( e.getByLabel(EcalUncalibratedRecHitCollection_, hits) ) {
00188 
00189     int neh = hits->size();
00190     LogDebug("EETimingTask") << "event " << ievt_ << " hits collection size " << neh;
00191 
00192     for ( EcalUncalibratedRecHitCollection::const_iterator hitItr = hits->begin(); hitItr != hits->end(); ++hitItr ) {
00193 
00194       EEDetId id = hitItr->id();
00195 
00196       int ix = id.ix();
00197       int iy = id.iy();
00198 
00199       int ism = Numbers::iSM( id );
00200 
00201       if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
00202 
00203       float xix = ix - 0.5;
00204       float xiy = iy - 0.5;
00205 
00206       if ( isData ) {
00207 
00208         if ( ! ( runType[ism-1] == EcalDCCHeaderBlock::COSMIC ||
00209                  runType[ism-1] == EcalDCCHeaderBlock::MTCC ||
00210                  runType[ism-1] == EcalDCCHeaderBlock::COSMICS_GLOBAL ||
00211                  runType[ism-1] == EcalDCCHeaderBlock::PHYSICS_GLOBAL ||
00212                  runType[ism-1] == EcalDCCHeaderBlock::COSMICS_LOCAL ||
00213                  runType[ism-1] == EcalDCCHeaderBlock::PHYSICS_LOCAL ) ) continue;
00214 
00215       }
00216 
00217       LogDebug("EETimingTask") << " det id = " << id;
00218       LogDebug("EETimingTask") << " sm, ix, iy " << ism << " " << ix << " " << iy;
00219 
00220       MonitorElement* meTimeMap = 0;
00221       MonitorElement* meTimeAmpli = 0;
00222 
00223       meTimeMap = meTimeMap_[ism-1];
00224       meTimeAmpli = meTimeAmpli_[ism-1];
00225 
00226       float xval = hitItr->amplitude();
00227       if ( xval <= 0. ) xval = 0.0;
00228       float yval = hitItr->jitter() + 5.0;
00229       if ( yval <= 0. ) yval = 0.0;
00230       float zval = hitItr->pedestal();
00231       if ( zval <= 0. ) zval = 0.0;
00232 
00233       LogDebug("EETimingTask") << " hit amplitude " << xval;
00234       LogDebug("EETimingTask") << " hit jitter " << yval;
00235       LogDebug("EETimingTask") << " hit pedestal " << zval;
00236 
00237       if ( meTimeAmpli ) meTimeAmpli->Fill(xval, yval);
00238 
00239       if ( xval > 16. ) {
00240         if ( meTimeMap ) meTimeMap->Fill(xix, xiy, yval);
00241       }
00242 
00243     }
00244 
00245   } else {
00246 
00247     LogWarning("EETimingTask") << EcalUncalibratedRecHitCollection_ << " not available";
00248 
00249   }
00250 
00251 }

void EETimingTask::beginJob ( const edm::EventSetup c  )  [protected, virtual]

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 60 of file EETimingTask.cc.

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

00060                                               {
00061 
00062   ievt_ = 0;
00063 
00064   if ( dqmStore_ ) {
00065     dqmStore_->setCurrentFolder(prefixME_ + "/EETimingTask");
00066     dqmStore_->rmdir(prefixME_ + "/EETimingTask");
00067   }
00068 
00069   Numbers::initGeometry(c, false);
00070 
00071 }

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

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 73 of file EETimingTask.cc.

References mergeRuns_, and reset().

00073                                                              {
00074 
00075   if ( ! mergeRuns_ ) this->reset();
00076 
00077 }

void EETimingTask::cleanup ( void   )  [protected]

Cleanup.

Definition at line 119 of file EETimingTask.cc.

References dqmStore_, edm::getName(), i, init_, meTimeMap_, prefixME_, DQMStore::removeElement(), and DQMStore::setCurrentFolder().

Referenced by endJob().

00119                               {
00120 
00121   if ( ! init_ ) return;
00122 
00123   if ( dqmStore_ ) {
00124     dqmStore_->setCurrentFolder(prefixME_ + "/EETimingTask");
00125 
00126     for ( int i = 0; i < 18; i++ ) {
00127       if ( meTimeMap_[i] ) dqmStore_->removeElement( meTimeMap_[i]->getName() );
00128       meTimeMap_[i] = 0;
00129     }
00130 
00131   }
00132 
00133   init_ = false;
00134 
00135 }

void EETimingTask::endJob ( void   )  [protected, virtual]

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 137 of file EETimingTask.cc.

References cleanup(), enableCleanup_, and ievt_.

00137                              {
00138 
00139   LogInfo("EETimingTask") << "analyzed " << ievt_ << " events";
00140 
00141   if ( enableCleanup_ ) this->cleanup();
00142 
00143 }

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

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 79 of file EETimingTask.cc.

00079                                                            {
00080 
00081 }

void EETimingTask::reset ( void   )  [protected]

Reset.

Definition at line 83 of file EETimingTask.cc.

References i, meTimeAmpli_, meTimeMap_, and MonitorElement::Reset().

Referenced by beginRun().

00083                              {
00084 
00085   for (int i = 0; i < 18; i++) {
00086     if ( meTimeMap_[i] ) meTimeMap_[i]->Reset();
00087     if ( meTimeAmpli_[i] ) meTimeAmpli_[i]->Reset();
00088   }
00089 
00090 }

void EETimingTask::setup ( void   )  [protected]

Setup.

Definition at line 92 of file EETimingTask.cc.

References DQMStore::book2D(), DQMStore::bookProfile2D(), dqmStore_, histo, i, init_, Numbers::ix0EE(), Numbers::iy0EE(), meTimeAmpli_, meTimeMap_, prefixME_, Numbers::sEE(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), and DQMStore::tag().

Referenced by analyze().

00092                             {
00093 
00094   init_ = true;
00095 
00096   char histo[200];
00097 
00098   if ( dqmStore_ ) {
00099     dqmStore_->setCurrentFolder(prefixME_ + "/EETimingTask");
00100 
00101     for (int i = 0; i < 18; i++) {
00102       sprintf(histo, "EETMT timing %s", Numbers::sEE(i+1).c_str());
00103       meTimeMap_[i] = dqmStore_->bookProfile2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50., 4096, 0., 4096., "s");
00104       meTimeMap_[i]->setAxisTitle("jx", 1);
00105       meTimeMap_[i]->setAxisTitle("jy", 2);
00106       dqmStore_->tag(meTimeMap_[i], i+1);
00107 
00108       sprintf(histo, "EETMT timing vs amplitude %s", Numbers::sEE(i+1).c_str());
00109       meTimeAmpli_[i] = dqmStore_->book2D(histo, histo, 200, 0., 200., 100, 0., 10.);
00110       meTimeAmpli_[i]->setAxisTitle("amplitude", 1);
00111       meTimeAmpli_[i]->setAxisTitle("jitter", 2);
00112       dqmStore_->tag(meTimeAmpli_[i], i+1);
00113     }
00114 
00115   }
00116 
00117 }


Member Data Documentation

DQMStore* EETimingTask::dqmStore_ [private]

Definition at line 60 of file EETimingTask.h.

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

edm::InputTag EETimingTask::EcalRawDataCollection_ [private]

Definition at line 68 of file EETimingTask.h.

Referenced by analyze(), and EETimingTask().

edm::InputTag EETimingTask::EcalUncalibratedRecHitCollection_ [private]

Definition at line 69 of file EETimingTask.h.

Referenced by analyze(), and EETimingTask().

bool EETimingTask::enableCleanup_ [private]

Definition at line 64 of file EETimingTask.h.

Referenced by EETimingTask(), and endJob().

int EETimingTask::ievt_ [private]

Definition at line 58 of file EETimingTask.h.

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

bool EETimingTask::init_ [private]

Definition at line 74 of file EETimingTask.h.

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

bool EETimingTask::mergeRuns_ [private]

Definition at line 66 of file EETimingTask.h.

Referenced by beginRun(), and EETimingTask().

MonitorElement* EETimingTask::meTimeAmpli_[18] [private]

Definition at line 72 of file EETimingTask.h.

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

MonitorElement* EETimingTask::meTimeMap_[18] [private]

Definition at line 71 of file EETimingTask.h.

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

std::string EETimingTask::prefixME_ [private]

Definition at line 62 of file EETimingTask.h.

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


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:20:09 2009 for CMSSW by  doxygen 1.5.4