![]() |
![]() |
00001 #ifndef MBUEandQCDVALIDATION_H 00002 #define MBUEandQCDVALIDATION_H 00003 00004 /*class MBUEandQCDValidation 00005 * 00006 * Class to fill Event Generator dqm monitor elements; works on HepMCProduct 00007 * 00008 * $Date: 2011/12/29 10:53:10 $ 00009 * $Revision: 1.3 $ 00010 * 00011 */ 00012 00013 // framework & common header files 00014 #include "FWCore/Framework/interface/EDAnalyzer.h" 00015 #include "FWCore/Framework/interface/Event.h" 00016 #include "FWCore/Framework/interface/EventSetup.h" 00017 #include "FWCore/Framework/interface/Run.h" 00018 00019 #include "DataFormats/Common/interface/Handle.h" 00020 #include "FWCore/Framework/interface/ESHandle.h" 00021 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00022 #include "FWCore/Utilities/interface/InputTag.h" 00023 00024 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00025 00026 //DQM services 00027 #include "DQMServices/Core/interface/DQMStore.h" 00028 #include "FWCore/ServiceRegistry/interface/Service.h" 00029 #include "DQMServices/Core/interface/MonitorElement.h" 00030 00031 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" 00032 #include "DataFormats/JetReco/interface/GenJetCollection.h" 00033 00034 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h" 00035 #include "Validation/EventGenerator/interface/CaloCellManager.h" 00036 #include "Validation/EventGenerator/interface/WeightManager.h" 00037 00038 #include <vector> 00039 00040 class MBUEandQCDValidation : public edm::EDAnalyzer 00041 { 00042 public: 00043 explicit MBUEandQCDValidation(const edm::ParameterSet&); 00044 virtual ~MBUEandQCDValidation(); 00045 virtual void beginJob(); 00046 virtual void endJob(); 00047 virtual void analyze(const edm::Event&, const edm::EventSetup&); 00048 virtual void beginRun(const edm::Run&, const edm::EventSetup&); 00049 virtual void endRun(const edm::Run&, const edm::EventSetup&); 00050 00051 private: 00052 00053 WeightManager _wmanager; 00054 00055 edm::InputTag hepmcCollection_; 00056 edm::InputTag genchjetCollection_; 00057 edm::InputTag genjetCollection_; 00058 00059 unsigned int verbosity_; 00060 00062 edm::ESHandle<HepPDT::ParticleDataTable> fPDGTable ; 00063 00065 std::vector<const HepMC::GenParticle*> hepmcGPCollection; 00066 std::vector<double> hepmcCharge; 00067 00069 CaloCellManager* theCalo; 00070 00071 unsigned int getHFbin(double eta); 00072 00073 bool isCharged(unsigned int i); 00074 bool isNeutral(unsigned int i); 00075 bool isNeutrino(unsigned int i); 00076 00077 std::vector<double> eneInCell; 00078 00080 DQMStore *dbe; 00081 00082 MonitorElement* nEvt; 00083 00084 MonitorElement* nNoFwdTrig; 00085 MonitorElement* nSaFwdTrig; 00086 00087 MonitorElement* nbquark; 00088 MonitorElement* ncandbquark; 00089 MonitorElement* ncnobquark; 00090 00092 MonitorElement* nEvt1; 00093 MonitorElement* dNchdpt1; 00094 MonitorElement* dNchdeta1; 00095 00096 //QCD-10-001 analysis 00097 MonitorElement* nEvt2; 00098 MonitorElement* leadTrackpt; 00099 MonitorElement* leadTracketa; 00100 MonitorElement* dNchdeta2; 00101 MonitorElement* dNchdpt2; 00102 MonitorElement* nCha; 00103 MonitorElement* dNchdSpt; 00104 MonitorElement* dNchdphi; 00105 MonitorElement* dSptdphi; 00106 MonitorElement* nChaDenLpt; 00107 MonitorElement* sptDenLpt; 00108 00109 //Charged jets 00110 MonitorElement* nChj; 00111 MonitorElement* dNchjdeta; 00112 MonitorElement* dNchjdpt; 00113 MonitorElement* leadChjpt; 00114 MonitorElement* leadChjeta; 00115 MonitorElement* pt1pt2optotch; 00116 00117 //Identified particles multiplicities 00118 MonitorElement* nPPbar; 00119 MonitorElement* nKpm; 00120 MonitorElement* nK0s; 00121 MonitorElement* nL0; 00122 MonitorElement* nNNbar; 00123 MonitorElement* nGamma; 00124 MonitorElement* nXim; 00125 MonitorElement* nOmega; 00126 00127 //Identified particles momentum specturm 00128 MonitorElement* pPPbar; 00129 MonitorElement* pKpm; 00130 MonitorElement* pK0s; 00131 MonitorElement* pL0; 00132 MonitorElement* pNNbar; 00133 MonitorElement* pGamma; 00134 MonitorElement* pXim; 00135 MonitorElement* pOmega; 00136 00137 MonitorElement* elePt; 00138 MonitorElement* muoPt; 00139 00140 //Jets no neutrino 00141 MonitorElement* nDijet; 00142 MonitorElement* nj; 00143 MonitorElement* dNjdeta; 00144 MonitorElement* dNjdpt; 00145 MonitorElement* pt1pt2optot; 00146 MonitorElement* pt1pt2balance; 00147 MonitorElement* pt1pt2Dphi; 00148 MonitorElement* pt1pt2InvM; 00149 MonitorElement* pt3Frac; 00150 MonitorElement* sumJEt; 00151 MonitorElement* missEtosumJEt; 00152 MonitorElement* sumPt; 00153 MonitorElement* sumChPt; 00154 00155 //Forward energy flow 00156 MonitorElement* nHFflow; 00157 MonitorElement* dEdetaHFmb; 00158 MonitorElement* dEdetaHFdj; 00159 00160 MonitorElement* nHFSD; 00161 MonitorElement* EmpzHFm; 00162 MonitorElement* ntHFm; 00163 MonitorElement* eneHFmSel; 00164 00165 // Jet Multiplicity Analysis 00166 MonitorElement* _JM25njets ; 00167 MonitorElement* _JM25ht ; 00168 MonitorElement* _JM25pt1 ; 00169 MonitorElement* _JM25pt2 ; 00170 MonitorElement* _JM25pt3 ; 00171 MonitorElement* _JM25pt4 ; 00172 MonitorElement* _JM80njets ; 00173 MonitorElement* _JM80ht ; 00174 MonitorElement* _JM80pt1 ; 00175 MonitorElement* _JM80pt2 ; 00176 MonitorElement* _JM80pt3 ; 00177 MonitorElement* _JM80pt4 ; 00178 00179 //differential jet rates 00180 MonitorElement *djr10, *djr21, *djr32, *djr43; 00181 00182 // SumET hiostograms 00183 MonitorElement *_sumEt ; 00184 MonitorElement *_sumEt1; 00185 MonitorElement *_sumEt2; 00186 MonitorElement *_sumEt3; 00187 MonitorElement *_sumEt4; 00188 MonitorElement *_sumEt5; 00189 00190 00191 static const unsigned int nphiBin = 36; 00192 00193 static const unsigned int initSize = 1000; 00194 00195 }; 00196 00197 #endif