00001 #ifndef CLUSTERSUMMARYPRODUCER 00002 #define CLUSTERSUMMARYPRODUCER 00003 00004 // -*- C++ -*- 00005 // 00006 // Package: ClusterSummaryProducer 00007 // Class: ClusterSummaryProducer 00008 // 00016 // 00017 // Original Author: Michael Segala 00018 // Created: Thu Jun 23 09:33:08 CDT 2011 00019 // $Id: ClusterSummaryProducer.h,v 1.4 2012/12/26 19:56:28 wmtan Exp $ 00020 // 00021 // 00022 00023 00024 // system include files 00025 #include <memory> 00026 #include <string> 00027 #include <map> 00028 #include <vector> 00029 #include<iostream> 00030 #include <string.h> 00031 // user include files 00032 00033 #include "FWCore/Framework/interface/Frameworkfwd.h" 00034 #include "FWCore/Framework/interface/EDProducer.h" 00035 #include "FWCore/Utilities/interface/InputTag.h" 00036 00037 #include "FWCore/Framework/interface/Event.h" 00038 #include "FWCore/Framework/interface/MakerMacros.h" 00039 00040 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00041 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00042 00043 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h" 00044 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h" 00045 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" 00046 #include "DataFormats/Common/interface/DetSetVectorNew.h" 00047 00048 00049 #include "RecoLocalTracker/SiStripClusterizer/interface/SiStripClusterInfo.h" 00050 #include "DataFormats/SiStripDigi/interface/SiStripProcessedRawDigi.h" 00051 #include "DataFormats/Common/interface/DetSetVector.h" 00052 00053 00054 #include "DataFormats/TrackerCommon/interface/ClusterSummary.h" 00055 #include "RecoLocalTracker/SubCollectionProducers/interface/ClusterVariables.h" 00056 00057 #include "DataFormats/SiStripDetId/interface/StripSubdetector.h" 00058 #include "DataFormats/DetId/interface/DetId.h" 00059 00060 00061 // 00062 // class declaration 00063 // 00064 class ClusterVariables; 00065 class ClusterSummary; 00066 00067 00068 class ClusterSummaryProducer : public edm::EDProducer { 00069 public: 00070 explicit ClusterSummaryProducer(const edm::ParameterSet&); 00071 ~ClusterSummaryProducer(){}; 00072 00073 private: 00074 virtual void beginJob() ; 00075 virtual void produce(edm::Event&, const edm::EventSetup&); 00076 00077 void decodeInput(std::vector<std::string> &, std::string ); 00078 00079 // ----------member data --------------------------- 00080 00081 edm::InputTag stripClustersLabel; 00082 edm::InputTag pixelClustersLabel; 00083 std::string stripModules; 00084 std::vector<std::string> v_stripModuleTypes; 00085 std::string pixelModules; 00086 std::vector<std::string> v_pixelModuleTypes; 00087 00088 std::string stripVariables; 00089 std::vector<std::string> v_stripVariables; 00090 std::string pixelVariables; 00091 std::vector<std::string> v_pixelVariables; 00092 00093 ClusterSummary cCluster; 00094 std::map< std::string, int > EnumMap; 00095 std::vector<ClusterSummary::ModuleSelection*> ModuleSelectionVect; 00096 std::vector<ClusterSummary::ModuleSelection*> ModuleSelectionVectPixels; 00097 00098 00099 bool doStrips; 00100 bool doPixels; 00101 bool verbose; 00102 bool firstpass; 00103 bool firstpass_mod; 00104 bool firstpassPixel; 00105 bool firstpassPixel_mod; 00106 00107 //Declare the variables to fill the summary info with 00108 std::vector<std::string> v_userContent; 00109 00110 00111 00112 }; 00113 00114 #endif