CMS 3D CMS Logo

EETriggerTowerTask Class Reference

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

Inheritance diagram for EETriggerTowerTask:

edm::EDAnalyzer

List of all members.

Public Member Functions

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

Static Public Attributes

static const int nSM = 18
 number of supermodules
static const int nTTEta = 20
 number of trigger towers in eta
static const int nTTPhi = 20
 number of trigger towers in phi

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 Types

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

Private Member Functions

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

Private Attributes

DQMStoredqmStore_
 DQM back-end interface.
edm::InputTag EEDigiCollection_
 to find the input collection of crystal digis
edm::InputTag emulCollection_
 to find the input collection of emulated digis
bool enableCleanup_
 remove MEs
int ievt_
 local event counter
bool init_
 init flag
array1 meEmulError_
 error flag vs ix vs iy, for each SM the error flag is set to true in case of a discrepancy between the emulator and the real data
array1 meEmulMatch_
MonitorElementmeEtMapEmul_
 Emulated Et vs TT index.
MonitorElementmeEtMapReal_
 Et vs TT index.
array1 meFlagEmulError_
array1 meFlagsEmul_
 Emulated flag vs ix vs iy, for each SM.
array1 meFlagsReal_
 flag vs ix vs iy, for each SM
bool mergeRuns_
 merge MEs across runs
array1 meVetoEmul_
 Emulated fine grain veto vs ix vs iy, for each SM.
array1 meVetoEmulError_
array1 meVetoReal_
 fine grain veto vs ix vs iy, 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 24 of file EETriggerTowerTask.h.


Member Typedef Documentation

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

1D array

Definition at line 73 of file EETriggerTowerTask.h.


Constructor & Destructor Documentation

EETriggerTowerTask::EETriggerTowerTask ( const edm::ParameterSet ps  ) 

Constructor.

Definition at line 33 of file EETriggerTowerTask.cc.

References dqmStore_, EEDigiCollection_, emulCollection_, enableCleanup_, lat::endl(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), init_, LogDebug, meEmulError_, meEmulMatch_, meEtMapEmul_, meEtMapReal_, meFlagEmulError_, meFlagsEmul_, meFlagsReal_, mergeRuns_, meVetoEmul_, meVetoEmulError_, meVetoReal_, outputFile_, prefixME_, realCollection_, and reserveArray().

00033                                                              {
00034 
00035   init_ = false;
00036 
00037   dqmStore_ = Service<DQMStore>().operator->();
00038 
00039   prefixME_ = ps.getUntrackedParameter<string>("prefixME", "");
00040 
00041   mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
00042 
00043   enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
00044 
00045   meEtMapReal_ = 0;
00046   meEtMapEmul_ = 0;
00047 
00048   reserveArray(meVetoReal_);
00049   reserveArray(meFlagsReal_);
00050   reserveArray(meVetoEmul_);
00051   reserveArray(meFlagsEmul_);
00052   reserveArray(meEmulError_);
00053   reserveArray(meEmulMatch_);
00054   reserveArray(meVetoEmulError_);
00055   reserveArray(meFlagEmulError_);
00056 
00057   realCollection_ =  ps.getParameter<InputTag>("EcalTrigPrimDigiCollectionReal");
00058   emulCollection_ =  ps.getParameter<InputTag>("EcalTrigPrimDigiCollectionEmul");
00059   EEDigiCollection_ = ps.getParameter<InputTag>("EEDigiCollection");
00060 
00061   outputFile_ = ps.getUntrackedParameter<string>("OutputRootFile", "");
00062 
00063   ostringstream  str;
00064   str<<"Module label for producer of REAL     digis: "<<realCollection_<<endl;
00065   str<<"Module label for producer of EMULATED digis: "<<emulCollection_<<endl;
00066 
00067   LogDebug("EETriggerTowerTask")<<str.str()<<endl;
00068 
00069 }

EETriggerTowerTask::~EETriggerTowerTask (  )  [virtual]

Destructor.

Definition at line 71 of file EETriggerTowerTask.cc.

00071                                        {
00072 
00073 }


