#include <DQM/EcalEndcapMonitorTasks/interface/EETriggerTowerTask.h>
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 | |
DQMStore * | dqmStore_ |
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_ |
MonitorElement * | meEtMapEmul_ |
Emulated Et vs TT index. | |
MonitorElement * | meEtMapReal_ |
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 |
Definition at line 24 of file EETriggerTowerTask.h.
typedef std::vector<MonitorElement*> EETriggerTowerTask::array1 [private] |
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] |
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 }
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 }
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] |
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 }
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 }
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 }
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 }
DQMStore* EETriggerTowerTask::dqmStore_ [private] |
DQM back-end interface.
Definition at line 127 of file EETriggerTowerTask.h.
Referenced by beginJob(), cleanup(), EETriggerTowerTask(), and setup().
to find the input collection of crystal digis
Definition at line 145 of file EETriggerTowerTask.h.
Referenced by EETriggerTowerTask(), and processDigis().
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] |
const int EETriggerTowerTask::nTTPhi = 20 [static] |
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().
to find the input collection of real digis
Definition at line 139 of file EETriggerTowerTask.h.
Referenced by analyze(), and EETriggerTowerTask().