Go to the documentation of this file.00001 #ifndef MixCollectionValidation_H
00002 #define MixCollectionValidation_H
00003
00004
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
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
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