CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/DQM/DTMonitorModule/src/DTTriggerCheck.cc

Go to the documentation of this file.
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 }