Member Function Documentation

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

Analyze.

Implements edm::EDAnalyzer.

Definition at line 288 of file EETriggerTowerTask.cc.

References emulCollection_, edm::Event::getByLabel(), ievt_, init_, LogDebug, meEtMapEmul_, meEtMapReal_, meFlagsEmul_, meFlagsReal_, meVetoEmul_, meVetoReal_, processDigis(), realCollection_, and setup().

00288                                                                    {
00289 
00290   if ( ! init_ ) this->setup();
00291 
00292   ievt_++;
00293 
00294   Handle<EcalTrigPrimDigiCollection> realDigis;
00295 
00296   if ( e.getByLabel(realCollection_, realDigis) ) {
00297 
00298     int neetpd = realDigis->size();
00299     LogDebug("EETriggerTowerTask")
00300       <<"event "
00301       <<ievt_
00302       <<" trigger primitive digi collection size: "
00303       <<neetpd;
00304 
00305     processDigis( e,
00306                   realDigis,
00307                   meEtMapReal_,
00308                   meVetoReal_,
00309                   meFlagsReal_);
00310 
00311   } else {
00312     LogWarning("EETriggerTowerTask") << realCollection_ << " not available";
00313   }
00314 
00315   Handle<EcalTrigPrimDigiCollection> emulDigis;
00316 
00317   if ( e.getByLabel(emulCollection_, emulDigis) ) {
00318 
00319     processDigis( e,
00320                   emulDigis,
00321                   meEtMapEmul_,
00322                   meVetoEmul_,
00323                   meFlagsEmul_,
00324                   realDigis);
00325 
00326   } else {
00327     LogWarning("EETriggerTowerTask") << emulCollection_ << " not available";
00328   }
00329 
00330 }

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

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 82 of file EETriggerTowerTask.cc.

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

00082                                                     {
00083 
00084   ievt_ = 0;
00085 
00086   if ( dqmStore_ ) {
00087     dqmStore_->setCurrentFolder(prefixME_ + "/EETriggerTowerTask");
00088     dqmStore_->rmdir(prefixME_ + "/EETriggerTowerTask");
00089   }
00090 
00091   Numbers::initGeometry(c, false);
00092 
00093 }

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

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 95 of file EETriggerTowerTask.cc.

References mergeRuns_, and reset().

00095                                                                    {
00096 
00097   if ( ! mergeRuns_ ) this->reset();
00098 
00099 }

void EETriggerTowerTask::cleanup ( void   )  [protected]

Cleanup.

Definition at line 264 of file EETriggerTowerTask.cc.

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

Referenced by endJob().

00264                                      {
00265 
00266   if ( ! init_ ) return;
00267 
00268   if ( dqmStore_ ) {
00269 
00270     if( !outputFile_.empty() ) dqmStore_->save( outputFile_.c_str() );
00271 
00272     dqmStore_->rmdir( prefixME_ + "/EETriggerTowerTask" );
00273 
00274   }
00275 
00276   init_ = false;
00277 
00278 }

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

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 280 of file EETriggerTowerTask.cc.

References cleanup(), enableCleanup_, and ievt_.

00280                                    {
00281 
00282   LogInfo("EETriggerTowerTask") << "analyzed " << ievt_ << " events";
00283 
00284   if ( enableCleanup_ ) this->cleanup();
00285 
00286 }

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

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 101 of file EETriggerTowerTask.cc.

00101                                                                  {
00102 
00103 }

void EETriggerTowerTask::processDigis ( const edm::Event e,
const edm::Handle< EcalTrigPrimDigiCollection > &  digis,
MonitorElement meEtMap,
array1 meVeto,
array1 meFlags,
const edm::Handle< EcalTrigPrimDigiCollection > &  digis = edm::Handle<EcalTrigPrimDigiCollection>() 
) [private]

process a collection of digis, either real or emulated

Definition at line 333 of file EETriggerTowerTask.cc.

