CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/DQMOffline/Trigger/interface/HLTTauDQMPlotter.h

Go to the documentation of this file.
00001 #ifndef HLTTauDQMPlotter_h
00002 #define HLTTauDQMPlotter_h
00003 
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 #include "FWCore/ServiceRegistry/interface/Service.h"
00006 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00007 #include "FWCore/Framework/interface/Event.h"
00008 #include "FWCore/Framework/interface/Frameworkfwd.h"
00009 #include "FWCore/Framework/interface/EDAnalyzer.h"
00010 #include "FWCore/Framework/interface/MakerMacros.h"
00011 #include "FWCore/Utilities/interface/InputTag.h"
00012 
00013 #include "DataFormats/Math/interface/LorentzVector.h"
00014 #include "DataFormats/HLTReco/interface/TriggerTypeDefs.h"
00015 
00016 //Include DQM core
00017 #include "DQMServices/Core/interface/DQMStore.h"
00018 #include "DQMServices/Core/interface/MonitorElement.h"
00019 
00020 #include "Math/GenVector/VectorUtil.h"
00021 
00022 typedef math::XYZTLorentzVectorD LV;
00023 typedef std::vector<LV> LVColl;
00024 
00025 //Virtual base class for HLT-Tau-DQM Plotters
00026 class HLTTauDQMPlotter {
00027 public:
00028     HLTTauDQMPlotter();
00029     virtual ~HLTTauDQMPlotter();
00030     virtual const std::string name() = 0;
00031     bool isValid() const { return validity_; }
00032 
00033 protected:
00034     //Helper functions
00035     std::pair<bool,LV> match( const LV&, const LVColl&, double );    
00036     std::string triggerTag();
00037     
00038     class FilterObject {
00039     public:
00040         FilterObject( const edm::ParameterSet& ps );
00041         virtual ~FilterObject();
00042         
00043         edm::InputTag getFilterName() const { return FilterName_; }
00044         double getMatchDeltaR() const { return MatchDeltaR_; }
00045         unsigned int getNTriggeredTaus() const { return NTriggeredTaus_; }
00046         int getTauType() const { return TauType_; }
00047         unsigned int getNTriggeredLeptons() const { return NTriggeredLeptons_; }
00048         int getLeptonType() const { return LeptonType_; }
00049         int leptonId();
00050         std::string getAlias() const { return Alias_; }
00051         bool isValid() const { return validity_; }
00052         
00053     private:
00054         edm::InputTag FilterName_;
00055         double MatchDeltaR_;
00056         unsigned int NTriggeredTaus_;
00057         int TauType_;
00058         unsigned int NTriggeredLeptons_;
00059         int LeptonType_;
00060         std::string Alias_;
00061         bool validity_;
00062     };
00063     
00064     //DQM store service
00065     DQMStore* store_;
00066     
00067     //Name of the Plotter
00068     std::string name_;
00069     
00070     //DQM folders
00071     std::string dqmBaseFolder_;
00072     std::string triggerTag_;
00073     std::string triggerTagAlias_;
00074     
00075     //Validity check
00076     bool validity_;
00077 };
00078 #endif