![]() |
![]() |
00001 00002 /* 00003 * See header file for a description of this class. 00004 * 00005 * \author S.Bologensi - INFN Torino 00006 */ 00007 00008 #include "DQM/DTMonitorModule/interface/DTTriggerCheck.h" 00009 00010 #include "FWCore/Framework/interface/Event.h" 00011 00012 #include "DataFormats/LTCDigi/interface/LTCDigi.h" 00013 #include "DQMServices/Core/interface/DQMStore.h" 00014 00015 #include <iterator> 00016 00017 using namespace edm; 00018 using namespace std; 00019 00020 DTTriggerCheck::DTTriggerCheck(const ParameterSet& pset) : 00021 isLocalRun(pset.getUntrackedParameter<bool>("localrun", true)) { 00022 00023 if (!isLocalRun) { 00024 ltcDigiCollectionTag = pset.getParameter<edm::InputTag>("ltcDigiCollectionTag"); 00025 } 00026 00027 theDbe = edm::Service<DQMStore>().operator->(); 00028 00029 debug = pset.getUntrackedParameter<bool>("debug",false); 00030 00031 theDbe->setCurrentFolder("DT/DTTriggerTask"); 00032 histo = theDbe->book1D("hNTriggerPerType", 00033 "# of trigger per type",21, -1, 20); 00034 } 00035 00036 DTTriggerCheck::~DTTriggerCheck(){ 00037 } 00038 00039 void DTTriggerCheck::beginJob(){ 00040 } 00041 00042 void DTTriggerCheck::endJob(){ 00043 00044 if(debug) 00045 cout<<"[DTTriggerCheck] endjob called!"<<endl; 00046 00047 theDbe->rmdir("DT/DTTriggerTask"); 00048 } 00049 00050 void DTTriggerCheck::analyze(const Event& event, const EventSetup& setup) { 00051 if(debug) 00052 cout << "[DTTriggerCheck] Analyze #Run: " << event.id().run() 00053 << " #Event: " << event.id().event() << endl; 00054 00055 //Get the trigger source from ltc digis 00056 edm::Handle<LTCDigiCollection> ltcdigis; 00057 if (!isLocalRun) 00058 { 00059 event.getByLabel(ltcDigiCollectionTag, ltcdigis); 00060 for (std::vector<LTCDigi>::const_iterator ltc_it = ltcdigis->begin(); ltc_it != ltcdigis->end(); ltc_it++){ 00061 if (((*ltc_it).HasTriggered(0)) || 00062 ((*ltc_it).HasTriggered(1)) || 00063 ((*ltc_it).HasTriggered(2)) || 00064 ((*ltc_it).HasTriggered(3)) || 00065 ((*ltc_it).HasTriggered(4))) 00066 histo->Fill(-1); 00067 if ((*ltc_it).HasTriggered(0)) 00068 histo->Fill(0); 00069 if ((*ltc_it).HasTriggered(1)) 00070 histo->Fill(1); 00071 if ((*ltc_it).HasTriggered(2)) 00072 histo->Fill(2); 00073 if ((*ltc_it).HasTriggered(3)) 00074 histo->Fill(3); 00075 if ((*ltc_it).HasTriggered(4)) 00076 histo->Fill(4); 00077 } 00078 } 00079 else 00080 histo->Fill(0); 00081 }