References Numbers::crystals(), EcalEndcap, EEDigiCollection_, lat::endl(), MonitorElement::Fill(), edm::Event::getByLabel(), MonitorElement::getName(), i, Numbers::iSM(), edm::Handle< T >::isValid(), Numbers::iTT(), j, LogDebug, meEmulError_, meEmulMatch_, meFlagEmulError_, meVetoEmulError_, Numbers::subDet(), and Numbers::TCCid().

Referenced by analyze().

00337                                                                                         {
00338 
00339   LogDebug("EETriggerTowerTask")<<"processing "<<meEtMap->getName()<<endl;
00340 
00341   map<int, int> crystalsInTower;
00342 
00343   Handle<EEDigiCollection> crystalDigis;
00344 
00345   if ( e.getByLabel(EEDigiCollection_, crystalDigis) ) {
00346 
00347     for ( EEDigiCollection::const_iterator cDigiItr = crystalDigis->begin(); cDigiItr != crystalDigis->end(); ++cDigiItr ) {
00348 
00349       EEDetId id = cDigiItr->id();
00350 
00351       int ix = id.ix();
00352       int iy = id.iy();
00353       int ism = Numbers::iSM( id );
00354       int itt = Numbers::iTT( ism, EcalEndcap, ix, iy );
00355 
00356       map<int, int>::const_iterator itrTower = crystalsInTower.find(itt);
00357 
00358       if( itrTower==crystalsInTower.end() ) crystalsInTower.insert(std::make_pair(itt,1));
00359       else crystalsInTower[itt]++;
00360 
00361     }
00362 
00363   } else {
00364     LogWarning("EETriggerTowerTask") << EEDigiCollection_ << " not available";
00365   }
00366 
00367   ostringstream  str;
00368 
00369   for ( EcalTrigPrimDigiCollection::const_iterator tpdigiItr = digis->begin(); tpdigiItr != digis->end(); ++tpdigiItr ) {
00370 
00371     if ( Numbers::subDet( tpdigiItr->id() ) != EcalEndcap ) continue;
00372 
00373     int ismt = Numbers::iSM( tpdigiItr->id() );
00374 
00375     int itt = Numbers::iTT( tpdigiItr->id() );
00376 
00377     vector<DetId> crystals = Numbers::crystals( tpdigiItr->id() );
00378 
00379     for ( unsigned int i=0; i<crystals.size(); i++ ) {
00380 
00381     EEDetId id = crystals[i];
00382 
00383     int ix = id.ix();
00384     int iy = id.iy();
00385 
00386     if ( ismt >= 1 && ismt <= 9 ) ix = 101 - ix;
00387 
00388     float xix = ix-0.5;
00389     float xiy = iy-0.5;
00390 
00391     str<<"det id = "<<tpdigiItr->id().rawId()<<" "
00392        <<"sm, tt, x, y "<<ismt<<" "<<itt<<" "<<ix<<" "<<iy<<endl;
00393 
00394     int ttindex = Numbers::iTT(tpdigiItr->id());
00395     int tccindex = Numbers::TCCid(tpdigiItr->id());
00396 
00397     int xttindex = -1;
00398     if ( tccindex <= 36 )
00399       xttindex = 28*tccindex+ttindex-1; // EE-
00400     else if ( tccindex >= 73 )
00401       xttindex = 28*(tccindex-36)+ttindex-1; // EE+ (skip EB TCCs)
00402 
00403     // count the number of readout crystals / TT
00404     // do do the match emul-real only if ncry/TT=25
00405     int nReadoutCrystals=crystalsInTower[itt];
00406 
00407     float xval;
00408 
00409     xval = tpdigiItr->compressedEt();
00410     if ( meEtMap && xttindex > -1 ) {
00411       meEtMap->Fill(xttindex, xval);
00412     }
00413     else {
00414       LogError("EETriggerTowerTask")<<"histo does not exist "<<endl;
00415     }
00416 
00417     xval = 0.5 + tpdigiItr->fineGrain();
00418     if ( meVeto[ismt-1] ) meVeto[ismt-1]->Fill(xix, xiy, xval);
00419 
00420     xval = 0.5 + tpdigiItr->ttFlag();
00421     if ( meFlags[ismt-1] ) meFlags[ismt-1]->Fill(xix, xiy, xval);
00422 
00423     if( compDigis.isValid() ) {
00424       bool good = true;
00425       bool goodFlag = true;
00426       bool goodVeto = true;
00427 
00428       EcalTrigPrimDigiCollection::const_iterator compDigiItr = compDigis->find( tpdigiItr->id().rawId() );
00429       if( compDigiItr != compDigis->end() ) {
00430         str<<"found corresponding digi! "<<*compDigiItr<<endl;
00431         if( tpdigiItr->compressedEt() != compDigiItr->compressedEt() ) {
00432           str<<"but it is different..."<<endl;
00433           good = false;
00434         }
00435 
00436         // compare the 5 TPs with different time-windows
00437         // sample 0 means no match, 1-5: sample of the TP that matches
00438         bool matchSample[6];
00439         for(int j=0; j<6; j++) matchSample[j] = false;
00440         bool matchedAny=false;
00441 
00442         for(int j=0; j<5; j++) {
00443           if((*tpdigiItr)[j].compressedEt() == compDigiItr->compressedEt() ) {
00444             matchSample[j+1]=true;
00445             matchedAny=true;
00446           }
00447         }
00448         if(!matchedAny) matchSample[0]=true;
00449 
00450         if(nReadoutCrystals==25 && compDigiItr->compressedEt()>0) {
00451           for(int j=0; j<6; j++) {
00452             if(matchSample[j]) meEmulMatch_[ismt-1]->Fill(xix, xiy, j+0.5);
00453           }
00454         }
00455 
00456         if( tpdigiItr->ttFlag() != compDigiItr->ttFlag() ) {
00457           str<<"but flag is different..."<<endl;
00458           goodFlag = false;
00459         }
00460         if( tpdigiItr->fineGrain() != compDigiItr->fineGrain() ) {
00461           str<<"but fine grain veto is different..."<<endl;
00462           goodVeto = false;
00463         }
00464       }
00465       else {
00466         good = false;
00467         goodFlag = false;
00468         goodVeto = false;
00469         str<<"could not find corresponding digi... "<<endl;
00470       }
00471       if(!good ) {
00472         if ( meEmulError_[ismt-1] ) meEmulError_[ismt-1]->Fill(xix, xiy);
00473       }
00474       if(!goodFlag) {
00475         float zval = tpdigiItr->ttFlag();
00476         if ( meFlagEmulError_[ismt-1] ) meFlagEmulError_[ismt-1]->Fill(xix, xiy, zval);
00477       }
00478       if(!goodVeto) {
00479         float zval = tpdigiItr->fineGrain();
00480         if ( meVetoEmulError_[ismt-1] ) meVetoEmulError_[ismt-1]->Fill(xix, xiy, zval);
00481       }
00482     }
00483     }
00484   }
00485   LogDebug("EETriggerTowerTask")<<str.str()<<endl;
00486 }

