#include <CaloTowerAnalyzer.h>
Definition at line 20 of file CaloTowerAnalyzer.h.
CaloTowerAnalyzer::CaloTowerAnalyzer | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 61 of file CaloTowerAnalyzer.cc.
References edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().
{ caloTowersLabel_ = iConfig.getParameter<edm::InputTag>("CaloTowersLabel"); HLTResultsLabel_ = iConfig.getParameter<edm::InputTag>("HLTResultsLabel"); HBHENoiseFilterResultLabel_ = iConfig.getParameter<edm::InputTag>("HBHENoiseFilterResultLabel"); if(iConfig.exists("HLTBitLabels")) HLTBitLabel_ = iConfig.getParameter<std::vector<edm::InputTag> >("HLTBitLabels"); debug_ = iConfig.getParameter<bool>("Debug"); finebinning_ = iConfig.getUntrackedParameter<bool>("FineBinning"); allhist_ = iConfig.getUntrackedParameter<bool>("AllHist"); FolderName_ = iConfig.getUntrackedParameter<std::string>("FolderName"); hltselection_ = iConfig.getUntrackedParameter<bool>("HLTSelection"); }
void CaloTowerAnalyzer::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 187 of file CaloTowerAnalyzer.cc.
References CaloTower::emEt(), CaloTower::et(), edm::Event::getByLabel(), CaloTower::hadEt(), i, CaloTower::id(), CaloTowerDetId::ieta(), getHLTprescales::index, CaloTowerDetId::iphi(), edm::HandleBase::isValid(), label, LogDebug, CaloTower::outerEt(), reco::LeafCandidate::phi(), colinearityKinematic::Phi, reco::tau::disc::Pt(), findQualityFiles::size, edm::TriggerNames::triggerIndex(), and edm::Event::triggerNames().
{ // Get HLT Results edm::Handle<edm::TriggerResults> TheHLTResults; iEvent.getByLabel( HLTResultsLabel_ , TheHLTResults); bool EventPasses = true; // Make sure handle is valid if( TheHLTResults.isValid() && hltselection_ ) { //Get HLT Names const edm::TriggerNames & TheTriggerNames = iEvent.triggerNames(*TheHLTResults); for( unsigned int index = 0 ; index < HLTBitLabel_.size(); index++) { if( HLTBitLabel_[index].label().size() ) { //Change the default value since HLT requirement has been issued by the user if( index == 0 ) EventPasses = false; //Get the HLT bit and check to make sure it is valid unsigned int bit = TheTriggerNames.triggerIndex( HLTBitLabel_[index].label().c_str()); if( bit < TheHLTResults->size() ) { //If any of the HLT names given by the user accept, then the event passes if( TheHLTResults->accept( bit ) && !TheHLTResults->error( bit ) ) { EventPasses = true; hCT_NEvents_HLT[index]->Fill(1); } else hCT_NEvents_HLT[index]->Fill(0); } else { edm::LogInfo("OutputInfo") << "The HLT Trigger Name : " << HLTBitLabel_[index].label() << " is not valid for this trigger table " << std::endl; } } } } if( !EventPasses && hltselection_ ) return; //----------GREG & CHRIS' idea---/// float ETTowerMin = -1; //GeV float METRingMin = -2; // GeV Nevents++; hCT_Nevents->Fill(0); // ========================================================== // Retrieve! // ========================================================== edm::Handle<edm::View<Candidate> > towers; iEvent.getByLabel(caloTowersLabel_, towers); if( (!towers.isValid())) { edm::LogInfo("")<<"CaloTowers "<< caloTowersLabel_<<" not found!"<<std::endl; return; } edm::Handle<bool> HBHENoiseFilterResultHandle; iEvent.getByLabel(HBHENoiseFilterResultLabel_, HBHENoiseFilterResultHandle); bool HBHENoiseFilterResult = *HBHENoiseFilterResultHandle; if (!HBHENoiseFilterResultHandle.isValid()) { LogDebug("") << "CaloTowerAnalyzer: Could not find HBHENoiseFilterResult" << std::endl; } bool bHcalNoiseFilter = HBHENoiseFilterResult; if(!bHcalNoiseFilter) return; edm::View<Candidate>::const_iterator towerCand = towers->begin(); // ========================================================== // Fill Histograms! // ========================================================== int CTmin_iphi = 99, CTmax_iphi = -99; int CTmin_ieta = 99, CTmax_ieta = -99; TLorentzVector vMET_EtaRing[83]; int ActiveRing[83]; int NActiveTowers[83]; double SET_EtaRing[83]; double MinEt_EtaRing[83]; double MaxEt_EtaRing[83]; for (int i=0;i<83; i++) { ActiveRing[i] = 0; NActiveTowers[i] = 0; SET_EtaRing[i] = 0; MinEt_EtaRing[i] = 0; MaxEt_EtaRing[i] = 0; } //rcr for (calotower = towerCollection->begin(); calotower != towerCollection->end(); calotower++) { for ( ; towerCand != towers->end(); towerCand++) { const Candidate* candidate = &(*towerCand); if (candidate) { const CaloTower* calotower = dynamic_cast<const CaloTower*> (candidate); if (calotower){ //math::RhoEtaPhiVector Momentum = calotower->momentum(); double Tower_ET = calotower->et(); //double Tower_Energy = calotower->energy(); // double Tower_Eta = calotower->eta(); double Tower_Phi = calotower->phi(); //double Tower_EMEnergy = calotower->emEnergy(); //double Tower_HadEnergy = calotower->hadEnergy(); double Tower_OuterEt = calotower->outerEt(); double Tower_EMEt = calotower->emEt(); double Tower_HadEt = calotower->hadEt(); //int Tower_EMLV1 = calotower->emLvl1(); //int Tower_HadLV1 = calotower->hadLv11(); int Tower_ieta = calotower->id().ieta(); int Tower_iphi = calotower->id().iphi(); int EtaRing = 41+Tower_ieta; ActiveRing[EtaRing] = 1; NActiveTowers[EtaRing]++; SET_EtaRing[EtaRing]+=Tower_ET; TLorentzVector v_; v_.SetPtEtaPhiE(Tower_ET, 0, Tower_Phi, Tower_ET); if (Tower_ET>ETTowerMin) vMET_EtaRing[EtaRing]-=v_; // Fill Histograms hCT_Occ_ieta_iphi->Fill(Tower_ieta,Tower_iphi); if (calotower->emEt() > 0 && calotower->emEt() + calotower->hadEt() > 0.3) hCT_Occ_EM_Et_ieta_iphi->Fill(Tower_ieta,Tower_iphi); if (calotower->hadEt() > 0 && calotower->emEt() + calotower->hadEt() > 0.3) hCT_Occ_HAD_Et_ieta_iphi->Fill(Tower_ieta,Tower_iphi); if (calotower->outerEt() > 0 && calotower->emEt() + calotower->hadEt() > 0.3) hCT_Occ_Outer_Et_ieta_iphi->Fill(Tower_ieta,Tower_iphi); hCT_et_ieta_iphi->Fill(Tower_ieta,Tower_iphi,Tower_ET); hCT_emEt_ieta_iphi->Fill(Tower_ieta,Tower_iphi,Tower_EMEt); hCT_hadEt_ieta_iphi->Fill(Tower_ieta,Tower_iphi,Tower_HadEt); hCT_outerEt_ieta_iphi->Fill(Tower_ieta,Tower_iphi,Tower_OuterEt); if (allhist_){ hCT_etvsieta->Fill(Tower_ieta, Tower_ET); hCT_emEtvsieta->Fill(Tower_ieta, Tower_EMEt); hCT_hadEtvsieta->Fill(Tower_ieta,Tower_HadEt); hCT_outerEtvsieta->Fill(Tower_ieta,Tower_OuterEt); } if (Tower_ET > MaxEt_EtaRing[EtaRing]) MaxEt_EtaRing[EtaRing] = Tower_ET; if (Tower_ET < MinEt_EtaRing[EtaRing] && Tower_ET>0) MinEt_EtaRing[EtaRing] = Tower_ET; if (Tower_ieta < CTmin_ieta) CTmin_ieta = Tower_ieta; if (Tower_ieta > CTmax_ieta) CTmax_ieta = Tower_ieta; if (Tower_iphi < CTmin_iphi) CTmin_iphi = Tower_iphi; if (Tower_iphi > CTmax_iphi) CTmax_iphi = Tower_iphi; } //end if (calotower) .. } // end if(candidate) ... } // end loop over towers // Fill eta-ring MET quantities if (allhist_){ for (int iEtaRing=0; iEtaRing<83; iEtaRing++) { hCT_Minetvsieta->Fill(iEtaRing-41, MinEt_EtaRing[iEtaRing]); hCT_Maxetvsieta->Fill(iEtaRing-41, MaxEt_EtaRing[iEtaRing]); if (ActiveRing[iEtaRing]) { if (vMET_EtaRing[iEtaRing].Pt()>METRingMin) { hCT_METPhivsieta->Fill(iEtaRing-41, vMET_EtaRing[iEtaRing].Phi()); hCT_MExvsieta->Fill(iEtaRing-41, vMET_EtaRing[iEtaRing].Px()); hCT_MEyvsieta->Fill(iEtaRing-41, vMET_EtaRing[iEtaRing].Py()); hCT_METvsieta->Fill(iEtaRing-41, vMET_EtaRing[iEtaRing].Pt()); } hCT_SETvsieta->Fill(iEtaRing-41, SET_EtaRing[iEtaRing]); hCT_Occvsieta->Fill(iEtaRing-41, NActiveTowers[iEtaRing]); } } // ietaring } // allhist_ edm::LogInfo("OutputInfo") << "CT ieta range: " << CTmin_ieta << " " << CTmax_ieta; edm::LogInfo("OutputInfo") << "CT iphi range: " << CTmin_iphi << " " << CTmax_iphi; }
void CaloTowerAnalyzer::beginRun | ( | const edm::Run & | iRun, |
const edm::EventSetup & | iSetup | ||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 81 of file CaloTowerAnalyzer.cc.
References DQMStore::book1D(), DQMStore::book2D(), dbe_, MonitorElement::getTH2F(), i, label, cmsCodeRules::cppFunctionSkipper::operator, and DQMStore::setCurrentFolder().
{ Nevents = 0; // get ahold of back-end interface dbe_ = edm::Service<DQMStore>().operator->(); if (dbe_) { dbe_->setCurrentFolder(FolderName_); //Store number of events which pass each HLT bit for(unsigned int i = 0 ; i < HLTBitLabel_.size() ; i++ ) { if( HLTBitLabel_[i].label().size() ) { hCT_NEvents_HLT.push_back( dbe_->book1D("METTask_CT_"+HLTBitLabel_[i].label(),HLTBitLabel_[i].label(),2,-0.5,1.5) ); } } //--Store number of events used hCT_Nevents = dbe_->book1D("METTask_CT_Nevents","",1,0,1); //--Data integrated over all events and stored by CaloTower(ieta,iphi) hCT_et_ieta_iphi = dbe_->book2D("METTask_CT_et_ieta_iphi","",83,-41,42, 72,1,73); hCT_et_ieta_iphi->getTH2F()->SetOption("colz"); hCT_et_ieta_iphi->setAxisTitle("ieta",1); hCT_et_ieta_iphi->setAxisTitle("ephi",2); hCT_emEt_ieta_iphi = dbe_->book2D("METTask_CT_emEt_ieta_iphi","",83,-41,42, 72,1,73); hCT_emEt_ieta_iphi->getTH2F()->SetOption("colz"); hCT_emEt_ieta_iphi->setAxisTitle("ieta",1); hCT_emEt_ieta_iphi->setAxisTitle("ephi",2); hCT_hadEt_ieta_iphi = dbe_->book2D("METTask_CT_hadEt_ieta_iphi","",83,-41,42, 72,1,73); hCT_hadEt_ieta_iphi->getTH2F()->SetOption("colz"); hCT_hadEt_ieta_iphi->setAxisTitle("ieta",1); hCT_hadEt_ieta_iphi->setAxisTitle("ephi",2); hCT_outerEt_ieta_iphi = dbe_->book2D("METTask_CT_outerEt_ieta_iphi","",83,-41,42, 72,1,73); hCT_outerEt_ieta_iphi->getTH2F()->SetOption("colz"); hCT_outerEt_ieta_iphi->setAxisTitle("ieta",1); hCT_outerEt_ieta_iphi->setAxisTitle("ephi",2); hCT_Occ_ieta_iphi = dbe_->book2D("METTask_CT_Occ_ieta_iphi","",83,-41,42, 72,1,73); hCT_Occ_ieta_iphi->getTH2F()->SetOption("colz"); hCT_Occ_ieta_iphi->setAxisTitle("ieta",1); hCT_Occ_ieta_iphi->setAxisTitle("ephi",2); hCT_Occ_EM_Et_ieta_iphi = dbe_->book2D("METTask_CT_Occ_EM_Et_ieta_iphi","",83,-41,42, 72,1,73); hCT_Occ_EM_Et_ieta_iphi->getTH2F()->SetOption("colz"); hCT_Occ_EM_Et_ieta_iphi->setAxisTitle("ieta",1); hCT_Occ_EM_Et_ieta_iphi->setAxisTitle("ephi",2); hCT_Occ_HAD_Et_ieta_iphi = dbe_->book2D("METTask_CT_Occ_HAD_Et_ieta_iphi","",83,-41,42, 72,1,73); hCT_Occ_HAD_Et_ieta_iphi->getTH2F()->SetOption("colz"); hCT_Occ_HAD_Et_ieta_iphi->setAxisTitle("ieta",1); hCT_Occ_HAD_Et_ieta_iphi->setAxisTitle("ephi",2); hCT_Occ_Outer_Et_ieta_iphi = dbe_->book2D("METTask_CT_Occ_Outer_Et_ieta_iphi","",83,-41,42, 72,1,73); hCT_Occ_Outer_Et_ieta_iphi->getTH2F()->SetOption("colz"); hCT_Occ_Outer_Et_ieta_iphi->setAxisTitle("ieta",1); hCT_Occ_Outer_Et_ieta_iphi->setAxisTitle("ephi",2); //--Data over eta-rings // CaloTower values if(allhist_){ if(finebinning_) { hCT_etvsieta = dbe_->book2D("METTask_CT_etvsieta","", 83,-41,42, 10001,0,1001); hCT_Minetvsieta = dbe_->book2D("METTask_CT_Minetvsieta","", 83,-41,42, 10001,0,1001); hCT_Maxetvsieta = dbe_->book2D("METTask_CT_Maxetvsieta","", 83,-41,42, 10001,0,1001); hCT_emEtvsieta = dbe_->book2D("METTask_CT_emEtvsieta","",83,-41,42, 10001,0,1001); hCT_hadEtvsieta = dbe_->book2D("METTask_CT_hadEtvsieta","",83,-41,42, 10001,0,1001); hCT_outerEtvsieta = dbe_->book2D("METTask_CT_outerEtvsieta","",83,-41,42, 10001,0,1001); // Integrated over phi hCT_Occvsieta = dbe_->book2D("METTask_CT_Occvsieta","",83,-41,42, 84,0,84); hCT_SETvsieta = dbe_->book2D("METTask_CT_SETvsieta","",83,-41,42, 20001,0,2001); hCT_METvsieta = dbe_->book2D("METTask_CT_METvsieta","",83,-41,42, 20001,0,2001); hCT_METPhivsieta = dbe_->book2D("METTask_CT_METPhivsieta","",83,-41,42, 80,-4,4); hCT_MExvsieta = dbe_->book2D("METTask_CT_MExvsieta","",83,-41,42, 10001,-500,501); hCT_MEyvsieta = dbe_->book2D("METTask_CT_MEyvsieta","",83,-41,42, 10001,-500,501); } else { if(allhist_){ hCT_etvsieta = dbe_->book2D("METTask_CT_etvsieta","", 83,-41,42, 200,-0.5,999.5); hCT_Minetvsieta = dbe_->book2D("METTask_CT_Minetvsieta","", 83,-41,42, 200,-0.5,999.5); hCT_Maxetvsieta = dbe_->book2D("METTask_CT_Maxetvsieta","", 83,-41,42, 200,-0.5,999.5); hCT_emEtvsieta = dbe_->book2D("METTask_CT_emEtvsieta","",83,-41,42, 200,-0.5,999.5); hCT_hadEtvsieta = dbe_->book2D("METTask_CT_hadEtvsieta","",83,-41,42, 200,-0.5,999.5); hCT_outerEtvsieta = dbe_->book2D("METTask_CT_outerEtvsieta","",83,-41,42, 80,-0.5,399.5); // Integrated over phi } hCT_Occvsieta = dbe_->book2D("METTask_CT_Occvsieta","",83,-41,42, 73,-0.5,72.5); hCT_SETvsieta = dbe_->book2D("METTask_CT_SETvsieta","",83,-41,42, 200,-0.5,1999.5); hCT_METvsieta = dbe_->book2D("METTask_CT_METvsieta","",83,-41,42, 200,-0.5,1999.5); hCT_METPhivsieta = dbe_->book2D("METTask_CT_METPhivsieta","",83,-41,42, 80,-4,4); hCT_MExvsieta = dbe_->book2D("METTask_CT_MExvsieta","",83,-41,42, 100,-499.5,499.5); hCT_MEyvsieta = dbe_->book2D("METTask_CT_MEyvsieta","",83,-41,42, 100,-499.5,499.5); } } // allhist } }
void CaloTowerAnalyzer::endJob | ( | void | ) | [virtual] |
bool CaloTowerAnalyzer::allhist_ [private] |
Definition at line 42 of file CaloTowerAnalyzer.h.
Definition at line 36 of file CaloTowerAnalyzer.h.
DQMStore* CaloTowerAnalyzer::dbe_ [private] |
Definition at line 33 of file CaloTowerAnalyzer.h.
bool CaloTowerAnalyzer::debug_ [private] |
Definition at line 40 of file CaloTowerAnalyzer.h.
double CaloTowerAnalyzer::energyThreshold_ [private] |
Definition at line 41 of file CaloTowerAnalyzer.h.
bool CaloTowerAnalyzer::finebinning_ [private] |
Definition at line 43 of file CaloTowerAnalyzer.h.
std::string CaloTowerAnalyzer::FolderName_ [private] |
Definition at line 45 of file CaloTowerAnalyzer.h.
Definition at line 39 of file CaloTowerAnalyzer.h.
Definition at line 51 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_emEtvsieta [private] |
Definition at line 61 of file CaloTowerAnalyzer.h.
Definition at line 50 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_etvsieta [private] |
Definition at line 58 of file CaloTowerAnalyzer.h.
Definition at line 52 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_hadEtvsieta [private] |
Definition at line 62 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_Maxetvsieta [private] |
Definition at line 60 of file CaloTowerAnalyzer.h.
Definition at line 67 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_METvsieta [private] |
Definition at line 66 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_MExvsieta [private] |
Definition at line 68 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_MEyvsieta [private] |
Definition at line 69 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_Minetvsieta [private] |
Definition at line 59 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_Nevents [private] |
Definition at line 49 of file CaloTowerAnalyzer.h.
std::vector<MonitorElement*> CaloTowerAnalyzer::hCT_NEvents_HLT [private] |
Definition at line 70 of file CaloTowerAnalyzer.h.
Definition at line 55 of file CaloTowerAnalyzer.h.
Definition at line 56 of file CaloTowerAnalyzer.h.
Definition at line 54 of file CaloTowerAnalyzer.h.
Definition at line 57 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_Occvsieta [private] |
Definition at line 64 of file CaloTowerAnalyzer.h.
Definition at line 53 of file CaloTowerAnalyzer.h.
Definition at line 63 of file CaloTowerAnalyzer.h.
MonitorElement* CaloTowerAnalyzer::hCT_SETvsieta [private] |
Definition at line 65 of file CaloTowerAnalyzer.h.
std::vector< edm::InputTag > CaloTowerAnalyzer::HLTBitLabel_ [private] |
Definition at line 37 of file CaloTowerAnalyzer.h.
Definition at line 38 of file CaloTowerAnalyzer.h.
bool CaloTowerAnalyzer::hltselection_ [private] |
Definition at line 44 of file CaloTowerAnalyzer.h.
int CaloTowerAnalyzer::Nevents [private] |
Definition at line 46 of file CaloTowerAnalyzer.h.