00001
00002
00003
00004
00005
00006 #include "RecoJets/JetAnalyzers/interface/myFastSimVal.h"
00007 #include "RecoJets/JetAlgorithms/interface/JetAlgoHelper.h"
00008 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00009 #include "DataFormats/JetReco/interface/CaloJet.h"
00010 #include "DataFormats/JetReco/interface/GenJet.h"
00011 #include "DataFormats/Math/interface/deltaR.h"
00012 #include "DataFormats/Math/interface/deltaPhi.h"
00013
00014 #include "DataFormats/Candidate/interface/Candidate.h"
00015
00016 #include "FWCore/Framework/interface/Event.h"
00017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00018 #include "JetMETCorrections/Objects/interface/JetCorrector.h"
00019 #include <TROOT.h>
00020 #include <TSystem.h>
00021 #include <TFile.h>
00022 #include <TCanvas.h>
00023 #include <cmath>
00024 using namespace edm;
00025 using namespace reco;
00026 using namespace std;
00027
00028 #define DEBUG 1
00029
00030 #define MAXJETS 100
00031
00032
00033
00034 myFastSimVal::myFastSimVal( const ParameterSet & cfg ) :
00035 CaloJetAlgorithm1( cfg.getParameter<string>( "CaloJetAlgorithm1" ) ),
00036 CaloJetAlgorithm2( cfg.getParameter<string>( "CaloJetAlgorithm2" ) ),
00037 CaloJetAlgorithm3( cfg.getParameter<string>( "CaloJetAlgorithm3" ) ),
00038 CaloJetAlgorithm4( cfg.getParameter<string>( "CaloJetAlgorithm4" ) ),
00039 GenJetAlgorithm1( cfg.getParameter<string>( "GenJetAlgorithm1" ) ),
00040 GenJetAlgorithm2( cfg.getParameter<string>( "GenJetAlgorithm2" ) ),
00041 GenJetAlgorithm3( cfg.getParameter<string>( "GenJetAlgorithm3" ) ),
00042 GenJetAlgorithm4( cfg.getParameter<string>( "GenJetAlgorithm4" ) ),
00043 JetCorrectionService( cfg.getParameter<string>( "JetCorrectionService" ) )
00044 {
00045 }
00046
00047
00048
00049 int nEvent = 0;
00050
00051 void myFastSimVal::beginJob( ) {
00052
00053
00054 m_file=new TFile("histo.root","RECREATE");
00055
00056 tMassGen = TH1F("tMassGen","T Mass Gen",100,0,200);
00057 tbarMassGen = TH1F("tbarMassGen","Tbar Mass Gen",100,0,200);
00058
00059 tMass = TH1F("tMass","T Mass",100,0,200);
00060 tbarMass = TH1F("tbarMass","Tbar Mass",100,0,200);
00061
00062 topMassParton = TH1F("topMassParton","Top Mass Parton",100,0,200);
00063 topMass1 = TH1F("topMass1","Top Mass 1",100,0,200);
00064 topMass2 = TH1F("topMass2","Top Mass 2",100,0,200);
00065 topMass3 = TH1F("topMass3","Top Mass 3",100,0,200);
00066
00067 ZpMass = TH1F("ZpMass","Generated Zp Mass",160,0,8000);
00068 ZpMassGen = TH1F("ZpMassGen","Gen Zp Mass",160,0,8000);
00069 ZpMassMatched1 = TH1F("ZpMassMatched1","Calor Zp Mass 1",160,0,8000);
00070 ZpMassMatched2 = TH1F("ZpMassMatched2","Calor Zp Mass 2",160,0,8000);
00071 ZpMassMatched3 = TH1F("ZpMassMatched3","Calor Zp Mass 3",160,0,8000);
00072
00073 ZpMassGen10 = TH1F("ZpMassGen10","Gen Zp Mass",160,0,8000);
00074 ZpMassGen13 = TH1F("ZpMassGen13","Gen Zp Mass",160,0,8000);
00075 ZpMassGen40 = TH1F("ZpMassGen40","Gen Zp Mass",160,0,8000);
00076
00077 ZpMass_700_10 = TH1F("ZpMass_700_10","Parton Zp Mass",100,0,1000);
00078 ZpMass_700_13 = TH1F("ZpMass_700_13","Parton Zp Mass",100,0,1000);
00079 ZpMass_700_40 = TH1F("ZpMass_700_40","Parton Zp Mass",100,0,1000);
00080
00081 ZpMassGen_700_10 = TH1F("ZpMassGen_700_10","Gen Zp Mass",100,0,1000);
00082 ZpMassGen_700_13 = TH1F("ZpMassGen_700_13","Gen Zp Mass",100,0,1000);
00083 ZpMassGen_700_40 = TH1F("ZpMassGen_700_40","Gen Zp Mass",100,0,1000);
00084
00085 ZpMassGen_2000_10 = TH1F("ZpMassGen_2000_10","Gen Zp Mass",100,1500,2500);
00086 ZpMassGen_2000_13 = TH1F("ZpMassGen_2000_13","Gen Zp Mass",100,1500,2500);
00087 ZpMassGen_2000_40 = TH1F("ZpMassGen_2000_40","Gen Zp Mass",100,1500,2500);
00088
00089 ZpMass_2000_10 = TH1F("ZpMass_2000_10","Parton Zp Mass",100,1500,2500);
00090 ZpMass_2000_13 = TH1F("ZpMass_2000_13","Parton Zp Mass",100,1500,2500);
00091 ZpMass_2000_40 = TH1F("ZpMass_2000_40","Parton Zp Mass",100,1500,2500);
00092
00093 ZpMassGen_5000_10 = TH1F("ZpMassGen_5000_10","Gen Zp Mass",150,4000,5500);
00094 ZpMassGen_5000_13 = TH1F("ZpMassGen_5000_13","Gen Zp Mass",150,4000,5500);
00095 ZpMassGen_5000_40 = TH1F("ZpMassGen_5000_40","Gen Zp Mass",150,4000,5500);
00096
00097 ZpMass_5000_10 = TH1F("ZpMass_5000_10","Parton Zp Mass",150,4000,5500);
00098 ZpMass_5000_13 = TH1F("ZpMass_5000_13","Parton Zp Mass",150,4000,5500);
00099 ZpMass_5000_40 = TH1F("ZpMass_5000_40","Parton Zp Mass",150,4000,5500);
00100
00101 ZpMassRes101 = TH1F("ZpMassRes101","Zp Mass Resolution 1",100,-2,2);
00102 ZpMassRes102 = TH1F("ZpMassRes102","Zp Mass Resolution 2",100,-2,2);
00103 ZpMassRes103 = TH1F("ZpMassRes103","Zp Mass Resolution 3",100,-2,2);
00104
00105 ZpMassRes131 = TH1F("ZpMassRes131","Zp Mass Resolution 1",100,-2,2);
00106 ZpMassRes132 = TH1F("ZpMassRes132","Zp Mass Resolution 2",100,-2,2);
00107 ZpMassRes133 = TH1F("ZpMassRes133","Zp Mass Resolution 3",100,-2,2);
00108
00109 ZpMassRes401 = TH1F("ZpMassRes401","Zp Mass Resolution 1",100,-2,2);
00110 ZpMassRes402 = TH1F("ZpMassRes402","Zp Mass Resolution 2",100,-2,2);
00111 ZpMassRes403 = TH1F("ZpMassRes403","Zp Mass Resolution 3",100,-2,2);
00112
00113 ZpMassResL101 = TH1F("ZpMassResL101","Zp Mass Resolution Leading Jets 1",100,0,2);
00114 ZpMassResL102 = TH1F("ZpMassResL102","Zp Mass Resolution Leading Jets 2",100,0,2);
00115 ZpMassResL103 = TH1F("ZpMassResL103","Zp Mass Resolution Leading Jets 3",100,0,2);
00116
00117 ZpMassResRL101 = TH1F("ZpMassResRL101","Zp Mass Res. Ratio Leading Jets 1",100,0,2);
00118 ZpMassResRL102 = TH1F("ZpMassResRL102","Zp Mass Res. Ratio Leading Jets 2",100,0,2);
00119 ZpMassResRL103 = TH1F("ZpMassResRL103","Zp Mass Res. Ratio Leading Jets 3",100,0,2);
00120
00121 ZpMassResRLoP101 = TH1F("ZpMassResRLoP101","Zp Mass RLoP Ratio Leading Jets 1",100,0,2);
00122 ZpMassResRLoP102 = TH1F("ZpMassResRLoP102","Zp Mass RLoP Ratio Leading Jets 2",100,0,2);
00123 ZpMassResRLoP103 = TH1F("ZpMassResRLoP103","Zp Mass RLoP Ratio Leading Jets 3",100,0,2);
00124
00125 ZpMassResPRL101 = TH1F("ZpMassResPRL101","Zp Mass Res. P Ratio Leading Jets 1",100,0,2);
00126 ZpMassResPRL102 = TH1F("ZpMassResPRL102","Zp Mass Res. P Ratio Leading Jets 2",100,0,2);
00127 ZpMassResPRL103 = TH1F("ZpMassResPRL103","Zp Mass Res. P Ratio Leading Jets 3",100,0,2);
00128
00129
00130 ZpMassResL131 = TH1F("ZpMassResL131","Zp Mass Resolution Leading Jets 1",100,0,2);
00131 ZpMassResL132 = TH1F("ZpMassResL132","Zp Mass Resolution Leading Jets 2",100,0,2);
00132 ZpMassResL133 = TH1F("ZpMassResL133","Zp Mass Resolution Leading Jets 3",100,0,2);
00133
00134 ZpMassResRL131 = TH1F("ZpMassResRL131","Zp Mass Res. Ratio Leading Jets 1",100,0,2);
00135 ZpMassResRL132 = TH1F("ZpMassResRL132","Zp Mass Res. Ratio Leading Jets 2",100,0,2);
00136 ZpMassResRL133 = TH1F("ZpMassResRL133","Zp Mass Res. Ratio Leading Jets 3",100,0,2);
00137
00138 ZpMassResRLoP131 = TH1F("ZpMassResRLoP131","Zp Mass RLoP Ratio Leading Jets 1",100,0,2);
00139 ZpMassResRLoP132 = TH1F("ZpMassResRLoP132","Zp Mass RLoP Ratio Leading Jets 2",100,0,2);
00140 ZpMassResRLoP133 = TH1F("ZpMassResRLoP133","Zp Mass RLoP Ratio Leading Jets 3",100,0,2);
00141
00142 ZpMassResPRL131 = TH1F("ZpMassResPRL131","Zp Mass Res. P Ratio Leading Jets 1",100,0,2);
00143 ZpMassResPRL132 = TH1F("ZpMassResPRL132","Zp Mass Res. P Ratio Leading Jets 2",100,0,2);
00144 ZpMassResPRL133 = TH1F("ZpMassResPRL133","Zp Mass Res. P Ratio Leading Jets 3",100,0,2);
00145
00146
00147 ZpMassResL401 = TH1F("ZpMassResL401","Zp Mass Resolution Leading Jets 1",100,0,2);
00148 ZpMassResL402 = TH1F("ZpMassResL402","Zp Mass Resolution Leading Jets 2",100,0,2);
00149 ZpMassResL403 = TH1F("ZpMassResL403","Zp Mass Resolution Leading Jets 3",100,0,2);
00150
00151 ZpMassResRL401 = TH1F("ZpMassResRL401","Zp Mass Res. Ratio Leading Jets 1",100,0,2);
00152 ZpMassResRL402 = TH1F("ZpMassResRL402","Zp Mass Res. Ratio Leading Jets 2",100,0,2);
00153 ZpMassResRL403 = TH1F("ZpMassResRL403","Zp Mass Res. Ratio Leading Jets 3",100,0,2);
00154
00155 ZpMassResRLoP401 = TH1F("ZpMassResRLoP401","Zp Mass RLoP Ratio Leading Jets 1",100,0,2);
00156 ZpMassResRLoP402 = TH1F("ZpMassResRLoP402","Zp Mass RLoP Ratio Leading Jets 2",100,0,2);
00157 ZpMassResRLoP403 = TH1F("ZpMassResRLoP403","Zp Mass RLoP Ratio Leading Jets 3",100,0,2);
00158
00159 ZpMassResPRL401 = TH1F("ZpMassResPRL401","Zp Mass Res. P Ratio Leading Jets 1",100,0,2);
00160 ZpMassResPRL402 = TH1F("ZpMassResPRL402","Zp Mass Res. P Ratio Leading Jets 2",100,0,2);
00161 ZpMassResPRL403 = TH1F("ZpMassResPRL403","Zp Mass Res. P Ratio Leading Jets 3",100,0,2);
00162
00163 dijetMass1 = TH1F("dijetMass1","DiJet Mass 1",100,0,4000);
00164 dijetMass12 = TH1F("dijetMass12","DiJet Mass 1 2",100,0,6000);
00165 dijetMass13 = TH1F("dijetMass13","DiJet Mass 1 3",100,0,12000);
00166 dijetMass2 = TH1F("dijetMass2","DiJet Mass 2",100,0,4000);
00167 dijetMass22 = TH1F("dijetMass22","DiJet Mass 2 2",100,0,6000);
00168 dijetMass23 = TH1F("dijetMass23","DiJet Mass 2 3",100,0,12000);
00169 dijetMass3 = TH1F("dijetMass3","DiJet Mass 3",100,0,4000);
00170 dijetMass32 = TH1F("dijetMass32","DiJet Mass 3 2",100,0,6000);
00171 dijetMass33 = TH1F("dijetMass33","DiJet Mass 3 3",100,0,12000);
00172 dijetMass4 = TH1F("dijetMass4","DiJet Mass 4",100,0,4000);
00173 dijetMass42 = TH1F("dijetMass42","DiJet Mass 4 2",100,0,6000);
00174 dijetMass43 = TH1F("dijetMass43","DiJet Mass 4 3",100,0,12000);
00175
00176 dijetMass101 = TH1F("dijetMass101","DiJet Mass 1",100,0,6000);
00177 dijetMass131 = TH1F("dijetMass131","DiJet Mass 1",100,0,6000);
00178 dijetMass401 = TH1F("dijetMass401","DiJet Mass 1",100,0,6000);
00179
00180 dijetMass102 = TH1F("dijetMass102","DiJet Mass 2",100,0,6000);
00181 dijetMass132 = TH1F("dijetMass132","DiJet Mass 2",100,0,6000);
00182 dijetMass402 = TH1F("dijetMass402","DiJet Mass 2",100,0,6000);
00183
00184 dijetMass103 = TH1F("dijetMass103","DiJet Mass 3",100,0,10000);
00185 dijetMass133 = TH1F("dijetMass133","DiJet Mass 3",100,0,10000);
00186 dijetMass403 = TH1F("dijetMass403","DiJet Mass 3",100,0,10000);
00187
00188 dijetMass_700_101 = TH1F("dijetMass_700_101","DiJet Mass 1",100,0,1000);
00189 dijetMass_700_131 = TH1F("dijetMass_700_131","DiJet Mass 1",100,0,1000);
00190 dijetMass_700_401 = TH1F("dijetMass_700_401","DiJet Mass 1",100,0,1000);
00191
00192 dijetMass_2000_101 = TH1F("dijetMass_2000_101","DiJet Mass 1",100,1500,2500);
00193 dijetMass_2000_131 = TH1F("dijetMass_2000_131","DiJet Mass 1",100,1500,2500);
00194 dijetMass_2000_401 = TH1F("dijetMass_2000_401","DiJet Mass 1",100,1500,2500);
00195
00196 dijetMass_5000_101 = TH1F("dijetMass_5000_101","DiJet Mass 1",150,4000,5500);
00197 dijetMass_5000_131 = TH1F("dijetMass_5000_131","DiJet Mass 1",150,4000,5500);
00198 dijetMass_5000_401 = TH1F("dijetMass_5000_401","DiJet Mass 1",150,4000,5500);
00199
00200
00201 dijetMassCor1 = TH1F("dijetMassCor1","DiJet Mass 1",160,0,8000);
00202 dijetMassCor101 = TH1F("dijetMassCor101","DiJet Mass Cor 101",160,0,8000);
00203 dijetMassCor131 = TH1F("dijetMassCor131","DiJet Mass Cor 131",160,0,8000);
00204 dijetMassCor401 = TH1F("dijetMassCor401","DiJet Mass Cor 401",160,0,8000);
00205
00206 dijetMassCor_700_1 = TH1F("dijetMassCor_700_1","DiJet Mass 1",100,0,1000);
00207 dijetMassCor_700_101 = TH1F("dijetMassCor_700_101","DiJet Mass Cor 101",100,0,1000);
00208 dijetMassCor_700_131 = TH1F("dijetMassCor_700_131","DiJet Mass Cor 131",100,0,1000);
00209 dijetMassCor_700_401 = TH1F("dijetMassCor_700_401","DiJet Mass Cor 401",100,0,1000);
00210
00211 dijetMassCor_2000_1 = TH1F("dijetMassCor_2000_1","DiJet Mass 1",100,1500,2500);
00212 dijetMassCor_2000_101 = TH1F("dijetMassCor_2000_101","DiJet Mass Cor 101",100,1500,2500);
00213 dijetMassCor_2000_131 = TH1F("dijetMassCor_2000_131","DiJet Mass Cor 131",100,1500,2500);
00214 dijetMassCor_2000_401 = TH1F("dijetMassCor_2000_401","DiJet Mass Cor 401",100,1500,2500);
00215
00216 dijetMassCor_5000_1 = TH1F("dijetMassCor_5000_1","DiJet Mass 1",150,4000,5500);
00217 dijetMassCor_5000_101 = TH1F("dijetMassCor_5000_101","DiJet Mass Cor 101",150,4000,5500);
00218 dijetMassCor_5000_131 = TH1F("dijetMassCor_5000_131","DiJet Mass Cor 131",150,4000,5500);
00219 dijetMassCor_5000_401 = TH1F("dijetMassCor_5000_401","DiJet Mass Cor 401",150,4000,5500);
00220
00221 dijetMassP1 = TH1F("dijetMassP1","DiJet Mass P 1",160,0,8000);
00222 dijetMassP2 = TH1F("dijetMassP2","DiJet Mass P 2",160,0,8000);
00223 dijetMassP3 = TH1F("dijetMassP3","DiJet Mass P 3",160,0,8000);
00224
00225
00226 dijetMassP101 = TH1F("dijetMassP101","DiJet Mass P 1",160,0,8000);
00227 dijetMassP131 = TH1F("dijetMassP131","DiJet Mass P 1",160,0,8000);
00228 dijetMassP401 = TH1F("dijetMassP401","DiJet Mass P 1",160,0,8000);
00229
00230 dijetMassP_700_101 = TH1F("dijetMassP_700_101","DiJet Mass P 1",100,0,1000);
00231 dijetMassP_700_131 = TH1F("dijetMassP_700_131","DiJet Mass P 1",100,0,1000);
00232 dijetMassP_700_401 = TH1F("dijetMassP_700_401","DiJet Mass P 1",100,0,1000);
00233
00234 dijetMassP_2000_101 = TH1F("dijetMassP_2000_101","DiJet Mass P 1",100,1500,2500);
00235 dijetMassP_2000_131 = TH1F("dijetMassP_2000_131","DiJet Mass P 1",100,1500,2500);
00236 dijetMassP_2000_401 = TH1F("dijetMassP_2000_401","DiJet Mass P 1",100,1500,2500);
00237
00238 dijetMassP_5000_101 = TH1F("dijetMassP_5000_101","DiJet Mass P 1",150,4000,5500);
00239 dijetMassP_5000_131 = TH1F("dijetMassP_5000_131","DiJet Mass P 1",150,4000,5500);
00240 dijetMassP_5000_401 = TH1F("dijetMassP_5000_401","DiJet Mass P 1",150,4000,5500);
00241
00242 totEneLeadJetEta1_1 = TH1F("totEneLeadJetEta1_1","Total Energy Lead Jet Eta1 1",100,0,1500);
00243 totEneLeadJetEta2_1 = TH1F("totEneLeadJetEta2_1","Total Energy Lead Jet Eta2 1",100,0,1500);
00244 totEneLeadJetEta3_1 = TH1F("totEneLeadJetEta3_1","Total Energy Lead Jet Eta3 1",100,0,1500);
00245 hadEneLeadJetEta1_1 = TH1F("hadEneLeadJetEta1_1","Hadronic Energy Lead Jet Eta1 1",100,0,1500);
00246 hadEneLeadJetEta2_1 = TH1F("hadEneLeadJetEta2_1","Hadronic Energy Lead Jet Eta2 1",100,0,1500);
00247 hadEneLeadJetEta3_1 = TH1F("hadEneLeadJetEta3_1","Hadronic Energy Lead Jet Eta3 1",100,0,1500);
00248 emEneLeadJetEta1_1 = TH1F("emEneLeadJetEta1_1","EM Energy Lead Jet Eta1 1",100,0,1500);
00249 emEneLeadJetEta2_1 = TH1F("emEneLeadJetEta2_1","EM Energy Lead Jet Eta2 1",100,0,1500);
00250 emEneLeadJetEta3_1 = TH1F("emEneLeadJetEta3_1","EM Energy Lead Jet Eta3 1",100,0,1500);
00251
00252 totEneLeadJetEta1_2 = TH1F("totEneLeadJetEta1_2","Total Energy Lead Jet Eta1 2",100,0,6000);
00253 totEneLeadJetEta2_2 = TH1F("totEneLeadJetEta2_2","Total Energy Lead Jet Eta2 2",100,0,6000);
00254 totEneLeadJetEta3_2 = TH1F("totEneLeadJetEta3_2","Total Energy Lead Jet Eta3 2",100,0,6000);
00255 hadEneLeadJetEta1_2 = TH1F("hadEneLeadJetEta1_2","Hadronic Energy Lead Jet Eta1 2",100,0,6000);
00256 hadEneLeadJetEta2_2 = TH1F("hadEneLeadJetEta2_2","Hadronic Energy Lead Jet Eta2 2",100,0,6000);
00257 hadEneLeadJetEta3_2 = TH1F("hadEneLeadJetEta3_2","Hadronic Energy Lead Jet Eta3 2",100,0,6000);
00258 emEneLeadJetEta1_2 = TH1F("emEneLeadJetEta1_2","EM Energy Lead Jet Eta1 2",100,0,5000);
00259 emEneLeadJetEta2_2 = TH1F("emEneLeadJetEta2_2","EM Energy Lead Jet Eta2 2",100,0,5000);
00260 emEneLeadJetEta3_2 = TH1F("emEneLeadJetEta3_2","EM Energy Lead Jet Eta3 2",100,0,5000);
00261
00262 hadEneLeadJet1 = TH1F("hadEneLeadJet1","Hadronic Energy Lead Jet 1",100,0,3000);
00263 hadEneLeadJet12 = TH1F("hadEneLeadJet12","Hadronic Energy Lead Jet 1 2",100,0,4000);
00264 hadEneLeadJet13 = TH1F("hadEneLeadJet13","Hadronic Energy Lead Jet 1 3",100,0,6000);
00265 hadEneLeadJet2 = TH1F("hadEneLeadJet2","Hadronic Energy Lead Jet 2",100,0,3000);
00266 hadEneLeadJet22 = TH1F("hadEneLeadJet22","Hadronic Energy Lead Jet 2 2",100,0,4000);
00267 hadEneLeadJet23 = TH1F("hadEneLeadJet23","Hadronic Energy Lead Jet 2 3",100,0,6000);
00268 hadEneLeadJet3 = TH1F("hadEneLeadJet3","Hadronic Energy Lead Jet 3",100,0,3000);
00269 hadEneLeadJet32 = TH1F("hadEneLeadJet32","Hadronic Energy Lead Jet 3 2",100,0,4000);
00270 hadEneLeadJet33 = TH1F("hadEneLeadJet33","Hadronic Energy Lead Jet 3 3",100,0,6000);
00271
00272 emEneLeadJet1 = TH1F("emEneLeadJet1","EM Energy Lead Jet 1",100,0,1500);
00273 emEneLeadJet12 = TH1F("emEneLeadJet12","EM Energy Lead Jet 1 2",100,0,3000);
00274 emEneLeadJet13 = TH1F("emEneLeadJet13","EM Energy Lead Jet 1 3",100,0,5000);
00275 emEneLeadJet2 = TH1F("emEneLeadJet2","EM Energy Lead Jet 2",100,0,1500);
00276 emEneLeadJet22 = TH1F("emEneLeadJet22","EM Energy Lead Jet 2 2",100,0,3000);
00277 emEneLeadJet23 = TH1F("emEneLeadJet23","EM Energy Lead Jet 2 3",100,0,5000);
00278 emEneLeadJet3 = TH1F("emEneLeadJet3","EM Energy Lead Jet 3",100,0,1500);
00279 emEneLeadJet32 = TH1F("emEneLeadJet32","EM Energy Lead Jet 3 2",100,0,3000);
00280 emEneLeadJet33 = TH1F("emEneLeadJet33","EM Energy Lead Jet 3 3",100,0,5000);
00281
00282 hadFracEta11 = TH1F("hadFracEta11","Hadronic Fraction Eta1 Jet 1",100,0,1);
00283 hadFracEta21 = TH1F("hadFracEta21","Hadronic Fraction Eta2 Jet 1",100,0,1);
00284 hadFracEta31 = TH1F("hadFracEta31","Hadronic Fraction Eta3 Jet 1",100,0,1);
00285
00286 hadFracEta12 = TH1F("hadFracEta12","Hadronic Fraction Eta1 Jet 2",100,0,1);
00287 hadFracEta22 = TH1F("hadFracEta22","Hadronic Fraction Eta2 Jet 2",100,0,1);
00288 hadFracEta32 = TH1F("hadFracEta32","Hadronic Fraction Eta3 Jet 2",100,0,1);
00289
00290 hadFracEta13 = TH1F("hadFracEta13","Hadronic Fraction Eta1 Jet 3",100,0,1);
00291 hadFracEta23 = TH1F("hadFracEta23","Hadronic Fraction Eta2 Jet 3",100,0,1);
00292 hadFracEta33 = TH1F("hadFracEta33","Hadronic Fraction Eta3 Jet 3",100,0,1);
00293
00294 hadFracLeadJet1 = TH1F("hadFracLeadJet1","Hadronic Fraction Lead Jet 1",100,0,1);
00295 hadFracLeadJet2 = TH1F("hadFracLeadJet2","Hadronic Fraction Lead Jet 2",100,0,1);
00296 hadFracLeadJet3 = TH1F("hadFracLeadJet3","Hadronic Fraction Lead Jet 3",100,0,1);
00297
00298 SumEt1 = TH1F("SumEt1","SumEt 1",100,0,1000);
00299 SumEt12 = TH1F("SumEt12","SumEt 1 2",100,0,4000);
00300 SumEt13 = TH1F("SumEt13","SumEt 1 3",100,0,15000);
00301
00302 MET1 = TH1F("MET1", "MET 1",100,0,200);
00303 MET12 = TH1F("MET12", "MET 1 2",100,0,1000);
00304 MET13 = TH1F("MET13", "MET 1 3",100,0,3000);
00305
00306 nTowersLeadJet1 = TH1F("nTowersLeadJet1","Number of Towers Lead Jet 1",100,0,100);
00307 nTowersLeadJet2 = TH1F("nTowersLeadJet2","Number of Towers Lead Jet 2",100,0,100);
00308 nTowersLeadJet3 = TH1F("nTowersLeadJet3","Number of Towers Lead Jet 3",100,0,100);
00309
00310 nTowersSecondJet1 = TH1F("nTowersSecondJet1","Number of Towers Second Jet 1",100,0,100);
00311 nTowersSecondJet2 = TH1F("nTowersSecondJet2","Number of Towers Second Jet 2",100,0,100);
00312 nTowersSecondJet3 = TH1F("nTowersSecondJet3","Number of Towers Second Jet 3",100,0,100);
00313
00314 hf_PtResponse1 = TProfile("PtResponse1","Pt Response 1", 100, -5, 5, 0, 10);
00315 hf_PtResponse2 = TProfile("PtResponse2","Pt Response 2", 100, -5, 5, 0, 10);
00316 hf_PtResponse3 = TProfile("PtResponse3","Pt Response 3", 100, -5, 5, 0, 10);
00317 hf_PtResponse4 = TProfile("PtResponse4","Pt Response 4", 100, -5, 5, 0, 10);
00318
00319 hf_TowerDelR1 = TProfile("hf_TowerDelR1","Tower Del R 1", 100, 0, 2, 0, 10);
00320 hf_TowerDelR12 = TProfile("hf_TowerDelR12","Tower Del R 1", 80, 0, 0.8, 0, 10);
00321 hf_TowerDelR2 = TProfile("hf_TowerDelR2","Tower Del R 2", 100, 0, 2, 0, 10);
00322 hf_TowerDelR22 = TProfile("hf_TowerDelR22","Tower Del R 2", 80, 0, 0.8, 0, 10);
00323 hf_TowerDelR3 = TProfile("hf_TowerDelR3","Tower Del R 3", 100, 0, 2, 0, 10);
00324 hf_TowerDelR32 = TProfile("hf_TowerDelR32","Tower Del R 3", 80, 0, 0.8, 0, 10);
00325
00326 hf_sumTowerAllEx = TH1F("sumTowerAllEx","Tower Ex",100,-1000,1000);
00327 hf_sumTowerAllEy = TH1F("sumTowerAllEy","Tower Ey",100,-1000,1000);
00328
00329 hf_TowerJetEt1 = TH1F("TowerJetEt1","Tower/Jet Et 1",50,0,1);
00330
00331 nTowers1 = TH1F("nTowers1","Number of Towers pt 0.5",100,0,500);
00332 nTowers2 = TH1F("nTowers2","Number of Towers pt 1.0",100,0,500);
00333 nTowers3 = TH1F("nTowers3","Number of Towers pt 1.5",100,0,500);
00334 nTowers4 = TH1F("nTowers4","Number of Towers pt 2.0",100,0,500);
00335
00336 nTowersLeadJetPt1 = TH1F("nTowersLeadJetPt1","Number of Towers in Lead Jet pt 0.5",100,0,200);
00337 nTowersLeadJetPt2 = TH1F("nTowersLeadJetPt2","Number of Towers in Lead Jet pt 1.0",100,0,200);
00338 nTowersLeadJetPt3 = TH1F("nTowersLeadJetPt3","Number of Towers in Lead Jet pt 1.5",100,0,200);
00339 nTowersLeadJetPt4 = TH1F("nTowersLeadJetPt4","Number of Towers in Lead Jet pt 2.0",100,0,200);
00340
00341 TowerEtLeadJet1 = TH1F("TowerEtLeadJet1","Towers Et Lead Jet 1",100,0,2000);
00342 TowerEtLeadJet12 = TH1F("TowerEtLeadJet12","Towers Et Lead Jet 1 2",100,0,6000);
00343 TowerEtLeadJet13 = TH1F("TowerEtLeadJet13","Towers Et Lead Jet 1 3",100,0,300);
00344 TowerEtLeadJet2 = TH1F("TowerEtLeadJet2","Towers Et Lead Jet 2",100,0,2000);
00345 TowerEtLeadJet22 = TH1F("TowerEtLeadJet22","Towers Et Lead Jet 2 2",100,0,6000);
00346 TowerEtLeadJet23 = TH1F("TowerEtLeadJet23","Towers Et Lead Jet 2 3",100,0,300);
00347 TowerEtLeadJet3 = TH1F("TowerEtLeadJet3","Towers Et Lead Jet 3",100,0,2000);
00348 TowerEtLeadJet32 = TH1F("TowerEtLeadJet32","Towers Et Lead Jet 3 2",100,0,6000);
00349 TowerEtLeadJet33 = TH1F("TowerEtLeadJet33","Towers Et Lead Jet 3 3",100,0,300);
00350
00351 hf_nJet1 = TProfile("hf_nJet1", "Num Jets 1", 100, 0, 5000, 0, 50);
00352 hf_nJet2 = TProfile("hf_nJet2", "Num Jets 2", 100, 0, 5000, 0, 50);
00353 hf_nJet3 = TProfile("hf_nJet3", "Num Jets 3", 100, 0, 5000, 0, 50);
00354 hf_nJet4 = TProfile("hf_nJet4", "Num Jets 4", 100, 0, 5000, 0, 50);
00355
00356 hf_nJet1s = TProfile("hf_nJet1s", "Num Jets 1", 100, 0, 200, 0, 50);
00357 hf_nJet2s = TProfile("hf_nJet2s", "Num Jets 2", 100, 0, 200, 0, 50);
00358 hf_nJet3s = TProfile("hf_nJet3s", "Num Jets 3", 100, 0, 200, 0, 50);
00359 hf_nJet4s = TProfile("hf_nJet4s", "Num Jets 4", 100, 0, 200, 0, 50);
00360
00361 hf_nJet11 = TProfile("hf_nJet11", "Num Jets 1 1", 100, 0, 3000, 0, 50);
00362 hf_nJet21 = TProfile("hf_nJet21", "Num Jets 2 1", 100, 0, 3000, 0, 50);
00363 hf_nJet31 = TProfile("hf_nJet31", "Num Jets 3 1", 100, 0, 3000, 0, 50);
00364 hf_nJet41 = TProfile("hf_nJet41", "Num Jets 4 1", 100, 0, 3000, 0, 50);
00365
00366 dRPar1 = TH1F("dRPar1","Parton dR with matched CaloJet1",100,0,0.5);
00367 dPhiPar1 = TH1F("dPhiPar1","Parton dPhi with matched CaloJet1",200,-0.5,0.5);
00368 dEtaPar1 = TH1F("dEtaPar1","Parton dEta with matched CaloJet1",200,-0.5,0.5);
00369 dPtPar1 = TH1F("dPtPar1","Parton dPt with matched CaloJet1",200,-50,50);
00370
00371 dRPar2 = TH1F("dRPar2","Parton dR with matched CaloJet2",100,0,0.5);
00372 dPhiPar2 = TH1F("dPhiPar2","Parton dPhi with matched CaloJet2",200,-0.5,0.5);
00373 dEtaPar2 = TH1F("dEtaPar2","Parton dEta with matched CaloJet2",200,-0.5,0.5);
00374 dPtPar2 = TH1F("dPtPar2","Parton dPt with matched CaloJet2",200,-50,50);
00375
00376 dRPar3 = TH1F("dRPar3","Parton dR with matched CaloJet3",100,0,0.5);
00377 dPhiPar3 = TH1F("dPhiPar3","Parton dPhi with matched CaloJet3",200,-0.5,0.5);
00378 dEtaPar3 = TH1F("dEtaPar3","Parton dEta with matched CaloJet3",200,-0.5,0.5);
00379 dPtPar3 = TH1F("dPtPar3","Parton dPt with matched CaloJet3",200,-50,50);
00380
00381 dRPar4 = TH1F("dRPar4","Parton dR with matched CaloJet4",100,0,0.5);
00382 dPhiPar4 = TH1F("dPhiPar4","Parton dPhi with matched CaloJet4",200,-0.5,0.5);
00383 dEtaPar4 = TH1F("dEtaPar4","Parton dEta with matched CaloJet4",200,-0.5,0.5);
00384 dPtPar4 = TH1F("dPtPar4","Parton dPt with matched CaloJet4",200,-50,50);
00385
00386 dRParton = TH1F("dRParton","dR Parton",100,0,10.0);
00387 dRPartonMin = TH1F("dRPartonMin","Min dR Parton",100,0,2.0);
00388
00389 dR1 = TH1F("dR1","GenJets dR with matched CaloJet",100,0,0.5);
00390 dPhi1 = TH1F("dPhi1","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
00391 dEta1 = TH1F("dEta1","GenJets dEta with matched CaloJet",200,-0.5,0.5);
00392 dPt1 = TH1F("dPt1","GenJets dPt with matched CaloJet",200,-100,100);
00393 dPtFrac1 = TH1F("dPtFrac1","GenJets dPt frac with matched CaloJet",100,-1,1);
00394 dPt20Frac1 = TH1F("dPt20Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
00395 dPt40Frac1 = TH1F("dPt40Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
00396 dPt80Frac1 = TH1F("dPt80Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
00397 dPt100Frac1 = TH1F("dPt100Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
00398
00399 dR2 = TH1F("dR2","GenJets dR with matched CaloJet",100,0,0.5);
00400 dPhi2 = TH1F("dPhi2","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
00401 dEta2 = TH1F("dEta2","GenJets dEta with matched CaloJet",200,-0.5,0.5);
00402 dPt2 = TH1F("dPt2","GenJets dPt with matched CaloJet",200,-100,100);
00403 dPtFrac2 = TH1F("dPtFrac2","GenJets dPt frac with matched CaloJet",100,-1,1);
00404 dPt20Frac2 = TH1F("dPt20Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
00405 dPt40Frac2 = TH1F("dPt40Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
00406 dPt80Frac2 = TH1F("dPt80Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
00407 dPt100Frac2 = TH1F("dPt100Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
00408
00409 dR3 = TH1F("dR3","GenJets dR with matched CaloJet",100,0,0.5);
00410 dPhi3 = TH1F("dPhi3","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
00411 dEta3 = TH1F("dEta3","GenJets dEta with matched CaloJet",200,-0.5,0.5);
00412 dPt3 = TH1F("dPt3","GenJets dPt with matched CaloJet",200,-100,100);
00413 dPtFrac3 = TH1F("dPtFrac3","GenJets dPt frac with matched CaloJet",100,-1,1);
00414 dPt20Frac3 = TH1F("dPt20Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
00415 dPt40Frac3 = TH1F("dPt40Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
00416 dPt80Frac3 = TH1F("dPt80Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
00417 dPt100Frac3 = TH1F("dPt100Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
00418
00419 dR4 = TH1F("dR4","GenJets dR with matched CaloJet",100,0,0.5);
00420 dPhi4 = TH1F("dPhi4","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
00421 dEta4 = TH1F("dEta4","GenJets dEta with matched CaloJet",200,-0.5,0.5);
00422 dPt4 = TH1F("dPt4","GenJets dPt with matched CaloJet",200,-100,100);
00423 dPtFrac4 = TH1F("dPtFrac4","GenJets dPt frac with matched CaloJet",100,-1,1);
00424 dPt20Frac4 = TH1F("dPt20Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
00425 dPt40Frac4 = TH1F("dPt40Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
00426 dPt80Frac4 = TH1F("dPt80Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
00427 dPt100Frac4 = TH1F("dPt100Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
00428
00429 dR12 = TH1F("dR12","dR MidPoint - SISCone",100,0,0.5);
00430 dPhi12 = TH1F("dPhi12","dPhi MidPoint - SISCone",200,-0.5,0.5);
00431 dEta12 = TH1F("dEta12","dEta MidPoint - SISCone",200,-0.5,0.5);
00432 dPt12 = TH1F("dPt12","dPt MidPoint - SISCone",200,-100,100);
00433
00434
00435
00436 h_nCalJets1 = TH1F( "nCalJets1", "Number of CalJets1", 20, 0, 20 );
00437 h_nCalJets2 = TH1F( "nCalJets2", "Number of CalJets2", 20, 0, 20 );
00438 h_nCalJets3 = TH1F( "nCalJets3", "Number of CalJets3", 20, 0, 20 );
00439 h_nCalJets4 = TH1F( "nCalJets4", "Number of CalJets4", 20, 0, 20 );
00440
00441 h_lowPtCal11 = TH1F( "lowPtCal11", "Low p_{T} of CalJet1 Eta1", 100, 0, 100 );
00442 h_lowPtCal21 = TH1F( "lowPtCal21", "Low p_{T} of CalJet2 Eta1", 100, 0, 100 );
00443 h_lowPtCal31 = TH1F( "lowPtCal31", "Low p_{T} of CalJet3 Eta1", 100, 0, 100 );
00444 h_lowPtCal41 = TH1F( "lowPtCal41", "Low p_{T} of CalJet4 Eta1", 100, 0, 100 );
00445
00446 h_lowPtCal12 = TH1F( "lowPtCal12", "Low p_{T} of CalJet1 Eta2", 100, 0, 100 );
00447 h_lowPtCal22 = TH1F( "lowPtCal22", "Low p_{T} of CalJet2 Eta2", 100, 0, 100 );
00448 h_lowPtCal32 = TH1F( "lowPtCal32", "Low p_{T} of CalJet3 Eta2", 100, 0, 100 );
00449 h_lowPtCal42 = TH1F( "lowPtCal42", "Low p_{T} of CalJet4 Eta2", 100, 0, 100 );
00450
00451 h_lowPtCal13 = TH1F( "lowPtCal13", "Low p_{T} of CalJet1 Eta3", 100, 0, 100 );
00452 h_lowPtCal23 = TH1F( "lowPtCal23", "Low p_{T} of CalJet2 Eta3", 100, 0, 100 );
00453 h_lowPtCal33 = TH1F( "lowPtCal33", "Low p_{T} of CalJet3 Eta3", 100, 0, 100 );
00454 h_lowPtCal43 = TH1F( "lowPtCal43", "Low p_{T} of CalJet4 Eta3", 100, 0, 100 );
00455
00456 h_lowPtCal1c11 = TH1F( "lowPtCal1c11", "Low p_{T} of CalJet1 c1 Eta1", 100, 0, 100 );
00457 h_lowPtCal2c11 = TH1F( "lowPtCal2c11", "Low p_{T} of CalJet2 c1 Eta1", 100, 0, 100 );
00458 h_lowPtCal3c11 = TH1F( "lowPtCal3c11", "Low p_{T} of CalJet3 c1 Eta1", 100, 0, 100 );
00459 h_lowPtCal4c11 = TH1F( "lowPtCal4c11", "Low p_{T} of CalJet4 c1 Eta1", 100, 0, 100 );
00460
00461 h_lowPtCal1c12 = TH1F( "lowPtCal1c12", "Low p_{T} of CalJet1 c1 Eta2", 100, 0, 100 );
00462 h_lowPtCal2c12 = TH1F( "lowPtCal2c12", "Low p_{T} of CalJet2 c1 Eta2", 100, 0, 100 );
00463 h_lowPtCal3c12 = TH1F( "lowPtCal3c12", "Low p_{T} of CalJet3 c1 Eta2", 100, 0, 100 );
00464 h_lowPtCal4c12 = TH1F( "lowPtCal4c12", "Low p_{T} of CalJet4 c1 Eta2", 100, 0, 100 );
00465
00466 h_lowPtCal1c13 = TH1F( "lowPtCal1c13", "Low p_{T} of CalJet1 c1 Eta3", 100, 0, 100 );
00467 h_lowPtCal2c13 = TH1F( "lowPtCal2c13", "Low p_{T} of CalJet2 c1 Eta3", 100, 0, 100 );
00468 h_lowPtCal3c13 = TH1F( "lowPtCal3c13", "Low p_{T} of CalJet3 c1 Eta3", 100, 0, 100 );
00469 h_lowPtCal4c13 = TH1F( "lowPtCal4c13", "Low p_{T} of CalJet4 c1 Eta3", 100, 0, 100 );
00470
00471
00472 matchedAllPt11 = TH1F( "matchedAllPt11", "p_{T} of CalJet1 Eta1", 50, 0, 250 );
00473 matchedAllPt12 = TH1F( "matchedAllPt12", "p_{T} of CalJet1 Eta2", 50, 0, 250 );
00474 matchedAllPt13 = TH1F( "matchedAllPt13", "p_{T} of CalJet1 Eta3", 50, 0, 250 );
00475 matchedPt11 = TH1F( "matchedPt11", "p_{T} of CalJet1 Eta1", 50, 0, 250 );
00476 matchedPt12 = TH1F( "matchedPt12", "p_{T} of CalJet1 Eta2", 50, 0, 250 );
00477 matchedPt13 = TH1F( "matchedPt13", "p_{T} of CalJet1 Eta3", 50, 0, 250 );
00478
00479 matchedAllPt21 = TH1F( "matchedAllPt21", "p_{T} of CalJet2 Eta1", 50, 0, 250 );
00480 matchedAllPt22 = TH1F( "matchedAllPt22", "p_{T} of CalJet2 Eta2", 50, 0, 250 );
00481 matchedAllPt23 = TH1F( "matchedAllPt23", "p_{T} of CalJet2 Eta3", 50, 0, 250 );
00482 matchedPt21 = TH1F( "matchedPt21", "p_{T} of CalJet2 Eta1", 50, 0, 250 );
00483 matchedPt22 = TH1F( "matchedPt22", "p_{T} of CalJet2 Eta2", 50, 0, 250 );
00484 matchedPt23 = TH1F( "matchedPt23", "p_{T} of CalJet2 Eta3", 50, 0, 250 );
00485
00486 matchedAllPt31 = TH1F( "matchedAllPt31", "p_{T} of CalJet3 Eta1", 50, 0, 250 );
00487 matchedAllPt32 = TH1F( "matchedAllPt32", "p_{T} of CalJet3 Eta2", 50, 0, 250 );
00488 matchedAllPt33 = TH1F( "matchedAllPt33", "p_{T} of CalJet3 Eta3", 50, 0, 250 );
00489 matchedPt31 = TH1F( "matchedPt31", "p_{T} of CalJet3 Eta1", 50, 0, 250 );
00490 matchedPt32 = TH1F( "matchedPt32", "p_{T} of CalJet3 Eta2", 50, 0, 250 );
00491 matchedPt33 = TH1F( "matchedPt33", "p_{T} of CalJet3 Eta3", 50, 0, 250 );
00492
00493 matchedAllPt41 = TH1F( "matchedAllPt41", "p_{T} of CalJet4 Eta1", 50, 0, 250 );
00494 matchedAllPt42 = TH1F( "matchedAllPt42", "p_{T} of CalJet4 Eta2", 50, 0, 250 );
00495 matchedAllPt43 = TH1F( "matchedAllPt43", "p_{T} of CalJet4 Eta3", 50, 0, 250 );
00496 matchedPt41 = TH1F( "matchedPt41", "p_{T} of CalJet4 Eta1", 50, 0, 250 );
00497 matchedPt42 = TH1F( "matchedPt42", "p_{T} of CalJet4 Eta2", 50, 0, 250 );
00498 matchedPt43 = TH1F( "matchedPt43", "p_{T} of CalJet4 Eta3", 50, 0, 250 );
00499
00500
00501
00502 h_ptCal1 = TH1F( "ptCal1", "p_{T} of CalJet1", 50, 0, 1000 );
00503 h_ptCal12 = TH1F( "ptCal12", "p_{T} of CalJet1 2", 50, 0, 6000 );
00504 h_ptCal13 = TH1F( "ptCal13", "p_{T} of CalJet1 2", 50, 0, 300 );
00505
00506 h_ptCal2 = TH1F( "ptCal2", "p_{T} of CalJet2", 50, 0, 1000 );
00507 h_ptCal22 = TH1F( "ptCal22", "p_{T} of CalJet2 2", 50, 0, 6000 );
00508 h_ptCal23 = TH1F( "ptCal23", "p_{T} of CalJet2 2", 50, 0, 300 );
00509
00510 h_ptCal3 = TH1F( "ptCal3", "p_{T} of CalJet3", 50, 0, 1000 );
00511 h_ptCal32 = TH1F( "ptCal32", "p_{T} of CalJet3 2", 50, 0, 6000 );
00512 h_ptCal33 = TH1F( "ptCal33", "p_{T} of CalJet3 2", 50, 0, 300 );
00513
00514 h_ptCal4 = TH1F( "ptCal4", "p_{T} of CalJet4", 50, 0, 1000 );
00515 h_ptCal42 = TH1F( "ptCal42", "p_{T} of CalJet4 2", 50, 0, 6000 );
00516 h_ptCal43 = TH1F( "ptCal43", "p_{T} of CalJet4 2", 50, 0, 300 );
00517
00518 h_etaCal1 = TH1F( "etaCal1", "#eta of CalJet1", 100, -4, 4 );
00519 h_etaCal2 = TH1F( "etaCal2", "#eta of CalJet2", 100, -4, 4 );
00520 h_etaCal3 = TH1F( "etaCal3", "#eta of CalJet3", 100, -4, 4 );
00521 h_etaCal4 = TH1F( "etaCal4", "#eta of CalJet4", 100, -4, 4 );
00522
00523 h_phiCal1 = TH1F( "phiCal1", "#phi of CalJet1", 50, -M_PI, M_PI );
00524 h_phiCal2 = TH1F( "phiCal2", "#phi of CalJet2", 50, -M_PI, M_PI );
00525 h_phiCal3 = TH1F( "phiCal3", "#phi of CalJet3", 50, -M_PI, M_PI );
00526 h_phiCal4 = TH1F( "phiCal4", "#phi of CalJet4", 50, -M_PI, M_PI );
00527
00528 h_ptCalL1 = TH1F( "ptCalL1", "p_{T} of CalJetL1", 50, 0, 300 );
00529 h_ptCalL12 = TH1F( "ptCalL12", "p_{T} of CalJetL1 2", 50, 0, 1200 );
00530 h_ptCalL13 = TH1F( "ptCalL13", "p_{T} of CalJetL1 3", 50, 0, 6000 );
00531 h_ptCalL2 = TH1F( "ptCalL2", "p_{T} of CalJetL2", 50, 0, 300 );
00532 h_ptCalL22 = TH1F( "ptCalL22", "p_{T} of CalJetL2 2", 50, 0, 1200 );
00533 h_ptCalL23 = TH1F( "ptCalL23", "p_{T} of CalJetL2 3", 50, 0, 6000 );
00534 h_ptCalL3 = TH1F( "ptCalL3", "p_{T} of CalJetL3", 50, 0, 300 );
00535 h_ptCalL32 = TH1F( "ptCalL32", "p_{T} of CalJetL3 2", 50, 0, 1200 );
00536 h_ptCalL33 = TH1F( "ptCalL33", "p_{T} of CalJetL3 3", 50, 0, 6000 );
00537 h_ptCalL4 = TH1F( "ptCalL4", "p_{T} of CalJetL4", 50, 0, 300 );
00538 h_ptCalL42 = TH1F( "ptCalL42", "p_{T} of CalJetL4 2", 50, 0, 1200 );
00539 h_ptCalL43 = TH1F( "ptCalL43", "p_{T} of CalJetL4 3", 50, 0, 6000 );
00540
00541
00542 h_etaCalL1 = TH1F( "etaCalL1", "#eta of CalJetL1", 100, -4, 4 );
00543 h_etaCalL2 = TH1F( "etaCalL2", "#eta of CalJetL2", 100, -4, 4 );
00544 h_etaCalL3 = TH1F( "etaCalL3", "#eta of CalJetL3", 100, -4, 4 );
00545 h_etaCalL4 = TH1F( "etaCalL4", "#eta of CalJetL4", 100, -4, 4 );
00546 h_phiCalL1 = TH1F( "phiCalL1", "#phi of CalJetL1", 50, -M_PI, M_PI );
00547 h_phiCalL2 = TH1F( "phiCalL2", "#phi of CalJetL2", 50, -M_PI, M_PI );
00548 h_phiCalL3 = TH1F( "phiCalL3", "#phi of CalJetL3", 50, -M_PI, M_PI );
00549 h_phiCalL4 = TH1F( "phiCalL4", "#phi of CalJetL4", 50, -M_PI, M_PI );
00550
00551 h_nGenJets1 = TH1F( "nGenJets1", "Number of GenJets1", 20, 0, 20 );
00552 h_nGenJets2 = TH1F( "nGenJets2", "Number of GenJets2", 20, 0, 20 );
00553 h_nGenJets3 = TH1F( "nGenJets3", "Number of GenJets3", 20, 0, 20 );
00554 h_nGenJets4 = TH1F( "nGenJets4", "Number of GenJets4", 20, 0, 20 );
00555
00556 h_ptGen1 = TH1F( "ptGen1", "p_{T} of GenJet1", 50, 0, 1000 );
00557 h_ptGen12 = TH1F( "ptGen12", "p_{T} of GenJet1 2", 50, 0, 6000 );
00558 h_ptGen13 = TH1F( "ptGen13", "p_{T} of GenJet1 3", 50, 0, 300 );
00559
00560 h_ptGen2 = TH1F( "ptGen2", "p_{T} of GenJet2", 50, 0, 1000 );
00561 h_ptGen22 = TH1F( "ptGen22", "p_{T} of GenJet2 2", 50, 0, 6000 );
00562 h_ptGen23 = TH1F( "ptGen23", "p_{T} of GenJet2 3", 50, 0, 300 );
00563
00564 h_ptGen3 = TH1F( "ptGen3", "p_{T} of GenJet3", 50, 0, 1000 );
00565 h_ptGen32 = TH1F( "ptGen32", "p_{T} of GenJet3 2", 50, 0, 6000 );
00566 h_ptGen33 = TH1F( "ptGen33", "p_{T} of GenJet3 3", 50, 0, 300 );
00567
00568 h_ptGen4 = TH1F( "ptGen4", "p_{T} of GenJet4", 50, 0, 1000 );
00569 h_ptGen42 = TH1F( "ptGen42", "p_{T} of GenJet4 2", 50, 0, 6000 );
00570 h_ptGen43 = TH1F( "ptGen43", "p_{T} of GenJet4 3", 50, 0, 300 );
00571
00572
00573 h_etaGen1 = TH1F( "etaGen1", "#eta of GenJet1", 100, -4, 4 );
00574 h_etaGen2 = TH1F( "etaGen2", "#eta of GenJet2", 100, -4, 4 );
00575 h_etaGen3 = TH1F( "etaGen3", "#eta of GenJet3", 100, -4, 4 );
00576 h_phiGen1 = TH1F( "phiGen1", "#phi of GenJet1", 50, -M_PI, M_PI );
00577 h_phiGen2 = TH1F( "phiGen2", "#phi of GenJet2", 50, -M_PI, M_PI );
00578 h_phiGen3 = TH1F( "phiGen3", "#phi of GenJet3", 50, -M_PI, M_PI );
00579
00580 h_ptGenL1 = TH1F( "ptGenL1", "p_{T} of GenJetL1", 50, 0, 300 );
00581 h_ptGenL12 = TH1F( "ptGenL12", "p_{T} of GenJetL1 2", 50, 0, 1200 );
00582 h_ptGenL13 = TH1F( "ptGenL13", "p_{T} of GenJetL1 3", 50, 0, 6000 );
00583 h_ptGenL2 = TH1F( "ptGenL2", "p_{T} of GenJetL2", 50, 0, 300 );
00584 h_ptGenL22 = TH1F( "ptGenL22", "p_{T} of GenJetL2 2", 50, 0, 1200 );
00585 h_ptGenL23 = TH1F( "ptGenL23", "p_{T} of GenJetL2 3", 50, 0, 6000 );
00586 h_ptGenL3 = TH1F( "ptGenL3", "p_{T} of GenJetL3", 50, 0, 300 );
00587 h_ptGenL32 = TH1F( "ptGenL32", "p_{T} of GenJetL32", 50, 0, 1200 );
00588 h_ptGenL33 = TH1F( "ptGenL33", "p_{T} of GenJetL33", 50, 0, 6000 );
00589
00590
00591 h_etaGenL1 = TH1F( "etaGenL1", "#eta of GenJetL1", 100, -4, 4 );
00592 h_etaGenL2 = TH1F( "etaGenL2", "#eta of GenJetL2", 100, -4, 4 );
00593 h_etaGenL3 = TH1F( "etaGenL3", "#eta of GenJetL3", 100, -4, 4 );
00594 h_phiGenL1 = TH1F( "phiGenL1", "#phi of GenJetL1", 50, -M_PI, M_PI );
00595 h_phiGenL2 = TH1F( "phiGenL2", "#phi of GenJetL2", 50, -M_PI, M_PI );
00596 h_phiGenL3 = TH1F( "phiGenL3", "#phi of GenJetL3", 50, -M_PI, M_PI );
00597
00598 h_jetEt1 = TH1F( "jetEt1", "Total Jet Et", 100, 0, 3000 );
00599 h_jetEt2 = TH1F( "jetEt2", "Total Jet Et", 100, 0, 3000 );
00600 h_jetEt3 = TH1F( "jetEt3", "Total Jet Et", 100, 0, 3000 );
00601
00602 h_jet1Pt1 = TH1F( "jet1Pt1", "Jet Pt", 100, 0, 3000 );
00603 h_jet2Pt1 = TH1F( "jet2Pt1", "Jet Pt", 100, 0, 3000 );
00604 h_jet3Pt1 = TH1F( "jet3Pt1", "Jet Pt", 100, 0, 3000 );
00605 h_jet4Pt1 = TH1F( "jet4Pt1", "Jet Pt", 100, 0, 3000 );
00606 h_jet5Pt1 = TH1F( "jet5Pt1", "Jet Pt", 100, 0, 3000 );
00607 h_jet6Pt1 = TH1F( "jet6Pt1", "Jet Pt", 100, 0, 3000 );
00608 h_jet7Pt1 = TH1F( "jet7Pt1", "Jet Pt", 100, 0, 3000 );
00609
00610 h_jet1Pt2 = TH1F( "jet1Pt2", "Jet Pt", 100, 0, 3000 );
00611 h_jet2Pt2 = TH1F( "jet2Pt2", "Jet Pt", 100, 0, 3000 );
00612 h_jet3Pt2 = TH1F( "jet3Pt2", "Jet Pt", 100, 0, 3000 );
00613 h_jet4Pt2 = TH1F( "jet4Pt2", "Jet Pt", 100, 0, 3000 );
00614 h_jet5Pt2 = TH1F( "jet5Pt2", "Jet Pt", 100, 0, 3000 );
00615 h_jet6Pt2 = TH1F( "jet6Pt2", "Jet Pt", 100, 0, 3000 );
00616 h_jet7Pt2 = TH1F( "jet7Pt2", "Jet Pt", 100, 0, 3000 );
00617
00618 h_jet1Pt3 = TH1F( "jet1Pt3", "Jet Pt", 100, 0, 3000 );
00619 h_jet2Pt3 = TH1F( "jet2Pt3", "Jet Pt", 100, 0, 3000 );
00620 h_jet3Pt3 = TH1F( "jet3Pt3", "Jet Pt", 100, 0, 3000 );
00621 h_jet4Pt3 = TH1F( "jet4Pt3", "Jet Pt", 100, 0, 3000 );
00622 h_jet5Pt3 = TH1F( "jet5Pt3", "Jet Pt", 100, 0, 3000 );
00623 h_jet6Pt3 = TH1F( "jet6Pt3", "Jet Pt", 100, 0, 3000 );
00624 h_jet7Pt3 = TH1F( "jet7Pt3", "Jet Pt", 100, 0, 3000 );
00625
00626 h_jet1Pt4 = TH1F( "jet1Pt4", "Jet Pt", 100, 0, 3000 );
00627 h_jet2Pt4 = TH1F( "jet2Pt4", "Jet Pt", 100, 0, 3000 );
00628 h_jet3Pt4 = TH1F( "jet3Pt4", "Jet Pt", 100, 0, 3000 );
00629 h_jet4Pt4 = TH1F( "jet4Pt4", "Jet Pt", 100, 0, 3000 );
00630 h_jet5Pt4 = TH1F( "jet5Pt4", "Jet Pt", 100, 0, 3000 );
00631 h_jet6Pt4 = TH1F( "jet6Pt4", "Jet Pt", 100, 0, 3000 );
00632 h_jet7Pt4 = TH1F( "jet7Pt4", "Jet Pt", 100, 0, 3000 );
00633
00634
00635 h_totMissEt1 = TH1F( "totMissEt1", "Total Unclustered Et", 100, 0, 500 );
00636 h_totMissEt2 = TH1F( "totMissEt2", "Total Unclustered Et", 100, 0, 500 );
00637 h_totMissEt3 = TH1F( "totMissEt3", "Total Unclustered Et", 100, 0, 500 );
00638
00639 h_missEt1 = TH1F( "missEt1", "Unclustered Et", 100, 0, 50 );
00640 h_missEt2 = TH1F( "missEt2", "Unclustered Et", 100, 0, 50 );
00641 h_missEt3 = TH1F( "missEt3", "Unclustered Et", 100, 0, 50 );
00642
00643 h_missEt1s = TH1F( "missEt1s", "Unclustered Et", 100, 0, 2 );
00644 h_missEt2s = TH1F( "missEt2s", "Unclustered Et", 100, 0, 2 );
00645 h_missEt3s = TH1F( "missEt3s", "Unclustered Et", 100, 0, 2 );
00646
00647 ParMatch1 = TH1F( "ParMatch1", "Number of Matched Jets 1", 10, 0, 10 );
00648 ParMatch2 = TH1F( "ParMatch2", "Number of Matched Jets 2", 10, 0, 10 );
00649 ParMatch3 = TH1F( "ParMatch3", "Number of Matched Jets 3", 10, 0, 10 );
00650
00651 }
00652
00653
00654 void myFastSimVal::analyze( const Event& evt, const EventSetup& es ) {
00655
00656 int EtaOk10, EtaOk13, EtaOk40;
00657
00658 double ZpM, ZpMG, ZpMM;
00659 double LeadMass1, LeadMass2, LeadMass3, LeadMass4;
00660 double LeadMassP1, LeadMassP2, LeadMassP3;
00661
00662
00663 float minJetPt = 30.;
00664 float minJetPt10 = 10.;
00665 int jetInd, allJetInd;
00666 int usedInd = -1;
00667
00668 double matchedDelR = 0.3;
00669
00670 ZpMG = 0;
00671 LeadMass1 = -1;
00672 LeadMass2 = -1;
00673 LeadMass3 = -1;
00674
00675 math::XYZTLorentzVector p4tmp[2], p4cortmp[2];
00676 nEvent++;
00677
00678
00679
00680
00681
00682 Handle<CaloJetCollection> caloJets1;
00683 evt.getByLabel( CaloJetAlgorithm1, caloJets1 );
00684
00685
00686 for (int istep = 0; istep < 100; ++istep) {
00687 int njet = 0;
00688 float ptStep = (istep * (5000./100.));
00689 for ( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
00690 if ( cal->pt() > ptStep ) njet++;
00691 }
00692
00693 hf_nJet1.Fill( ptStep, njet );
00694 }
00695
00696
00697 for (int istep = 0; istep < 100; ++istep) {
00698 int njet = 0;
00699 float ptStep = (istep * (200./100.));
00700 for ( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
00701 if ( cal->pt() > ptStep ) njet++;
00702 }
00703
00704 hf_nJet1s.Fill( ptStep, njet );
00705 }
00706
00707
00708 for (int istep = 0; istep < 100; ++istep) {
00709 int njet = 0;
00710 float ptStep = (istep * (3000./100.));
00711 for ( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
00712 if ( cal->pt() > ptStep ) njet++;
00713 }
00714
00715 hf_nJet11.Fill( ptStep, njet );
00716 }
00717
00718
00719
00720 jetInd = 0;
00721 allJetInd = 0;
00722 EtaOk10 = 0;
00723 EtaOk13 = 0;
00724 EtaOk40 = 0;
00725
00726
00727
00728
00729 double highestPt;
00730 double nextPt;
00731
00732 highestPt = 0.0;
00733 nextPt = 0.0;
00734
00735
00736 for( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
00737
00738
00739 double scale = 1.0;
00740 double corPt = scale*cal->pt();
00741
00742
00743
00744 if (corPt>highestPt) {
00745 nextPt = highestPt;
00746 p4cortmp[1] = p4cortmp[0];
00747 highestPt = corPt;
00748 p4cortmp[0] = scale*cal->p4();
00749 } else if (corPt>nextPt) {
00750 nextPt = corPt;
00751 p4cortmp[1] = scale*cal->p4();
00752 }
00753
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763 allJetInd++;
00764 if (allJetInd == 1) {
00765 h_jet1Pt1.Fill( cal->pt() );
00766 p4tmp[0] = cal->p4();
00767 if ( fabs(cal->eta()) < 1.0) EtaOk10++;
00768 if ( fabs(cal->eta()) < 1.3) EtaOk13++;
00769 if ( fabs(cal->eta()) < 4.0) EtaOk40++;
00770 }
00771 if (allJetInd == 2) {
00772 h_jet2Pt1.Fill( cal->pt() );
00773 p4tmp[1] = cal->p4();
00774 if ( fabs(cal->eta()) < 1.0) EtaOk10++;
00775 if ( fabs(cal->eta()) < 1.3) EtaOk13++;
00776 if ( fabs(cal->eta()) < 4.0) EtaOk40++;
00777 }
00778 if ( (allJetInd == 1) || (allJetInd == 2) ) {
00779
00780 h_ptCalL1.Fill( cal->pt() );
00781 h_ptCalL12.Fill( cal->pt() );
00782 h_ptCalL13.Fill( cal->pt() );
00783
00784 h_etaCalL1.Fill( cal->eta() );
00785 h_phiCalL1.Fill( cal->phi() );
00786 }
00787
00788 if (allJetInd == 3) h_jet3Pt1.Fill( cal->pt() );
00789 if (allJetInd == 4) h_jet4Pt1.Fill( cal->pt() );
00790 if (allJetInd == 5) h_jet5Pt1.Fill( cal->pt() );
00791 if (allJetInd == 6) h_jet6Pt1.Fill( cal->pt() );
00792 if (allJetInd == 7) h_jet7Pt1.Fill( cal->pt() );
00793
00794 if ( fabs(cal->eta()) < 1.3) {
00795 h_lowPtCal11.Fill( cal->pt() );
00796 if ( cal->pt() > 10.) {
00797 h_lowPtCal1c11.Fill( cal->pt() );
00798 }
00799 }
00800 if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
00801 h_lowPtCal12.Fill( cal->pt() );
00802 if ( cal->pt() > 10.) {
00803 h_lowPtCal1c12.Fill( cal->pt() );
00804 }
00805 }
00806 if ( fabs(cal->eta()) > 3.0) {
00807 h_lowPtCal13.Fill( cal->pt() );
00808 if ( cal->pt() > 10.) {
00809 h_lowPtCal1c13.Fill( cal->pt() );
00810 }
00811 }
00812
00813
00814
00815 if ( cal->pt() > minJetPt) {
00816
00817 h_ptCal1.Fill( cal->pt() );
00818 h_ptCal12.Fill( cal->pt() );
00819 h_ptCal13.Fill( cal->pt() );
00820
00821 h_etaCal1.Fill( cal->eta() );
00822 h_phiCal1.Fill( cal->phi() );
00823 jetInd++;
00824 }
00825 }
00826
00827
00828 h_nCalJets1.Fill( jetInd );
00829 if (jetInd > 1) {
00830 LeadMass1 = (p4tmp[0]+p4tmp[1]).mass();
00831 dijetMass1.Fill( LeadMass1 );
00832 dijetMass12.Fill( LeadMass1 );
00833 dijetMass13.Fill( LeadMass1 );
00834 if (EtaOk10 == 2) {
00835 dijetMass101.Fill( LeadMass1 );
00836 dijetMass102.Fill( LeadMass1 );
00837 dijetMass103.Fill( LeadMass1 );
00838 dijetMass_700_101.Fill( LeadMass1 );
00839 dijetMass_2000_101.Fill( LeadMass1 );
00840 dijetMass_5000_101.Fill( LeadMass1 );
00841 }
00842 if (EtaOk13 == 2) {
00843 dijetMass131.Fill( LeadMass1 );
00844 dijetMass132.Fill( LeadMass1 );
00845 dijetMass133.Fill( LeadMass1 );
00846 dijetMass_700_131.Fill( LeadMass1 );
00847 dijetMass_2000_131.Fill( LeadMass1 );
00848 dijetMass_5000_131.Fill( LeadMass1 );
00849 }
00850 if (EtaOk40 == 2) {
00851 dijetMass401.Fill( LeadMass1 );
00852 dijetMass402.Fill( LeadMass1 );
00853 dijetMass403.Fill( LeadMass1 );
00854 dijetMass_700_401.Fill( LeadMass1 );
00855 dijetMass_2000_401.Fill( LeadMass1 );
00856 dijetMass_5000_401.Fill( LeadMass1 );
00857 }
00858
00859 LeadMass1 = (p4cortmp[0]+p4cortmp[1]).mass();
00860
00861
00862
00863
00864
00865
00866
00867
00868
00869
00870
00871
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894
00895
00896
00897
00898
00899
00900
00901
00902
00903
00904 }
00905
00906
00907
00908
00909
00910 Handle<CaloJetCollection> caloJets2;
00911 evt.getByLabel( CaloJetAlgorithm2, caloJets2 );
00912
00913
00914 for (int istep = 0; istep < 100; ++istep) {
00915 int njet = 0;
00916 float ptStep = (istep * (5000./100.));
00917
00918 for ( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++ cal )
00919 if ( cal->pt() > ptStep ) njet++;
00920
00921 hf_nJet2.Fill( ptStep, njet );
00922 }
00923
00924 for (int istep = 0; istep < 100; ++istep) {
00925 int njet = 0;
00926 float ptStep = (istep * (200./100.));
00927
00928 for ( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++ cal )
00929 if ( cal->pt() > ptStep ) njet++;
00930
00931 hf_nJet2s.Fill( ptStep, njet );
00932 }
00933
00934
00935 for (int istep = 0; istep < 100; ++istep) {
00936 int njet = 0;
00937 float ptStep = (istep * (3000./100.));
00938
00939 for ( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++ cal )
00940 if ( cal->pt() > ptStep ) njet++;
00941
00942 hf_nJet21.Fill( ptStep, njet );
00943 }
00944
00945
00946
00947
00948
00949
00950 jetInd = 0;
00951 allJetInd = 0;
00952 for( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++cal ) {
00953
00954 allJetInd++;
00955 if (allJetInd == 1) {
00956 h_jet1Pt2.Fill( cal->pt() );
00957 p4tmp[0] = cal->p4();
00958 }
00959 if (allJetInd == 2) {
00960 h_jet2Pt2.Fill( cal->pt() );
00961 p4tmp[1] = cal->p4();
00962 }
00963 if ( (allJetInd == 1) || (allJetInd == 2) ) {
00964 h_ptCalL2.Fill( cal->pt() );
00965 h_ptCalL22.Fill( cal->pt() );
00966 h_ptCalL23.Fill( cal->pt() );
00967
00968 h_etaCalL2.Fill( cal->eta() );
00969 h_phiCalL2.Fill( cal->phi() );
00970 }
00971 if (allJetInd == 3) h_jet3Pt2.Fill( cal->pt() );
00972 if (allJetInd == 4) h_jet4Pt2.Fill( cal->pt() );
00973 if (allJetInd == 5) h_jet5Pt2.Fill( cal->pt() );
00974 if (allJetInd == 6) h_jet6Pt2.Fill( cal->pt() );
00975 if (allJetInd == 7) h_jet7Pt2.Fill( cal->pt() );
00976
00977 if ( fabs(cal->eta()) < 1.3) {
00978 h_lowPtCal21.Fill( cal->pt() );
00979 if ( cal->pt() > 10.) {
00980 h_lowPtCal2c11.Fill( cal->pt() );
00981 }
00982 }
00983 if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
00984 h_lowPtCal22.Fill( cal->pt() );
00985 if ( cal->pt() > 10.) {
00986 h_lowPtCal2c12.Fill( cal->pt() );
00987 }
00988 }
00989 if ( fabs(cal->eta()) > 3.0) {
00990 h_lowPtCal23.Fill( cal->pt() );
00991 if ( cal->pt() > 10.) {
00992 h_lowPtCal2c13.Fill( cal->pt() );
00993 }
00994 }
00995
00996
00997 if ( cal->pt() > minJetPt) {
00998 h_ptCal2.Fill( cal->pt() );
00999 h_ptCal22.Fill( cal->pt() );
01000 h_ptCal23.Fill( cal->pt() );
01001
01002 h_etaCal2.Fill( cal->eta() );
01003 h_phiCal2.Fill( cal->phi() );
01004 jetInd++;
01005 }
01006 }
01007
01008 h_nCalJets2.Fill( jetInd );
01009 if (jetInd > 1) {
01010 LeadMass2 = (p4tmp[0]+p4tmp[1]).mass();
01011 dijetMass2.Fill( LeadMass2 );
01012 dijetMass22.Fill( LeadMass2 );
01013 dijetMass23.Fill( LeadMass2 );
01014
01015
01016 dijetMassCor1.Fill( LeadMass2 );
01017 dijetMassCor_700_1.Fill( LeadMass2 );
01018 dijetMassCor_2000_1.Fill( LeadMass2 );
01019 dijetMassCor_5000_1.Fill( LeadMass2 );
01020
01021 if (EtaOk10 == 2) {
01022 dijetMassCor101.Fill( LeadMass2 );
01023 dijetMassCor_700_101.Fill( LeadMass2 );
01024 dijetMassCor_2000_101.Fill( LeadMass2 );
01025 dijetMassCor_5000_101.Fill( LeadMass2 );
01026 }
01027 if (EtaOk13 == 2) {
01028 dijetMassCor131.Fill( LeadMass2 );
01029 dijetMassCor_700_131.Fill( LeadMass2 );
01030 dijetMassCor_2000_131.Fill( LeadMass2 );
01031 dijetMassCor_5000_131.Fill( LeadMass2 );
01032 }
01033 if (EtaOk40 == 2) {
01034 dijetMassCor401.Fill( LeadMass2 );
01035 dijetMassCor_700_401.Fill( LeadMass2 );
01036 dijetMassCor_2000_401.Fill( LeadMass2 );
01037 dijetMassCor_5000_401.Fill( LeadMass2 );
01038 }
01039
01040
01041 }
01042
01043
01044
01045
01046
01047
01048 Handle<CaloJetCollection> caloJets3;
01049 evt.getByLabel( CaloJetAlgorithm3, caloJets3 );
01050
01051
01052 jetInd = 0;
01053 allJetInd = 0;
01054
01055
01056 for (int istep = 0; istep < 100; ++istep) {
01057 int njet = 0;
01058 float ptStep = (istep * (5000./100.));
01059
01060 for ( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal )
01061 if ( cal->pt() > ptStep ) njet++;
01062
01063
01064 hf_nJet3.Fill( ptStep, njet );
01065 }
01066
01067 for (int istep = 0; istep < 100; ++istep) {
01068 int njet = 0;
01069 float ptStep = (istep * (200./100.));
01070
01071 for ( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal )
01072 if ( cal->pt() > ptStep ) njet++;
01073
01074 hf_nJet3s.Fill( ptStep, njet );
01075 }
01076
01077 for (int istep = 0; istep < 100; ++istep) {
01078 int njet = 0;
01079 float ptStep = (istep * (3000./100.));
01080
01081 for ( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal )
01082 if ( cal->pt() > ptStep ) njet++;
01083
01084 hf_nJet31.Fill( ptStep, njet );
01085 }
01086
01087
01088 for( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal ) {
01089
01090 allJetInd++;
01091 if (allJetInd == 1) {
01092 h_jet1Pt3.Fill( cal->pt() );
01093 p4tmp[0] = cal->p4();
01094 }
01095 if (allJetInd == 2) {
01096 h_jet2Pt3.Fill( cal->pt() );
01097 p4tmp[1] = cal->p4();
01098 }
01099 if ( (allJetInd == 1) || (allJetInd == 2) ) {
01100 h_ptCalL3.Fill( cal->pt() );
01101 h_ptCalL32.Fill( cal->pt() );
01102 h_ptCalL33.Fill( cal->pt() );
01103
01104 h_etaCalL3.Fill( cal->eta() );
01105 h_phiCalL3.Fill( cal->phi() );
01106 }
01107 if (allJetInd == 3) h_jet3Pt3.Fill( cal->pt() );
01108 if (allJetInd == 4) h_jet4Pt3.Fill( cal->pt() );
01109 if (allJetInd == 5) h_jet5Pt3.Fill( cal->pt() );
01110 if (allJetInd == 6) h_jet6Pt3.Fill( cal->pt() );
01111 if (allJetInd == 7) h_jet7Pt3.Fill( cal->pt() );
01112
01113
01114 if ( fabs(cal->eta()) < 1.3) {
01115 h_lowPtCal31.Fill( cal->pt() );
01116 if ( cal->pt() > 10.) {
01117 h_lowPtCal3c11.Fill( cal->pt() );
01118 }
01119 }
01120 if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
01121 h_lowPtCal32.Fill( cal->pt() );
01122 if ( cal->pt() > 10.) {
01123 h_lowPtCal3c12.Fill( cal->pt() );
01124 }
01125 }
01126 if ( fabs(cal->eta()) > 3.0) {
01127 h_lowPtCal33.Fill( cal->pt() );
01128 if ( cal->pt() > 10.) {
01129 h_lowPtCal3c13.Fill( cal->pt() );
01130 }
01131 }
01132
01133
01134
01135 if ( cal->pt() > minJetPt) {
01136
01137 h_ptCal3.Fill( cal->pt() );
01138 h_ptCal32.Fill( cal->pt() );
01139 h_ptCal33.Fill( cal->pt() );
01140
01141 h_etaCal3.Fill( cal->eta() );
01142 h_phiCal3.Fill( cal->phi() );
01143 jetInd++;
01144 }
01145 }
01146
01147 h_nCalJets3.Fill( jetInd );
01148 if (jetInd > 1) {
01149 LeadMass3 = (p4tmp[0]+p4tmp[1]).mass();
01150 dijetMass3.Fill( LeadMass3 );
01151 dijetMass32.Fill( LeadMass3 );
01152 dijetMass33.Fill( LeadMass3 );
01153 }
01154
01155
01156
01157
01158
01159
01160
01161 Handle<CaloJetCollection> caloJets4;
01162 evt.getByLabel( CaloJetAlgorithm4, caloJets4 );
01163
01164
01165 jetInd = 0;
01166 allJetInd = 0;
01167
01168
01169 for (int istep = 0; istep < 100; ++istep) {
01170 int njet = 0;
01171 float ptStep = (istep * (5000./100.));
01172
01173 for ( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal )
01174 if ( cal->pt() > ptStep ) njet++;
01175
01176
01177 hf_nJet4.Fill( ptStep, njet );
01178 }
01179
01180 for (int istep = 0; istep < 100; ++istep) {
01181 int njet = 0;
01182 float ptStep = (istep * (200./100.));
01183
01184 for ( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal )
01185 if ( cal->pt() > ptStep ) njet++;
01186
01187 hf_nJet4s.Fill( ptStep, njet );
01188 }
01189
01190 for (int istep = 0; istep < 100; ++istep) {
01191 int njet = 0;
01192 float ptStep = (istep * (3000./100.));
01193
01194 for ( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal )
01195 if ( cal->pt() > ptStep ) njet++;
01196
01197 hf_nJet41.Fill( ptStep, njet );
01198 }
01199
01200
01201 for( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal ) {
01202
01203 allJetInd++;
01204 if (allJetInd == 1) {
01205 h_jet1Pt4.Fill( cal->pt() );
01206 p4tmp[0] = cal->p4();
01207 }
01208 if (allJetInd == 2) {
01209 h_jet2Pt4.Fill( cal->pt() );
01210 p4tmp[1] = cal->p4();
01211 }
01212 if ( (allJetInd == 1) || (allJetInd == 2) ) {
01213 h_ptCalL4.Fill( cal->pt() );
01214 h_ptCalL42.Fill( cal->pt() );
01215 h_ptCalL43.Fill( cal->pt() );
01216
01217 h_etaCalL4.Fill( cal->eta() );
01218 h_phiCalL4.Fill( cal->phi() );
01219 }
01220 if (allJetInd == 3) h_jet3Pt4.Fill( cal->pt() );
01221 if (allJetInd == 4) h_jet4Pt4.Fill( cal->pt() );
01222 if (allJetInd == 5) h_jet5Pt4.Fill( cal->pt() );
01223 if (allJetInd == 6) h_jet6Pt4.Fill( cal->pt() );
01224 if (allJetInd == 7) h_jet7Pt4.Fill( cal->pt() );
01225
01226
01227 if ( fabs(cal->eta()) < 1.3) {
01228 h_lowPtCal41.Fill( cal->pt() );
01229 if ( cal->pt() > 10.) {
01230 h_lowPtCal4c11.Fill( cal->pt() );
01231 }
01232 }
01233 if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
01234 h_lowPtCal42.Fill( cal->pt() );
01235 if ( cal->pt() > 10.) {
01236 h_lowPtCal4c12.Fill( cal->pt() );
01237 }
01238 }
01239 if ( fabs(cal->eta()) > 3.0) {
01240 h_lowPtCal43.Fill( cal->pt() );
01241 if ( cal->pt() > 10.) {
01242 h_lowPtCal4c13.Fill( cal->pt() );
01243 }
01244 }
01245
01246
01247 if ( cal->pt() > minJetPt) {
01248
01249 h_ptCal4.Fill( cal->pt() );
01250 h_ptCal42.Fill( cal->pt() );
01251 h_ptCal43.Fill( cal->pt() );
01252
01253 h_etaCal4.Fill( cal->eta() );
01254 h_phiCal4.Fill( cal->phi() );
01255 jetInd++;
01256 }
01257 }
01258
01259 h_nCalJets4.Fill( jetInd );
01260 if (jetInd > 1) {
01261 LeadMass4 = (p4tmp[0]+p4tmp[1]).mass();
01262 dijetMass4.Fill( LeadMass4 );
01263 dijetMass42.Fill( LeadMass4 );
01264 dijetMass43.Fill( LeadMass4 );
01265 }
01266
01267
01268
01269
01270
01271
01272
01273
01274 Handle<GenJetCollection> genJets1;
01275 evt.getByLabel( GenJetAlgorithm1, genJets1 );
01276
01277
01278
01279 jetInd = 0;
01280 allJetInd = 0;
01281 for( GenJetCollection::const_iterator gen = genJets1->begin(); gen != genJets1->end(); ++ gen ) {
01282 allJetInd++;
01283 if (allJetInd == 1) {
01284 p4tmp[0] = gen->p4();
01285 }
01286 if (allJetInd == 2) {
01287 p4tmp[1] = gen->p4();
01288 }
01289
01290 if ( (allJetInd == 1) || (allJetInd == 2) ) {
01291 h_ptGenL1.Fill( gen->pt() );
01292 h_ptGenL12.Fill( gen->pt() );
01293 h_ptGenL13.Fill( gen->pt() );
01294
01295 h_etaGenL1.Fill( gen->eta() );
01296 h_phiGenL1.Fill( gen->phi() );
01297 }
01298
01299 if ( gen->pt() > minJetPt) {
01300
01301 h_ptGen1.Fill( gen->pt() );
01302 h_ptGen12.Fill( gen->pt() );
01303 h_ptGen13.Fill( gen->pt() );
01304
01305 h_etaGen1.Fill( gen->eta() );
01306 h_phiGen1.Fill( gen->phi() );
01307 jetInd++;
01308 }
01309 }
01310
01311 LeadMassP1 = (p4tmp[0]+p4tmp[1]).mass();
01312 dijetMassP1.Fill( LeadMassP1 );
01313 if (EtaOk10 == 2) {
01314 dijetMassP101.Fill( LeadMassP1 );
01315 dijetMassP_700_101.Fill( LeadMassP1 );
01316 dijetMassP_2000_101.Fill( LeadMassP1 );
01317 dijetMassP_5000_101.Fill( LeadMassP1 );
01318 }
01319 if (EtaOk13 == 2) {
01320 dijetMassP131.Fill( LeadMassP1 );
01321 dijetMassP_700_131.Fill( LeadMassP1 );
01322 dijetMassP_2000_131.Fill( LeadMassP1 );
01323 dijetMassP_5000_131.Fill( LeadMassP1 );
01324
01325 }
01326 if (EtaOk40 == 2) {
01327 dijetMassP401.Fill( LeadMassP1 );
01328 dijetMassP_5000_401.Fill( LeadMassP1 );
01329 dijetMassP_5000_401.Fill( LeadMassP1 );
01330 dijetMassP_5000_401.Fill( LeadMassP1 );
01331 }
01332
01333
01334 h_nGenJets1.Fill( jetInd );
01335
01336
01337 Handle<GenJetCollection> genJets2;
01338 evt.getByLabel( GenJetAlgorithm2, genJets2 );
01339
01340
01341 jetInd = 0;
01342 allJetInd = 0;
01343 for( GenJetCollection::const_iterator gen = genJets2->begin(); gen != genJets2->end(); ++ gen ) {
01344 allJetInd++;
01345 if (allJetInd == 1) {
01346 p4tmp[0] = gen->p4();
01347 }
01348 if (allJetInd == 2) {
01349 p4tmp[1] = gen->p4();
01350 }
01351 if ( (allJetInd == 1) || (allJetInd == 2) ) {
01352 h_ptGenL2.Fill( gen->pt() );
01353 h_ptGenL22.Fill( gen->pt() );
01354 h_ptGenL23.Fill( gen->pt() );
01355
01356 h_etaGenL2.Fill( gen->eta() );
01357 h_phiGenL2.Fill( gen->phi() );
01358 }
01359
01360 if ( gen->pt() > minJetPt) {
01361
01362 h_ptGen2.Fill( gen->pt() );
01363 h_ptGen22.Fill( gen->pt() );
01364 h_ptGen23.Fill( gen->pt() );
01365
01366 h_etaGen2.Fill( gen->eta() );
01367 h_phiGen2.Fill( gen->phi() );
01368 jetInd++;
01369 }
01370 }
01371
01372 LeadMassP2 = (p4tmp[0]+p4tmp[1]).mass();
01373 dijetMassP2.Fill( LeadMassP2 );
01374
01375
01376
01377 h_nGenJets2.Fill( jetInd );
01378
01379
01380 Handle<GenJetCollection> genJets3;
01381 evt.getByLabel( GenJetAlgorithm3, genJets3 );
01382
01383
01384 jetInd = 0;
01385 allJetInd = 0;
01386 for( GenJetCollection::const_iterator gen = genJets3->begin(); gen != genJets3->end(); ++ gen ) {
01387 allJetInd++;
01388 if (allJetInd == 1) {
01389 p4tmp[0] = gen->p4();
01390 }
01391 if (allJetInd == 2) {
01392 p4tmp[1] = gen->p4();
01393 }
01394 if ( (allJetInd == 1) || (allJetInd == 2) ) {
01395 h_ptGenL3.Fill( gen->pt() );
01396 h_ptGenL32.Fill( gen->pt() );
01397 h_ptGenL33.Fill( gen->pt() );
01398
01399 h_etaGenL3.Fill( gen->eta() );
01400 h_phiGenL3.Fill( gen->phi() );
01401 }
01402
01403 if ( gen->pt() > minJetPt) {
01404
01405 h_ptGen3.Fill( gen->pt() );
01406 h_ptGen32.Fill( gen->pt() );
01407 h_ptGen33.Fill( gen->pt() );
01408
01409 h_etaGen3.Fill( gen->eta() );
01410 h_phiGen3.Fill( gen->phi() );
01411 jetInd++;
01412 }
01413 }
01414
01415 LeadMassP3 = (p4tmp[0]+p4tmp[1]).mass();
01416 dijetMassP3.Fill( LeadMassP3 );
01417
01418
01419
01420 h_nGenJets3.Fill( jetInd );
01421
01422
01423
01424
01425
01426 Handle<GenJetCollection> genJets;
01427 Handle<CaloJetCollection> caloJets;
01428
01429
01430
01431 evt.getByLabel( GenJetAlgorithm1, genJets );
01432 evt.getByLabel( CaloJetAlgorithm1, caloJets );
01433
01434
01435 int maxJets = MAXJETS;
01436
01437 jetInd = 0;
01438 double dRmin[MAXJETS];
01439 math::XYZTLorentzVector p4gen[MAXJETS], p4cal[MAXJETS],
01440 p4par[MAXJETS], p4Zp[MAXJETS], p4part[MAXJETS];
01441
01442 int used[MAXJETS];
01443 int nj;
01444
01445 for( int i=0; i<maxJets; ++i ) used[i] = 0;
01446
01447
01448
01449
01450
01451 for( GenJetCollection::const_iterator gen = genJets->begin();
01452 gen != genJets->end() && jetInd<maxJets; ++ gen ) {
01453
01454 p4gen[jetInd] = gen->p4();
01455 dRmin[jetInd] = 1000.0;
01456
01457 nj = 0;
01458 usedInd = -1;
01459
01460 for( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
01461
01462 double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
01463
01464 if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
01465 dRmin[jetInd] = delR;
01466 p4cal[jetInd] = cal->p4();
01467 usedInd = nj;
01468 }
01469
01470 nj++;
01471 }
01472
01473 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01474 matchedAllPt11.Fill(p4gen[jetInd].pt());
01475 }
01476 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01477 matchedAllPt12.Fill(p4gen[jetInd].pt());
01478 }
01479 if (fabs(p4gen[jetInd].eta()) > 3.) {
01480 matchedAllPt13.Fill(p4gen[jetInd].pt());
01481 }
01482
01483 if (usedInd != -1) {
01484
01485 used[usedInd] = 1;
01486
01487 if (p4cal[jetInd].pt() > minJetPt10)
01488 hf_PtResponse1.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
01489
01490 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01491 matchedPt11.Fill(p4gen[jetInd].pt());
01492 }
01493 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01494 matchedPt12.Fill(p4gen[jetInd].pt());
01495 }
01496 if (fabs(p4gen[jetInd].eta()) > 3.) {
01497 matchedPt13.Fill(p4gen[jetInd].pt());
01498 }
01499
01500
01501
01502
01503
01504
01505
01506
01507
01508
01509
01510
01511 double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
01512 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01513 if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
01514 dPt20Frac1.Fill(dpt/p4gen[jetInd].pt());
01515 }
01516 if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
01517 dPt40Frac1.Fill(dpt/p4gen[jetInd].pt());
01518 }
01519 if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
01520 dPt80Frac1.Fill(dpt/p4gen[jetInd].pt());
01521 }
01522 if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
01523 dPt100Frac1.Fill(dpt/p4gen[jetInd].pt());
01524 }
01525 }
01526 if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
01527
01528 dR1.Fill(dRmin[jetInd]);
01529 double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
01530 dPhi1.Fill(dphi);
01531 double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
01532 dEta1.Fill(deta);
01533 dPt1.Fill(dpt);
01534 dPtFrac1.Fill(dpt/p4gen[jetInd].pt());
01535
01536 if ( ( (dpt/p4gen[jetInd].pt()) < -0.5 ) && ( fabs(dpt) > 90. ) ) {
01537
01538 cout << " deltaR min = " << dRmin[jetInd]
01539 << " Ind = " << jetInd << " / " << usedInd << " / " << used[nj]
01540 << " Del pt / frac = " << dpt
01541 << " / " << dpt/p4gen[jetInd].pt()
01542 << " cal/gen pt = " << p4cal[jetInd].pt()
01543 << " / " << p4gen[jetInd].pt()
01544 << " cal/gen eta = " << p4cal[jetInd].eta()
01545 << " / " << p4gen[jetInd].eta()
01546 << " cal/gen phi = " << p4cal[jetInd].phi()
01547 << " / " << p4gen[jetInd].phi()
01548 << endl;
01549 }
01550
01551 }
01552
01553 jetInd++;
01554
01555 }
01556
01557 }
01558
01559
01560
01561
01562
01563
01564
01565
01566
01567
01568
01569 evt.getByLabel( GenJetAlgorithm2, genJets );
01570 evt.getByLabel( CaloJetAlgorithm2, caloJets );
01571
01572
01573 jetInd = 0;
01574
01575
01576
01577 for( int i=0; i<maxJets; ++i ) used[i] = 0;
01578 for( GenJetCollection::const_iterator gen = genJets->begin();
01579 gen != genJets->end() && jetInd<maxJets; ++ gen ) {
01580 p4gen[jetInd] = gen->p4();
01581 dRmin[jetInd] = 1000.0;
01582
01583 nj = 0;
01584 usedInd = -1;
01585
01586 for( CaloJetCollection::const_iterator cal = caloJets->begin();
01587 cal != caloJets->end(); ++ cal ) {
01588 double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
01589
01590 if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
01591 dRmin[jetInd] = delR;
01592 p4cal[jetInd] = cal->p4();
01593 usedInd = nj;
01594 }
01595 nj++;
01596 }
01597
01598 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01599 matchedAllPt21.Fill(p4gen[jetInd].pt());
01600 }
01601 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01602 matchedAllPt22.Fill(p4gen[jetInd].pt());
01603 }
01604 if (fabs(p4gen[jetInd].eta()) > 3.) {
01605 matchedAllPt23.Fill(p4gen[jetInd].pt());
01606 }
01607
01608
01609 if (usedInd != -1) {
01610
01611 used[usedInd] = 1;
01612
01613 if (p4cal[jetInd].pt() > minJetPt10)
01614 hf_PtResponse2.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
01615
01616 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01617 matchedPt21.Fill(p4gen[jetInd].pt());
01618 }
01619 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01620 matchedPt22.Fill(p4gen[jetInd].pt());
01621 }
01622 if (fabs(p4gen[jetInd].eta()) > 3.) {
01623 matchedPt23.Fill(p4gen[jetInd].pt());
01624 }
01625
01626
01627
01628
01629
01630
01631
01632
01633
01634
01635
01636
01637
01638 double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
01639 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01640 if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
01641 dPt20Frac2.Fill(dpt/p4gen[jetInd].pt());
01642 }
01643 if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
01644 dPt40Frac2.Fill(dpt/p4gen[jetInd].pt());
01645 }
01646 if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
01647 dPt80Frac2.Fill(dpt/p4gen[jetInd].pt());
01648 }
01649 if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
01650 dPt100Frac2.Fill(dpt/p4gen[jetInd].pt());
01651 }
01652 }
01653 if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
01654
01655 dR2.Fill(dRmin[jetInd]);
01656 double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
01657 dPhi2.Fill(dphi);
01658 double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
01659 dEta2.Fill(deta);
01660 dPt2.Fill(dpt);
01661 dPtFrac2.Fill(dpt/p4gen[jetInd].pt());
01662
01663 }
01664
01665 jetInd++;
01666 }
01667
01668 }
01669
01670
01671
01672
01673
01674
01675
01676
01677
01678 evt.getByLabel( GenJetAlgorithm3, genJets );
01679 evt.getByLabel( CaloJetAlgorithm3, caloJets );
01680
01681
01682 jetInd = 0;
01683
01684
01685
01686 for( int i=0; i<maxJets; ++i ) used[i] = 0;
01687 for( GenJetCollection::const_iterator gen = genJets->begin();
01688 gen != genJets->end() && jetInd<maxJets; ++ gen ) {
01689 p4gen[jetInd] = gen->p4();
01690 dRmin[jetInd] = 1000.0;
01691
01692 nj = 0;
01693 usedInd = -1;
01694
01695 for( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
01696 double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
01697
01698 if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
01699 dRmin[jetInd] = delR;
01700 p4cal[jetInd] = cal->p4();
01701 usedInd = nj;
01702 }
01703 nj++;
01704 }
01705
01706 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01707 matchedAllPt31.Fill(p4gen[jetInd].pt());
01708 }
01709 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01710 matchedAllPt32.Fill(p4gen[jetInd].pt());
01711 }
01712 if (fabs(p4gen[jetInd].eta()) > 3.) {
01713 matchedAllPt33.Fill(p4gen[jetInd].pt());
01714 }
01715
01716
01717 if (usedInd != -1) {
01718 used[usedInd] = 1;
01719
01720 if (p4cal[jetInd].pt() > minJetPt10)
01721 hf_PtResponse3.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
01722
01723 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01724 matchedPt31.Fill(p4gen[jetInd].pt());
01725 }
01726 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01727 matchedPt32.Fill(p4gen[jetInd].pt());
01728 }
01729 if (fabs(p4gen[jetInd].eta()) > 3.) {
01730 matchedPt33.Fill(p4gen[jetInd].pt());
01731 }
01732
01733
01734
01735
01736
01737
01738
01739
01740
01741
01742
01743
01744 double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
01745 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01746 if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
01747 dPt20Frac3.Fill(dpt/p4gen[jetInd].pt());
01748 }
01749 if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
01750 dPt40Frac3.Fill(dpt/p4gen[jetInd].pt());
01751 }
01752 if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
01753 dPt80Frac3.Fill(dpt/p4gen[jetInd].pt());
01754 }
01755 if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
01756 dPt100Frac3.Fill(dpt/p4gen[jetInd].pt());
01757 }
01758 }
01759
01760 if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
01761
01762 dR3.Fill(dRmin[jetInd]);
01763 double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
01764 dPhi3.Fill(dphi);
01765 double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
01766 dEta3.Fill(deta);
01767 dPt3.Fill(dpt);
01768 dPtFrac3.Fill(dpt/p4gen[jetInd].pt());
01769
01770
01771 }
01772
01773 jetInd++;
01774 }
01775 }
01776
01777
01778
01779
01780 evt.getByLabel( GenJetAlgorithm4, genJets );
01781 evt.getByLabel( CaloJetAlgorithm4, caloJets );
01782
01783
01784 jetInd = 0;
01785
01786
01787
01788 for( int i=0; i<maxJets; ++i ) used[i] = 0;
01789 for( GenJetCollection::const_iterator gen = genJets->begin();
01790 gen != genJets->end() && jetInd<maxJets; ++ gen ) {
01791 p4gen[jetInd] = gen->p4();
01792 dRmin[jetInd] = 1000.0;
01793
01794 nj = 0;
01795 usedInd = -1;
01796
01797 for( CaloJetCollection::const_iterator cal = caloJets->begin();
01798 cal != caloJets->end(); ++ cal ) {
01799 double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
01800
01801 if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
01802 dRmin[jetInd] = delR;
01803 p4cal[jetInd] = cal->p4();
01804 usedInd = nj;
01805 }
01806 nj++;
01807 }
01808
01809 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01810 matchedAllPt41.Fill(p4gen[jetInd].pt());
01811 }
01812 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01813 matchedAllPt42.Fill(p4gen[jetInd].pt());
01814 }
01815 if (fabs(p4gen[jetInd].eta()) > 3.) {
01816 matchedAllPt43.Fill(p4gen[jetInd].pt());
01817 }
01818
01819
01820 if (usedInd != -1) {
01821
01822 used[usedInd] = 1;
01823
01824 if (p4cal[jetInd].pt() > minJetPt10)
01825 hf_PtResponse4.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
01826
01827 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01828 matchedPt41.Fill(p4gen[jetInd].pt());
01829 }
01830 if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
01831 matchedPt42.Fill(p4gen[jetInd].pt());
01832 }
01833 if (fabs(p4gen[jetInd].eta()) > 3.) {
01834 matchedPt43.Fill(p4gen[jetInd].pt());
01835 }
01836
01837
01838
01839
01840
01841
01842
01843
01844
01845
01846
01847
01848
01849
01850 double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
01851 if (fabs(p4gen[jetInd].eta()) < 1.3) {
01852 if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
01853 dPt20Frac4.Fill(dpt/p4gen[jetInd].pt());
01854 }
01855 if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
01856 dPt40Frac4.Fill(dpt/p4gen[jetInd].pt());
01857 }
01858 if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
01859 dPt80Frac4.Fill(dpt/p4gen[jetInd].pt());
01860 }
01861 if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
01862 dPt100Frac4.Fill(dpt/p4gen[jetInd].pt());
01863 }
01864 }
01865
01866 if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
01867
01868 dR4.Fill(dRmin[jetInd]);
01869 double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
01870 dPhi4.Fill(dphi);
01871 double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
01872 dEta4.Fill(deta);
01873 dPt4.Fill(dpt);
01874 dPtFrac4.Fill(dpt/p4gen[jetInd].pt());
01875
01876 }
01877
01878 jetInd++;
01879 }
01880
01881 }
01882
01883
01884
01885
01886
01887
01888 Handle<CaloJetCollection> calo1Jets;
01889 Handle<CaloJetCollection> calo2Jets;
01890 Handle<CaloJetCollection> calo3Jets;
01891
01892 evt.getByLabel( CaloJetAlgorithm1, calo1Jets );
01893 evt.getByLabel( CaloJetAlgorithm2, calo2Jets );
01894 evt.getByLabel( CaloJetAlgorithm3, calo3Jets );
01895
01896 jetInd = 0;
01897
01898 for( int i=0; i<maxJets; ++i ) used[i] = 0;
01899 for( CaloJetCollection::const_iterator cal1 = calo1Jets->begin();
01900 cal1 != calo1Jets->end() && jetInd<maxJets; ++cal1 ) {
01901
01902 p4gen[jetInd] = cal1->p4();
01903 dRmin[jetInd] = 1000.0;
01904
01905 nj = 0;
01906 for( CaloJetCollection::const_iterator cal2 = calo2Jets->begin(); cal2 != calo2Jets->end(); ++cal2 ) {
01907
01908 double delR = deltaR( cal1->eta(), cal1->phi(), cal2->eta(), cal2->phi() );
01909 if ( (delR<dRmin[jetInd]) && (used[nj] == 0) ) {
01910 dRmin[jetInd] = delR;
01911 p4cal[jetInd] = cal2->p4();
01912 usedInd = nj;
01913 }
01914 nj++;
01915 }
01916 used[usedInd] = 1;
01917
01918 if (p4gen[jetInd].pt() > minJetPt) {
01919 dR12.Fill(dRmin[jetInd]);
01920 double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
01921 dPhi12.Fill(dphi);
01922 double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
01923 dEta12.Fill(deta);
01924 double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
01925 dPt12.Fill(dpt);
01926 }
01927
01928 jetInd++;
01929 }
01930
01931
01932
01933
01934
01935 Handle<CandidateCollection> genParticles;
01936 evt.getByLabel("genParticleCandidates",genParticles);
01937
01938
01939
01940
01941
01942 int nPart = 0;
01943 for (size_t i =0;i< genParticles->size(); i++) {
01944
01945 const Candidate &p = (*genParticles)[i];
01946
01947
01948 int id = p.pdgId();
01949
01950 if (id == 32) {
01951
01952 if (p.numberOfDaughters() != 0) {
01953
01954
01955
01956
01957
01958
01959 ZpMG = p.mass();
01960 ZpMassGen.Fill( ZpMG );
01961 if (EtaOk10 == 2) {
01962 ZpMassGen10.Fill( ZpMG );
01963 ZpMassGen_700_10.Fill( ZpMG );
01964 ZpMassGen_2000_10.Fill( ZpMG );
01965 ZpMassGen_5000_10.Fill( ZpMG );
01966 }
01967 if (EtaOk13 == 2) {
01968 ZpMassGen13.Fill( ZpMG );
01969 ZpMassGen_700_13.Fill( ZpMG );
01970 ZpMassGen_2000_13.Fill( ZpMG );
01971 ZpMassGen_5000_13.Fill( ZpMG );
01972 }
01973 if (EtaOk40 == 2) {
01974 ZpMassGen40.Fill( ZpMG );
01975 ZpMassGen_700_40.Fill( ZpMG );
01976 ZpMassGen_2000_40.Fill( ZpMG );
01977 ZpMassGen_5000_40.Fill( ZpMG );
01978 }
01979 }
01980
01981 for( int id1=0, nd1=p.numberOfDaughters(); id1 < nd1; ++id1 ) {
01982
01983 const Candidate * d1 = p.daughter(id1);
01984
01985 if ( abs(d1->pdgId()) != 32) {
01986 math::XYZTLorentzVector momentum=d1->p4();
01987 p4Zp[nPart] = momentum=d1->p4();
01988 nPart++;
01989 }
01990
01991 }
01992 }
01993
01994 }
01995
01996
01997
01998 int genInd = 0;
01999
02000 if (nPart == 2) {
02001
02002 ZpM = (p4Zp[0]+p4Zp[1]).mass();
02003 ZpMass.Fill( ZpM );
02004
02005 if (EtaOk10 == 2) {
02006 ZpMass_700_10.Fill( ZpM );
02007 ZpMass_2000_10.Fill( ZpM );
02008 ZpMass_5000_10.Fill( ZpM );
02009 }
02010 if (EtaOk13 == 2) {
02011 ZpMass_700_13.Fill( ZpM );
02012 ZpMass_2000_13.Fill( ZpM );
02013 ZpMass_5000_13.Fill( ZpM );
02014 }
02015 if (EtaOk40 == 2) {
02016 ZpMass_700_40.Fill( ZpM );
02017 ZpMass_2000_40.Fill( ZpM );
02018 ZpMass_5000_40.Fill( ZpM );
02019 }
02020
02021 int usedInd;
02022
02023
02024
02025 usedInd = -1;
02026 jetInd = 0;
02027
02028 for( int i=0; i<maxJets; ++i ) used[i] = 0;
02029 for( int i=0; i<2; ++i ) {
02030
02031 dRmin[jetInd] = 1000.0;
02032
02033 int nj = 0;
02034 for( CaloJetCollection::const_iterator cal1 = calo1Jets->begin();
02035 cal1 != calo1Jets->end() && jetInd<maxJets; ++cal1 ) {
02036
02037 double delR = deltaR( cal1->eta(), cal1->phi(), p4Zp[i].eta(), p4Zp[i].phi() );
02038
02039
02040 if ( (delR < dRmin[jetInd]) && (used[nj] == 0) ) {
02041 dRmin[jetInd] = delR;
02042 p4cal[jetInd] = cal1->p4();
02043 usedInd = nj;
02044 genInd = i;
02045 }
02046
02047
02048
02049
02050
02051
02052
02053
02054
02055
02056
02057
02058
02059
02060
02061
02062 nj++;
02063 }
02064
02065
02066 if (usedInd != -1) {
02067 used[usedInd] = 1;
02068 jetInd++;
02069 }
02070
02071 }
02072
02073 ZpMM = (p4cal[0]+p4cal[1]).mass();
02074 ZpMassMatched1.Fill( ZpMM );
02075
02076 if ((ZpMG != 0) && (EtaOk40 == 2)) {
02077 ZpMassRes401.Fill( (ZpMM - ZpMG) / ZpMG );
02078
02079 ZpMassResL401.Fill( (LeadMass1 - ZpMG) / ZpMG );
02080 ZpMassResL402.Fill( (LeadMass2 - ZpMG) / ZpMG );
02081 ZpMassResL403.Fill( (LeadMass3 - ZpMG) / ZpMG );
02082
02083 ZpMassResRL401.Fill( LeadMass1 / ZpMG );
02084 ZpMassResRL402.Fill( LeadMass2 / ZpMG );
02085 ZpMassResRL403.Fill( LeadMass3 / ZpMG );
02086
02087 ZpMassResRLoP401.Fill( LeadMass1 / LeadMassP1 );
02088 ZpMassResRLoP402.Fill( LeadMass2 / LeadMassP2 );
02089 ZpMassResRLoP403.Fill( LeadMass3 / LeadMassP2 );
02090
02091 ZpMassResPRL401.Fill( LeadMassP1 / ZpMG );
02092 ZpMassResPRL402.Fill( LeadMassP2 / ZpMG );
02093 ZpMassResPRL403.Fill( LeadMassP3 / ZpMG );
02094
02095 }
02096
02097 if ((ZpMG != 0) && (EtaOk10 == 2)) {
02098 ZpMassRes101.Fill( (ZpMM - ZpMG) / ZpMG );
02099
02100 ZpMassResL101.Fill( (LeadMass1 - ZpMG) / ZpMG );
02101 ZpMassResL102.Fill( (LeadMass2 - ZpMG) / ZpMG );
02102 ZpMassResL103.Fill( (LeadMass3 - ZpMG) / ZpMG );
02103
02104 ZpMassResRL101.Fill( LeadMass1 / ZpMG );
02105 ZpMassResRL102.Fill( LeadMass2 / ZpMG );
02106 ZpMassResRL103.Fill( LeadMass3 / ZpMG );
02107
02108 ZpMassResRLoP101.Fill( LeadMass1 / LeadMassP1 );
02109 ZpMassResRLoP102.Fill( LeadMass2 / LeadMassP2 );
02110 ZpMassResRLoP103.Fill( LeadMass3 / LeadMassP2 );
02111
02112 ZpMassResPRL101.Fill( LeadMassP1 / ZpMG );
02113 ZpMassResPRL102.Fill( LeadMassP2 / ZpMG );
02114 ZpMassResPRL103.Fill( LeadMassP3 / ZpMG );
02115
02116 }
02117
02118 if ((ZpMG != 0) && (EtaOk13 == 2)) {
02119 ZpMassRes131.Fill( (ZpMM - ZpMG) / ZpMG );
02120
02121 ZpMassResL131.Fill( (LeadMass1 - ZpMG) / ZpMG );
02122 ZpMassResL132.Fill( (LeadMass2 - ZpMG) / ZpMG );
02123 ZpMassResL133.Fill( (LeadMass3 - ZpMG) / ZpMG );
02124
02125 ZpMassResRL131.Fill( LeadMass1 / ZpMG );
02126 ZpMassResRL132.Fill( LeadMass2 / ZpMG );
02127 ZpMassResRL133.Fill( LeadMass3 / ZpMG );
02128
02129 ZpMassResRLoP131.Fill( LeadMass1 / LeadMassP1 );
02130 ZpMassResRLoP132.Fill( LeadMass2 / LeadMassP2 );
02131 ZpMassResRLoP133.Fill( LeadMass3 / LeadMassP2 );
02132
02133 ZpMassResPRL131.Fill( LeadMassP1 / ZpMG );
02134 ZpMassResPRL132.Fill( LeadMassP2 / ZpMG );
02135 ZpMassResPRL133.Fill( LeadMassP3 / ZpMG );
02136
02137 }
02138
02139
02140
02141
02142
02143 usedInd = -1;
02144 jetInd = 0;
02145
02146 for( int i=0; i<maxJets; ++i ) used[i] = 0;
02147 for( int i=0; i<2; ++i ) {
02148
02149 dRmin[jetInd] = 1000.0;
02150
02151 int nj = 0;
02152 for( CaloJetCollection::const_iterator cal2 = calo2Jets->begin();
02153 cal2 != calo2Jets->end() && jetInd<maxJets; ++cal2 ) {
02154
02155 double delR = deltaR( cal2->eta(), cal2->phi(), p4Zp[i].eta(), p4Zp[i].phi() );
02156
02157 if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
02158 dRmin[jetInd] = delR;
02159 p4cal[jetInd] = cal2->p4();
02160 usedInd = nj;
02161 }
02162
02163
02164
02165
02166
02167
02168
02169
02170
02171
02172
02173
02174 nj++;
02175 }
02176
02177
02178 if (usedInd != -1) {
02179 used[usedInd] = 1;
02180 jetInd++;
02181 }
02182
02183 }
02184
02185 ZpMM = (p4cal[0]+p4cal[1]).mass();
02186 ZpMassMatched2.Fill( ZpMM );
02187 ZpMassRes402.Fill( (ZpMM - ZpM) / ZpM );
02188
02189
02190
02191
02192 usedInd = -1;
02193 jetInd = 0;
02194
02195 for( int i=0; i<maxJets; ++i ) used[i] = 0;
02196 for( int i=0; i<2; ++i ) {
02197
02198 dRmin[jetInd] = 1000.0;
02199
02200 int nj = 0;
02201 for( CaloJetCollection::const_iterator cal3 = calo3Jets->begin();
02202 cal3 != calo3Jets->end() && jetInd<maxJets; ++cal3 ) {
02203
02204 double delR = deltaR( cal3->eta(), cal3->phi(), p4Zp[i].eta(), p4Zp[i].phi() );
02205
02206 if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
02207 dRmin[jetInd] = delR;
02208 p4cal[jetInd] = cal3->p4();
02209 usedInd = nj;
02210 }
02211
02212
02213
02214
02215
02216
02217
02218
02219
02220
02221
02222
02223 nj++;
02224 }
02225
02226
02227
02228 if (usedInd != -1) {
02229 used[usedInd] = 1;
02230 jetInd++;
02231 }
02232
02233 }
02234
02235 ZpMM = (p4cal[0]+p4cal[1]).mass();
02236 ZpMassMatched3.Fill( ZpMM );
02237 ZpMassRes403.Fill( (ZpMM - ZpM) / ZpM );
02238
02239 } else {
02240 cout << "Z' (3): nPart = " << nPart << endl;
02241 }
02242
02243
02244
02245
02246
02247
02248
02249 int nJet = 0;
02250
02251
02252 int ii = 1;
02253 int jj = 4;
02254
02255 for (size_t i =0;i< genParticles->size(); i++) {
02256
02257 const Candidate &p = (*genParticles)[i];
02258
02259
02260 int id = p.pdgId();
02261
02262
02263 if (abs(id) == 6) {
02264 cout << "TOP: id = " << id << " mass = " << p.mass() << endl;
02265
02266 topMassParton.Fill(p.mass());
02267
02268 if (id == 6) tMassGen.Fill(p.mass());
02269 if (id == -6) tbarMassGen.Fill(p.mass());
02270
02271 for( size_t id1=0, nd1=p.numberOfDaughters(); id1 < nd1; ++id1 ) {
02272
02273 const Candidate * d1 = p.daughter(id1);
02274
02275
02276 if ( abs(d1->pdgId()) == 5) {
02277
02278 math::XYZTLorentzVector momentum=d1->p4();
02279 p4par[nJet++] = momentum=d1->p4();
02280
02281 cout << "Daughter1: id = " << d1->pdgId()
02282 << " daughters = " << d1->numberOfDaughters()
02283 << " mother 1 = " << (d1->mother())->pdgId()
02284 << " Momentum " << momentum << " GeV/c"
02285 << endl;
02286
02287
02288 if ( (d1->mother())->pdgId() == 6 ) {
02289 p4part[0] = momentum=d1->p4();
02290 cout << ">>> part0 = " << p4part[0] << endl;
02291 }
02292 if ( (d1->mother())->pdgId() == -6) {
02293 p4part[3] = momentum=d1->p4();
02294 cout << ">>> part3 = " << p4part[3] << endl;
02295 }
02296
02297 }
02298
02299
02300
02301
02302
02303 if ( abs(d1->pdgId()) == 24) {
02304
02305 for( size_t id2=0, nd2=d1->numberOfDaughters(); id2 < nd2; ++id2 ) {
02306
02307 const Candidate * d2 = d1->daughter(id2);
02308
02309 if (abs(d2->pdgId()) < 9) {
02310
02311 math::XYZVector vertex(d2->vx(),d2->vy(),d2->vz());
02312 math::XYZTLorentzVector momentum=d2->p4();
02313 p4par[nJet++] = momentum=d2->p4();
02314
02315 if ( (d1->mother())->pdgId() == 6 ) {
02316 p4part[ii] = momentum=d2->p4();
02317 cout << ">>> part" << ii << " = " << p4part[ii] << endl;
02318 ii++;
02319 }
02320 if ( (d1->mother())->pdgId() == -6 ) {
02321 p4part[jj] = momentum=d2->p4();
02322 cout << ">>> part" << jj << " = " << p4part[jj] << endl;
02323 jj++;
02324 }
02325
02326 cout << "Daughter2: id = " << d2->pdgId()
02327 << " daughters = " << d2->numberOfDaughters()
02328 << " mother 2 = " << (d2->mother())->pdgId()
02329 << " Momentum " << momentum << " GeV/c"
02330 << endl;
02331 }
02332
02333 }
02334 }
02335
02336
02337
02338 }
02339 }
02340
02341 }
02342
02343
02344 if (nJet == 6) {
02345
02346 double tmass = (p4part[0]+p4part[1]+p4part[2]).mass();
02347 double tbarmass = (p4part[3]+p4part[4]+p4part[5]).mass();
02348
02349 tMass.Fill(tmass);
02350 tbarMass.Fill(tbarmass);
02351
02352 cout << ">>> T Mass = " << tmass << " / " << tbarmass << endl;
02353
02354 double mindR = 1000.;
02355 for( size_t i=0; i<6; ++i ) {
02356 for( size_t j=0; j<6; ++j ) {
02357 if (j > i) {
02358 double delR = deltaR( p4par[i].eta(), p4par[i].phi(), p4par[j].eta(), p4par[j].phi() );
02359 if (delR < mindR) mindR = delR;
02360 dRParton.Fill(delR);
02361 }
02362 }
02363 }
02364 dRPartonMin.Fill(mindR);
02365
02366 int usedInd;
02367 usedInd = -1;
02368 jetInd = 0;
02369
02370 for( int i=0; i<maxJets; ++i ) used[i] = 0;
02371 for( int i=0; i<6; ++i ) {
02372
02373 dRmin[jetInd] = 1000.0;
02374
02375 int nj = 0;
02376 for( CaloJetCollection::const_iterator cal1 = calo1Jets->begin();
02377 cal1 != calo1Jets->end() && jetInd<maxJets; ++cal1 ) {
02378
02379 double delR = deltaR( cal1->eta(), cal1->phi(), p4par[i].eta(), p4par[i].phi() );
02380
02381 if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
02382 dRmin[jetInd] = delR;
02383 p4cal[jetInd] = cal1->p4();
02384 usedInd = nj;
02385 genInd = i;
02386 }
02387
02388
02389
02390
02391
02392
02393
02394
02395
02396
02397
02398
02399
02400 nj++;
02401 }
02402
02403
02404
02405 if (usedInd != -1) {
02406 used[usedInd] = 1;
02407
02408 dRPar1.Fill(dRmin[jetInd]);
02409 double dphi = deltaPhi(p4cal[jetInd].phi(), p4par[genInd].phi());
02410 dPhiPar1.Fill(dphi);
02411 double deta = p4cal[jetInd].eta() - p4par[genInd].eta();
02412 dEtaPar1.Fill(deta);
02413 double dpt = p4cal[jetInd].pt() - p4par[genInd].pt();
02414 dPtPar1.Fill(dpt);
02415 jetInd++;
02416 }
02417
02418 }
02419 ParMatch1.Fill(jetInd);
02420 if (jetInd == 6) {
02421 topMass1.Fill( (p4cal[0]+p4cal[1]+p4cal[2]).mass() );
02422 topMass1.Fill( (p4cal[3]+p4cal[4]+p4cal[5]).mass() );
02423 }
02424
02425
02426
02427
02428
02429
02430
02431
02432 jetInd = 0;
02433 usedInd = -1;
02434
02435 for( int i=0; i<maxJets; ++i ) used[i] = 0;
02436 for( int i=0; i<6; ++i ) {
02437
02438 dRmin[jetInd] = 1000.0;
02439
02440 int nj = 0;
02441 for( CaloJetCollection::const_iterator cal2 = calo2Jets->begin();
02442 cal2 != calo2Jets->end() && jetInd<maxJets; ++cal2 ) {
02443
02444 double delR = deltaR( cal2->eta(), cal2->phi(), p4par[i].eta(), p4par[i].phi() );
02445
02446 if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
02447 dRmin[jetInd] = delR;
02448 p4cal[jetInd] = cal2->p4();
02449 usedInd = nj;
02450 genInd = i;
02451 }
02452
02453
02454
02455
02456
02457
02458
02459
02460
02461
02462 nj++;
02463 }
02464 if (usedInd != -1) {
02465 used[usedInd] = 1;
02466
02467 dRPar2.Fill(dRmin[jetInd]);
02468 double dphi = deltaPhi(p4cal[jetInd].phi(), p4par[genInd].phi());
02469 dPhiPar2.Fill(dphi);
02470 double deta = p4cal[jetInd].eta() - p4par[genInd].eta();
02471 dEtaPar2.Fill(deta);
02472 double dpt = p4cal[jetInd].pt() - p4par[genInd].pt();
02473 dPtPar2.Fill(dpt);
02474
02475 jetInd++;
02476 }
02477
02478 }
02479 ParMatch2.Fill(jetInd);
02480 if (jetInd == 6) {
02481 topMass2.Fill( (p4cal[0]+p4cal[1]+p4cal[2]).mass() );
02482 topMass2.Fill( (p4cal[3]+p4cal[4]+p4cal[5]).mass() );
02483 }
02484
02485
02486
02487
02488
02489
02490
02491
02492
02493
02494 jetInd = 0;
02495 usedInd = -1;
02496
02497 for( int i=0; i<maxJets; ++i ) used[i] = 0;
02498 for( int i=0; i<6; ++i ) {
02499
02500 dRmin[jetInd] = 1000.0;
02501
02502 int nj = 0;
02503 for( CaloJetCollection::const_iterator cal3 = calo3Jets->begin();
02504 cal3 != calo3Jets->end() && jetInd<maxJets; ++cal3 ) {
02505
02506 double delR = deltaR( cal3->eta(), cal3->phi(), p4par[i].eta(), p4par[i].phi() );
02507
02508 if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
02509 dRmin[jetInd] = delR;
02510 p4cal[jetInd] = cal3->p4();
02511 usedInd = nj;
02512 genInd = i;
02513 }
02514
02515
02516
02517
02518
02519
02520
02521
02522
02523 nj++;
02524 }
02525 if (usedInd != -1) {
02526 used[usedInd] = 1;
02527
02528 dRPar3.Fill(dRmin[jetInd]);
02529 double dphi = deltaPhi(p4cal[jetInd].phi(), p4par[genInd].phi());
02530 dPhiPar3.Fill(dphi);
02531 double deta = p4cal[jetInd].eta() - p4par[genInd].eta();
02532 dEtaPar3.Fill(deta);
02533 double dpt = p4cal[jetInd].pt() - p4par[genInd].pt();
02534 dPtPar3.Fill(dpt);
02535
02536 jetInd++;
02537 }
02538 }
02539 ParMatch3.Fill(jetInd);
02540 if (jetInd == 6) {
02541 topMass3.Fill( (p4cal[0]+p4cal[1]+p4cal[2]).mass() );
02542 topMass3.Fill( (p4cal[3]+p4cal[4]+p4cal[5]).mass() );
02543 }
02544
02545
02546
02547
02548
02549
02550
02551 }
02552
02553 int nTow1, nTow2, nTow3, nTow4;
02554
02555 Handle<CaloJetCollection> jets;
02556
02557
02558
02559
02560
02561
02562
02563
02564 evt.getByLabel( CaloJetAlgorithm1, jets );
02565 int jjet = 0;
02566 for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
02567 jjet++;
02568
02569 float hadEne = ijet->hadEnergyInHB() + ijet->hadEnergyInHO() +
02570 ijet->hadEnergyInHE() + ijet->hadEnergyInHF();
02571 float emEne = ijet->emEnergyInEB() + ijet->emEnergyInEE() + ijet->emEnergyInHF();
02572 float had = ijet->energyFractionHadronic();
02573
02574 float j_et = ijet->et();
02575
02576 if (fabs(ijet->eta()) < 1.3) {
02577 totEneLeadJetEta1_1.Fill(hadEne+emEne);
02578 hadEneLeadJetEta1_1.Fill(hadEne);
02579 emEneLeadJetEta1_1.Fill(emEne);
02580
02581 totEneLeadJetEta1_2.Fill(hadEne+emEne);
02582 hadEneLeadJetEta1_2.Fill(hadEne);
02583 emEneLeadJetEta1_2.Fill(emEne);
02584
02585 if (ijet->pt() > minJetPt10)
02586 hadFracEta11.Fill(had);
02587 }
02588 if ((fabs(ijet->eta()) > 1.3) && (fabs(ijet->eta()) < 3.) ) {
02589
02590 totEneLeadJetEta2_1.Fill(hadEne+emEne);
02591 hadEneLeadJetEta2_1.Fill(hadEne);
02592 emEneLeadJetEta2_1.Fill(emEne);
02593
02594 totEneLeadJetEta2_2.Fill(hadEne+emEne);
02595 hadEneLeadJetEta2_2.Fill(hadEne);
02596 emEneLeadJetEta2_2.Fill(emEne);
02597
02598 if (ijet->pt() > minJetPt10)
02599 hadFracEta21.Fill(had);
02600 }
02601 if (fabs(ijet->eta()) > 3.) {
02602
02603 totEneLeadJetEta3_1.Fill(hadEne+emEne);
02604 hadEneLeadJetEta3_1.Fill(hadEne);
02605 emEneLeadJetEta3_1.Fill(emEne);
02606
02607 totEneLeadJetEta3_2.Fill(hadEne+emEne);
02608 hadEneLeadJetEta3_2.Fill(hadEne);
02609 emEneLeadJetEta3_2.Fill(emEne);
02610
02611 if (ijet->pt() > minJetPt10)
02612 hadFracEta31.Fill(had);
02613 }
02614
02615
02616 if (jjet == 1) {
02617 hadFracLeadJet1.Fill(had);
02618 hadEneLeadJet1.Fill(hadEne);
02619 hadEneLeadJet12.Fill(hadEne);
02620 hadEneLeadJet13.Fill(hadEne);
02621 emEneLeadJet1.Fill(emEne);
02622 emEneLeadJet12.Fill(emEne);
02623 emEneLeadJet13.Fill(emEne);
02624 }
02625
02626 const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
02627 int nConstituents = jetCaloRefs.size();
02628
02629 if (jjet == 1) {
02630
02631 nTow1 = nTow2 = nTow3 = nTow4 = 0;
02632 for (int i = 0; i <nConstituents ; i++){
02633
02634 float et = jetCaloRefs[i]->et();
02635
02636 if (et > 0.5) nTow1++;
02637 if (et > 1.0) nTow2++;
02638 if (et > 1.5) nTow3++;
02639 if (et > 2.0) nTow4++;
02640
02641 hf_TowerJetEt1.Fill(et/j_et);
02642
02643 }
02644
02645 nTowersLeadJetPt1.Fill(nTow1);
02646 nTowersLeadJetPt2.Fill(nTow2);
02647 nTowersLeadJetPt3.Fill(nTow3);
02648 nTowersLeadJetPt4.Fill(nTow4);
02649
02650 }
02651
02652 if ( (jjet == 1) && (fabs(ijet->eta()) < 1.3) ) {
02653 nTowersLeadJet1.Fill( nConstituents );
02654
02655 for (int i = 0; i <nConstituents ; i++){
02656 float t_et = jetCaloRefs[i]->et();
02657 double delR = deltaR( ijet->eta(), ijet->phi(), jetCaloRefs[i]->eta(), jetCaloRefs[i]->phi() );
02658 hf_TowerDelR1.Fill( delR, t_et/j_et);
02659 hf_TowerDelR12.Fill( delR, t_et/j_et);
02660 TowerEtLeadJet1.Fill( t_et );
02661 TowerEtLeadJet12.Fill( t_et );
02662 TowerEtLeadJet13.Fill( t_et );
02663 }
02664 }
02665
02666
02667 if ( (jjet == 2) && (fabs(ijet->eta()) < 1.3) ) {
02668 nTowersSecondJet1.Fill( nConstituents );
02669 }
02670
02671
02672
02673 }
02674
02675
02676
02677
02678
02679 double SumPtJet(0);
02680
02681 double SumEtNotJets(0);
02682 double SumEtJets(0);
02683 double SumEtTowers(0);
02684
02685 double sumJetPx(0);
02686 double sumJetPy(0);
02687
02688 double sumTowerAllPx(0);
02689 double sumTowerAllPy(0);
02690
02691 double sumTowerAllEx(0);
02692 double sumTowerAllEy(0);
02693
02694 std::vector<CaloTowerPtr> UsedTowerList;
02695 std::vector<CaloTower> TowerUsedInJets;
02696 std::vector<CaloTower> TowerNotUsedInJets;
02697
02698
02699
02700
02701
02702 Handle<CaloTowerCollection> caloTowers;
02703 evt.getByLabel( "towerMaker", caloTowers );
02704
02705
02706
02707 nTow1 = nTow2 = nTow3 = nTow4 = 0;
02708
02709 double sum_et = 0.0;
02710 double sum_ex = 0.0;
02711 double sum_ey = 0.0;
02712
02713
02714
02715 for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
02716 tower != caloTowers->end(); tower++) {
02717
02718 Double_t et = tower->et();
02719
02720 if (et > 0.5) nTow1++;
02721 if (et > 1.0) nTow2++;
02722 if (et > 1.5) nTow3++;
02723 if (et > 2.0) nTow4++;
02724
02725 if(et>0.5) {
02726
02727
02728 double phix = tower->phi();
02729
02730
02731
02732
02733 double et = tower->et();
02734
02735
02736 sum_et += et;
02737 sum_ex += et*cos(phix);
02738 sum_ey += et*sin(phix);
02739
02740
02741 Double_t phi = tower->phi();
02742 SumEtTowers += tower->et();
02743
02744 sumTowerAllEx += et*cos(phi);
02745 sumTowerAllEy += et*sin(phi);
02746
02747 }
02748
02749 }
02750
02751 SumEt1.Fill(sum_et);
02752 SumEt12.Fill(sum_et);
02753 SumEt13.Fill(sum_et);
02754
02755 MET1.Fill(sqrt( sum_ex*sum_ex + sum_ey*sum_ey));
02756 MET12.Fill(sqrt( sum_ex*sum_ex + sum_ey*sum_ey));
02757 MET13.Fill(sqrt( sum_ex*sum_ex + sum_ey*sum_ey));
02758
02759
02760
02761
02762
02763
02764
02765
02766
02767
02768
02769 hf_sumTowerAllEx.Fill(sumTowerAllEx);
02770 hf_sumTowerAllEy.Fill(sumTowerAllEy);
02771
02772 nTowers1.Fill(nTow1);
02773 nTowers2.Fill(nTow2);
02774 nTowers3.Fill(nTow3);
02775 nTowers4.Fill(nTow4);
02776
02777
02778
02779
02780 UsedTowerList.clear();
02781 TowerUsedInJets.clear();
02782 TowerNotUsedInJets.clear();
02783
02784
02785 evt.getByLabel( CaloJetAlgorithm1, jets );
02786 for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
02787
02788 Double_t jetPt = ijet->pt();
02789 Double_t jetPhi = ijet->phi();
02790
02791
02792
02793 Double_t jetPx = jetPt*cos(jetPhi);
02794 Double_t jetPy = jetPt*sin(jetPhi);
02795
02796 sumJetPx +=jetPx;
02797 sumJetPy +=jetPy;
02798
02799 const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
02800 int nConstituents = jetCaloRefs.size();
02801 for (int i = 0; i <nConstituents ; i++){
02802 UsedTowerList.push_back(jetCaloRefs[i]);
02803 }
02804
02805 SumPtJet +=jetPt;
02806
02807
02808 }
02809
02810
02811 int NTowersUsed = UsedTowerList.size();
02812
02813
02814 for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
02815 tower != caloTowers->end(); tower++) {
02816
02817 CaloTower t = *tower;
02818 Double_t et = tower->et();
02819
02820 if(et>0) {
02821
02822 Double_t phi = tower->phi();
02823 SumEtTowers += tower->et();
02824
02825 sumTowerAllPx += et*cos(phi);
02826 sumTowerAllPy += et*sin(phi);
02827
02828 bool used = false;
02829
02830 for(int i=0; i<NTowersUsed; i++){
02831 if(tower->id() == UsedTowerList[i]->id()){
02832 used=true;
02833 break;
02834 }
02835 }
02836
02837 if (used) {
02838 TowerUsedInJets.push_back(t);
02839 } else {
02840 TowerNotUsedInJets.push_back(t);
02841 }
02842
02843 }
02844
02845 }
02846
02847 int nUsed = TowerUsedInJets.size();
02848 int nNotUsed = TowerNotUsedInJets.size();
02849
02850 SumEtJets = 0;
02851 SumEtNotJets = 0;
02852
02853 for(int i=0;i<nUsed;i++){
02854 SumEtJets += TowerUsedInJets[i].et();
02855 }
02856 h_jetEt1.Fill(SumEtJets);
02857
02858 for(int i=0;i<nNotUsed;i++){
02859 if (TowerNotUsedInJets[i].et() > 0.5)
02860 SumEtNotJets += TowerNotUsedInJets[i].et();
02861 h_missEt1.Fill(TowerNotUsedInJets[i].et());
02862 h_missEt1s.Fill(TowerNotUsedInJets[i].et());
02863 }
02864 h_totMissEt1.Fill(SumEtNotJets);
02865
02866
02867
02868
02869
02870
02871 UsedTowerList.clear();
02872 TowerUsedInJets.clear();
02873 TowerNotUsedInJets.clear();
02874
02875
02876 evt.getByLabel( CaloJetAlgorithm2, jets );
02877 for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
02878
02879 Double_t jetPt = ijet->pt();
02880 Double_t jetPhi = ijet->phi();
02881
02882
02883
02884 Double_t jetPx = jetPt*cos(jetPhi);
02885 Double_t jetPy = jetPt*sin(jetPhi);
02886
02887 sumJetPx +=jetPx;
02888 sumJetPy +=jetPy;
02889
02890 const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
02891 int nConstituents = jetCaloRefs.size();
02892 for (int i = 0; i <nConstituents ; i++){
02893 UsedTowerList.push_back(jetCaloRefs[i]);
02894 }
02895
02896 SumPtJet +=jetPt;
02897
02898
02899 }
02900
02901
02902
02903
02904
02905 NTowersUsed = UsedTowerList.size();
02906
02907
02908 for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
02909 tower != caloTowers->end(); tower++) {
02910
02911 CaloTower t = *tower;
02912 Double_t et = tower->et();
02913
02914 if(et>0) {
02915
02916 Double_t phi = tower->phi();
02917
02918 SumEtTowers += tower->et();
02919
02920 sumTowerAllPx += et*cos(phi);
02921 sumTowerAllPy += et*sin(phi);
02922
02923 bool used = false;
02924
02925 for(int i=0; i<NTowersUsed; i++){
02926 if(tower->id() == UsedTowerList[i]->id()){
02927 used=true;
02928 break;
02929 }
02930 }
02931
02932 if (used) {
02933 TowerUsedInJets.push_back(t);
02934 } else {
02935 TowerNotUsedInJets.push_back(t);
02936 }
02937
02938 }
02939
02940 }
02941
02942 nUsed = TowerUsedInJets.size();
02943 nNotUsed = TowerNotUsedInJets.size();
02944
02945 SumEtJets = 0;
02946 SumEtNotJets = 0;
02947
02948 for(int i=0;i<nUsed;i++){
02949 SumEtJets += TowerUsedInJets[i].et();
02950 }
02951 h_jetEt2.Fill(SumEtJets);
02952
02953 for(int i=0;i<nNotUsed;i++){
02954 if (TowerNotUsedInJets[i].et() > 0.5)
02955 SumEtNotJets += TowerNotUsedInJets[i].et();
02956 h_missEt2.Fill(TowerNotUsedInJets[i].et());
02957 h_missEt2s.Fill(TowerNotUsedInJets[i].et());
02958 }
02959 h_totMissEt2.Fill(SumEtNotJets);
02960
02961
02962
02963
02964
02965 UsedTowerList.clear();
02966 TowerUsedInJets.clear();
02967 TowerNotUsedInJets.clear();
02968
02969
02970 evt.getByLabel( CaloJetAlgorithm3, jets );
02971 for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
02972
02973 Double_t jetPt = ijet->pt();
02974 Double_t jetPhi = ijet->phi();
02975
02976
02977
02978 Double_t jetPx = jetPt*cos(jetPhi);
02979 Double_t jetPy = jetPt*sin(jetPhi);
02980
02981 sumJetPx +=jetPx;
02982 sumJetPy +=jetPy;
02983
02984 const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
02985 int nConstituents = jetCaloRefs.size();
02986 for (int i = 0; i <nConstituents ; i++){
02987 UsedTowerList.push_back(jetCaloRefs[i]);
02988 }
02989
02990 SumPtJet +=jetPt;
02991
02992
02993 }
02994
02995
02996
02997
02998
02999 NTowersUsed = UsedTowerList.size();
03000
03001
03002 for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
03003 tower != caloTowers->end(); tower++) {
03004
03005 CaloTower t = *tower;
03006 Double_t et = tower->et();
03007
03008 if(et>0) {
03009
03010
03011
03012
03013
03014
03015
03016 bool used = false;
03017
03018 for(int i=0; i<NTowersUsed; i++){
03019 if(tower->id() == UsedTowerList[i]->id()){
03020 used=true;
03021 break;
03022 }
03023 }
03024
03025 if (used) {
03026 TowerUsedInJets.push_back(t);
03027 } else {
03028 TowerNotUsedInJets.push_back(t);
03029 }
03030
03031 }
03032
03033 }
03034
03035 nUsed = TowerUsedInJets.size();
03036 nNotUsed = TowerNotUsedInJets.size();
03037
03038 SumEtJets = 0;
03039 SumEtNotJets = 0;
03040
03041 for(int i=0;i<nUsed;i++){
03042 SumEtJets += TowerUsedInJets[i].et();
03043 }
03044 h_jetEt3.Fill(SumEtJets);
03045
03046 for(int i=0;i<nNotUsed;i++){
03047 if (TowerNotUsedInJets[i].et() > 0.5)
03048 SumEtNotJets += TowerNotUsedInJets[i].et();
03049 h_missEt3.Fill(TowerNotUsedInJets[i].et());
03050 h_missEt3s.Fill(TowerNotUsedInJets[i].et());
03051 }
03052 h_totMissEt3.Fill(SumEtNotJets);
03053
03054 }
03055
03056
03057
03058 void myFastSimVal::endJob() {
03059
03060
03061 m_file->Write();
03062
03063 }
03064 #include "FWCore/Framework/interface/MakerMacros.h"
03065 DEFINE_FWK_MODULE(myFastSimVal);