void EETriggerTowerTask::reserveArray ( array1 array  )  [private]

reserve an array to hold one histogram per supermodule

Definition at line 75 of file EETriggerTowerTask.cc.

References nSM.

Referenced by EETriggerTowerTask().

00075                                                      {
00076 
00077   array.reserve( nSM );
00078   array.resize( nSM, static_cast<MonitorElement*>(0) );
00079 
00080 }

void EETriggerTowerTask::reset ( void   )  [protected]

Reset.

Definition at line 105 of file EETriggerTowerTask.cc.

References i, meEmulError_, meEmulMatch_, meEtMapEmul_, meEtMapReal_, meFlagEmulError_, meFlagsEmul_, meFlagsReal_, meVetoEmul_, meVetoEmulError_, meVetoReal_, and MonitorElement::Reset().

Referenced by beginRun().

00105                                    {
00106 
00107   if ( meEtMapReal_ ) meEtMapReal_->Reset();
00108   if ( meEtMapEmul_ ) meEtMapEmul_->Reset();
00109 
00110   for (int i = 0; i < 18; i++) {
00111 
00112     if ( meVetoReal_[i] ) meVetoReal_[i]->Reset();
00113     if ( meFlagsReal_[i] ) meFlagsReal_[i]->Reset();
00114     if ( meVetoEmul_[i] ) meVetoEmul_[i]->Reset();
00115     if ( meFlagsEmul_[i] ) meFlagsEmul_[i]->Reset();
00116     if ( meEmulError_[i] ) meEmulError_[i]->Reset();
00117     if ( meEmulMatch_[i] ) meEmulMatch_[i]->Reset();
00118     if ( meVetoEmulError_[i] ) meVetoEmulError_[i]->Reset();
00119     if ( meFlagEmulError_[i] ) meFlagEmulError_[i]->Reset();
00120 
00121   }
00122 
00123 }

