CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/Validation/Mixing/interface/MixCollectionValidation.h

Go to the documentation of this file.
00001 #ifndef MixCollectionValidation_H
00002 #define MixCollectionValidation_H
00003 
00004 // system include files
00005 #include "FWCore/Framework/interface/Frameworkfwd.h"
00006 #include "FWCore/Framework/interface/EDAnalyzer.h"
00007 
00008 #include "FWCore/Framework/interface/Event.h"
00009 #include "FWCore/Framework/interface/MakerMacros.h"
00010 
00011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00012 //DQM services for histogram
00013 #include "DQMServices/Core/interface/DQMStore.h"
00014 #include "FWCore/ServiceRegistry/interface/Service.h"
00015 #include "DQMServices/Core/interface/MonitorElement.h"
00016 
00017 #include "FWCore/Utilities/interface/InputTag.h"
00018 
00019 #include <string>
00020 
00021 //
00022 // class declaration
00023 //
00024 
00025 class MixCollectionValidation : public edm::EDAnalyzer {
00026 public:
00027   explicit MixCollectionValidation(const edm::ParameterSet&);
00028   ~MixCollectionValidation();
00029 
00030   void beginJob();
00031   void endJob();
00032 
00033   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00034 
00035 private:
00036 
00037   template<class T1, class T2> void fillMultiplicity(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
00038 
00039   template<class T1, class T2> void fillGenParticleMulti(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
00040 
00041   template<class T1, class T2> void fillSimHitTime(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
00042 
00043   template<class T1, class T2> void fillCaloHitTime(T1 & theItr_, T2 & theColl_, MonitorElement * theProfile_);
00044 
00045   std::string outputFile_;
00046   int minbunch_;
00047   int maxbunch_;
00048 
00049   bool verbose_;
00050 
00051   MonitorElement * nrHepMCProductH_;
00052   MonitorElement * nrSimTrackH_;
00053   MonitorElement * nrSimVertexH_;
00054 
00055   std::map<std::string,MonitorElement *> SimHitNrmap_;
00056   std::map<std::string,MonitorElement *> SimHitTimemap_;
00057 
00058   std::map<std::string,MonitorElement *> CaloHitNrmap_;
00059   std::map<std::string,MonitorElement *> CaloHitTimemap_;
00060 
00061   DQMStore* dbe_;
00062   
00063   std::vector<std::string> names_;
00064   std::vector<edm::InputTag> HepMCProductTags_;
00065   std::vector<edm::InputTag> SimTrackTags_;
00066   std::vector<edm::InputTag> SimVertexTags_;
00067   std::vector<edm::InputTag> PSimHitTags_;
00068   std::vector<edm::InputTag> PCaloHitTags_;
00069 
00070   int nbin_;
00071   
00072 };
00073 
00074 #endif