void EETriggerTowerTask::setup ( const char *  nameext,
const char *  folder,
bool  emulated 
) [private]

book monitor elements for real, or emulated digis

Definition at line 142 of file EETriggerTowerTask.cc.

References DQMStore::book2D(), DQMStore::book3D(), dqmStore_, histo, i, Numbers::ix0EE(), Numbers::iy0EE(), meEmulError_, meEmulMatch_, meEtMapEmul_, meEtMapReal_, meFlagEmulError_, meFlagsEmul_, meFlagsReal_, meVetoEmul_, meVetoEmulError_, meVetoReal_, Numbers::sEB(), Numbers::sEE(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), and DQMStore::tag().

00144                                                 {
00145 
00146   array1*  meVeto = &meVetoReal_;
00147   array1*  meFlags = &meFlagsReal_;
00148 
00149   if( emulated ) {
00150     meVeto = &meVetoEmul_;
00151     meFlags= &meFlagsEmul_;
00152   }
00153 
00154   dqmStore_->setCurrentFolder(folder);
00155 
00156   static const unsigned namesize = 200;
00157 
00158   char histo[namesize];
00159   sprintf(histo, "EETTT Et map %s", nameext);
00160   string etMapName = histo;
00161   sprintf(histo, "EETTT FineGrainVeto %s", nameext);
00162   string fineGrainVetoName = histo;
00163   sprintf(histo, "EETTT Flags %s", nameext);
00164   string flagsName = histo;
00165   string emulErrorName = "EETTT EmulError";
00166   string emulMatchName = "EBTTT EmulMatch";
00167   string emulFineGrainVetoErrorName = "EETTT EmulFineGrainVetoError";
00168   string emulFlagErrorName = "EETTT EmulFlagError";
00169 
00170   if ( !emulated ) {
00171     meEtMapReal_ = dqmStore_->book2D(etMapName.c_str(), etMapName.c_str(),
00172                                      28*72, 0, 28*72, // 36 TCC/EE with max 28 TT/TCC
00173                                      256, 0, 256.);
00174     meEtMapReal_->setAxisTitle("iTT", 1);
00175     meEtMapReal_->setAxisTitle("compressed E_{T}", 2);
00176   }
00177 
00178   if ( emulated ) {
00179     meEtMapEmul_ = dqmStore_->book2D(etMapName.c_str(), etMapName.c_str(),
00180                                      28*72, 0, 28*72, // 36 TCC/EE with max 28 TT/TCC
00181                                      256, 0, 256.);
00182     meEtMapEmul_->setAxisTitle("iTT", 1);
00183     meEtMapEmul_->setAxisTitle("compressed E_{T}", 2);
00184   }
00185 
00186   for (int i = 0; i < 18; i++) {
00187 
00188     string  fineGrainVetoNameSM = fineGrainVetoName;
00189     fineGrainVetoNameSM += " " + Numbers::sEE(i+1);
00190 
00191     (*meVeto)[i] = dqmStore_->book3D(fineGrainVetoNameSM.c_str(),
00192                                fineGrainVetoNameSM.c_str(),
00193                                50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50.,
00194                                50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.,
00195                                2, 0., 2.);
00196     (*meVeto)[i]->setAxisTitle("jx", 1);
00197     (*meVeto)[i]->setAxisTitle("jy", 2);
00198     dqmStore_->tag((*meVeto)[i], i+1);
00199 
00200     string  flagsNameSM = flagsName;
00201     flagsNameSM += " " + Numbers::sEE(i+1);
00202 
00203     (*meFlags)[i] = dqmStore_->book3D(flagsNameSM.c_str(), flagsNameSM.c_str(),
00204                                 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50.,
00205                                 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.,
00206                                 8, 0., 8.);
00207     (*meFlags)[i]->setAxisTitle("jx", 1);
00208     (*meFlags)[i]->setAxisTitle("jy", 2);
00209     dqmStore_->tag((*meFlags)[i], i+1);
00210 
00211     if(!emulated) {
00212 
00213       string  emulErrorNameSM = emulErrorName;
00214       emulErrorNameSM += " " + Numbers::sEE(i+1);
00215 
00216       meEmulError_[i] = dqmStore_->book2D(emulErrorNameSM.c_str(),
00217                                     emulErrorNameSM.c_str(),
00218                                     50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50.,
00219                                     50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50. );
00220       meEmulError_[i]->setAxisTitle("jx", 1);
00221       meEmulError_[i]->setAxisTitle("jy", 2);
00222       dqmStore_->tag(meEmulError_[i], i+1);
00223 
00224       string  emulMatchNameSM = emulMatchName;
00225       emulMatchNameSM += " " + Numbers::sEB(i+1);
00226 
00227       meEmulMatch_[i] = dqmStore_->book3D(emulMatchNameSM.c_str(), emulMatchNameSM.c_str(),
00228                                           50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50.,
00229                                           50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.,
00230                                           6, 0., 6.);
00231       meEmulMatch_[i]->setAxisTitle("jx'", 1);
00232       meEmulMatch_[i]->setAxisTitle("jy'", 2);
00233       dqmStore_->tag(meEmulMatch_[i], i+1);
00234 
00235       string  emulFineGrainVetoErrorNameSM = emulFineGrainVetoErrorName;
00236       emulFineGrainVetoErrorNameSM += " " + Numbers::sEE(i+1);
00237 
00238       meVetoEmulError_[i] = dqmStore_->book3D(emulFineGrainVetoErrorNameSM.c_str(),
00239                                           emulFineGrainVetoErrorNameSM.c_str(),
00240                                           50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50.,
00241                                           50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.,
00242                                           8, 0., 8.);
00243       meVetoEmulError_[i]->setAxisTitle("jx", 1);
00244       meVetoEmulError_[i]->setAxisTitle("jy", 2);
00245       dqmStore_->tag(meVetoEmulError_[i], i+1);
00246 
00247       string  emulFlagErrorNameSM = emulFlagErrorName;
00248       emulFlagErrorNameSM += " " + Numbers::sEE(i+1);
00249 
00250       meFlagEmulError_[i] = dqmStore_->book3D(emulFlagErrorNameSM.c_str(),
00251                                           emulFlagErrorNameSM.c_str(),
00252                                           50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50.,
00253                                           50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.,
00254                                           8, 0., 8.);
00255       meFlagEmulError_[i]->setAxisTitle("jx", 1);
00256       meFlagEmulError_[i]->setAxisTitle("jy", 2);
00257       dqmStore_->tag(meFlagEmulError_[i], i+1);
00258 
00259     }
00260   }
00261 
00262 }

void EETriggerTowerTask::setup ( void   )  [protected]

Setup.

Definition at line 125 of file EETriggerTowerTask.cc.

References dqmStore_, lat::endl(), init_, and prefixME_.

Referenced by analyze().

00125                                   {
00126 
00127   init_ = true;
00128 
00129   if ( dqmStore_ ) {
00130     setup( "Real Digis",
00131            (prefixME_ + "/EETriggerTowerTask").c_str(), false );
00132 
00133     setup( "Emulated Digis",
00134            (prefixME_ + "/EETriggerTowerTask/Emulated").c_str(), true);
00135   }
00136   else {
00137     LogError("EETriggerTowerTask")<<"Bad DQMStore, "
00138                                   <<"cannot book MonitorElements."<<endl;
00139   }
00140 }


Member Data Documentation

DQMStore* EETriggerTowerTask::dqmStore_ [private]

DQM back-end interface.

Definition at line 127 of file EETriggerTowerTask.h.

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

edm::InputTag EETriggerTowerTask::EEDigiCollection_ [private]

to find the input collection of crystal digis

Definition at line 145 of file EETriggerTowerTask.h.

Referenced by EETriggerTowerTask(), and processDigis().

edm::InputTag EETriggerTowerTask::emulCollection_ [private]

to find the input collection of emulated digis

Definition at line 142 of file EETriggerTowerTask.h.

Referenced by analyze(), and EETriggerTowerTask().

bool EETriggerTowerTask::enableCleanup_ [private]

remove MEs

Definition at line 133 of file EETriggerTowerTask.h.

Referenced by EETriggerTowerTask(), and endJob().

int EETriggerTowerTask::ievt_ [private]

local event counter

Definition at line 95 of file EETriggerTowerTask.h.

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

bool EETriggerTowerTask::init_ [private]

init flag

Definition at line 124 of file EETriggerTowerTask.h.

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

array1 EETriggerTowerTask::meEmulError_ [private]

error flag vs ix vs iy, 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 118 of file EETriggerTowerTask.h.

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

array1 EETriggerTowerTask::meEmulMatch_ [private]

Definition at line 119 of file EETriggerTowerTask.h.

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

MonitorElement* EETriggerTowerTask::meEtMapEmul_ [private]

Emulated Et vs TT index.

Definition at line 107 of file EETriggerTowerTask.h.

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

MonitorElement* EETriggerTowerTask::meEtMapReal_ [private]

Et vs TT index.

Definition at line 98 of file EETriggerTowerTask.h.

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

array1 EETriggerTowerTask::meFlagEmulError_ [private]

Definition at line 121 of file EETriggerTowerTask.h.

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

array1 EETriggerTowerTask::meFlagsEmul_ [private]

Emulated flag vs ix vs iy, for each SM.

Definition at line 113 of file EETriggerTowerTask.h.

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

array1 EETriggerTowerTask::meFlagsReal_ [private]

flag vs ix vs iy, for each SM

Definition at line 104 of file EETriggerTowerTask.h.

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

bool EETriggerTowerTask::mergeRuns_ [private]

merge MEs across runs

Definition at line 136 of file EETriggerTowerTask.h.

Referenced by beginRun(), and EETriggerTowerTask().

array1 EETriggerTowerTask::meVetoEmul_ [private]

Emulated fine grain veto vs ix vs iy, for each SM.

Definition at line 110 of file EETriggerTowerTask.h.

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

array1 EETriggerTowerTask::meVetoEmulError_ [private]

Definition at line 120 of file EETriggerTowerTask.h.

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

array1 EETriggerTowerTask::meVetoReal_ [private]

fine grain veto vs ix vs iy, for each SM

Definition at line 101 of file EETriggerTowerTask.h.

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

const int EETriggerTowerTask::nSM = 18 [static]

number of supermodules

Definition at line 41 of file EETriggerTowerTask.h.

Referenced by reserveArray().

const int EETriggerTowerTask::nTTEta = 20 [static]

number of trigger towers in eta

Definition at line 35 of file EETriggerTowerTask.h.

const int EETriggerTowerTask::nTTPhi = 20 [static]

number of trigger towers in phi

Definition at line 38 of file EETriggerTowerTask.h.

std::string EETriggerTowerTask::outputFile_ [private]

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

Definition at line 148 of file EETriggerTowerTask.h.

Referenced by cleanup(), and EETriggerTowerTask().

std::string EETriggerTowerTask::prefixME_ [private]

path to MEs

Definition at line 130 of file EETriggerTowerTask.h.

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

edm::InputTag EETriggerTowerTask::realCollection_ [private]

to find the input collection of real digis

Definition at line 139 of file EETriggerTowerTask.h.

Referenced by analyze(), and EETriggerTowerTask().


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