Changes in / [eceb415:79d4123] in git
- Files:
-
- 6 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
receb415 r79d4123 148 148 tmp/examples/Validation.$(ObjSuf): \ 149 149 examples/Validation.cpp \ 150 classes/DelphesClasses.h \151 external/ExRootAnalysis/ExRootTreeReader.h \152 external/ExRootAnalysis/ExRootTreeWriter.h \153 external/ExRootAnalysis/ExRootTreeBranch.h \154 external/ExRootAnalysis/ExRootResult.h \155 external/ExRootAnalysis/ExRootUtilities.h156 Validation_electron$(ExeSuf): \157 tmp/examples/Validation_electron.$(ObjSuf)158 159 tmp/examples/Validation_electron.$(ObjSuf): \160 examples/Validation_electron.cpp \161 classes/DelphesClasses.h \162 external/ExRootAnalysis/ExRootTreeReader.h \163 external/ExRootAnalysis/ExRootTreeWriter.h \164 external/ExRootAnalysis/ExRootTreeBranch.h \165 external/ExRootAnalysis/ExRootResult.h \166 external/ExRootAnalysis/ExRootUtilities.h167 Validation_jet$(ExeSuf): \168 tmp/examples/Validation_jet.$(ObjSuf)169 170 tmp/examples/Validation_jet.$(ObjSuf): \171 examples/Validation_jet.cpp \172 classes/DelphesClasses.h \173 external/ExRootAnalysis/ExRootTreeReader.h \174 external/ExRootAnalysis/ExRootTreeWriter.h \175 external/ExRootAnalysis/ExRootTreeBranch.h \176 external/ExRootAnalysis/ExRootResult.h \177 external/ExRootAnalysis/ExRootUtilities.h178 Validation_muon$(ExeSuf): \179 tmp/examples/Validation_muon.$(ObjSuf)180 181 tmp/examples/Validation_muon.$(ObjSuf): \182 examples/Validation_muon.cpp \183 classes/DelphesClasses.h \184 external/ExRootAnalysis/ExRootTreeReader.h \185 external/ExRootAnalysis/ExRootTreeWriter.h \186 external/ExRootAnalysis/ExRootTreeBranch.h \187 external/ExRootAnalysis/ExRootResult.h \188 external/ExRootAnalysis/ExRootUtilities.h189 Validation_photon$(ExeSuf): \190 tmp/examples/Validation_photon.$(ObjSuf)191 192 tmp/examples/Validation_photon.$(ObjSuf): \193 examples/Validation_photon.cpp \194 150 classes/DelphesClasses.h \ 195 151 external/ExRootAnalysis/ExRootTreeReader.h \ … … 206 162 stdhep2pileup$(ExeSuf) \ 207 163 Example1$(ExeSuf) \ 208 Validation$(ExeSuf) \ 209 Validation_electron$(ExeSuf) \ 210 Validation_jet$(ExeSuf) \ 211 Validation_muon$(ExeSuf) \ 212 Validation_photon$(ExeSuf) 164 Validation$(ExeSuf) 213 165 214 166 EXECUTABLE_OBJ += \ … … 220 172 tmp/converters/stdhep2pileup.$(ObjSuf) \ 221 173 tmp/examples/Example1.$(ObjSuf) \ 222 tmp/examples/Validation.$(ObjSuf) \ 223 tmp/examples/Validation_electron.$(ObjSuf) \ 224 tmp/examples/Validation_jet.$(ObjSuf) \ 225 tmp/examples/Validation_muon.$(ObjSuf) \ 226 tmp/examples/Validation_photon.$(ObjSuf) 174 tmp/examples/Validation.$(ObjSuf) 227 175 228 176 DelphesHepMC$(ExeSuf): \ -
examples/Validation.cpp
receb415 r79d4123 188 188 TH1D *histRecoPtfwd = new TH1D(name+" reco spectra Eta",name+" reco spectra fwd", Nbins, TMath::Log10(ptrangemin), TMath::Log10(ptrangemax)); 189 189 190 histGenPtcen->SetDirectory(0);191 histRecoPtcen->SetDirectory(0);192 histGenPtfwd->SetDirectory(0);193 histRecoPtfwd->SetDirectory(0);194 190 195 191 BinLogX(histGenPtcen); … … 333 329 for (bin = 0; bin < Nbins; bin++) 334 330 { 335 if(pt > histos->at(bin).ptmin && pt < histos->at(bin).ptmax && eta < 2.5)331 if(pt > histos->at(bin).ptmin && pt < histos->at(bin).ptmax && eta > 0.0 && eta < 2.5) 336 332 { 337 333 if (eta < 1.5) {histos->at(bin).cenResolHist->Fill(recoMomentum.Pt()/bestGenMomentum.Pt());} … … 735 731 std::pair<TH1D*,TH1D*> histos_el = GetEff<Electron>(branchElectron, branchParticleElectron, "Electron", elID, treeReaderElectron); 736 732 737 histos_el.second->SaveAs("test1.pdf");738 739 733 // tracking reconstruction efficiency 740 734 std::pair <TH1D*,TH1D*> histos_eltrack = GetEff<Track>(branchTrackElectron, branchParticleElectron, "electronTrack", elID, treeReaderElectron); … … 801 795 DrawAxis(histos_eltrack.second, leg_el2, 0); 802 796 leg_el2->Draw(); 797 798 C_el1->cd(0); 803 799 804 800 TString elRes = "electronERes"; … … 1280 1276 char *appName = "Validation"; 1281 1277 1282 if(argc != 8)1278 if(argc != 3) 1283 1279 { 1284 1280 cout << " Usage: " << appName << " input_file_electron input_file_muon input_file_photon input_file_jet input_file_bjet input_file_taujet output_file" << endl; -
readers/DelphesPythia8.cpp
receb415 r79d4123 153 153 // from pythia8 example 21 154 154 155 void fillParticle(int id, double pt_max, double eta_max,156 Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm)157 { 155 void fillParticle(int id, double ee_max, double thetaIn, double phiIn, 156 Pythia8::Event& event, Pythia8::ParticleData& pdt, Pythia8::Rndm& rndm, bool atRest = false) { 157 158 158 // Reset event record to allow for new event. 159 159 event.reset(); 160 160 161 // Generate uniform pt and eta.162 double pt, eta, phi, pp, ee, mm;163 pt = pow(10, 1.0 + (log10(pt_max) - 1.0) * rndm.flat());164 eta = (2.0 * rndm.flat() - 1.0) * eta_max;165 phi = 2. 0* M_PI * rndm.flat();166 pp = pt * cosh(eta);167 mm = pdt.mSel(id);168 ee = Pythia8::sqrtpos(pp*pp +mm*mm);161 // Angles uniform in solid angle. 162 double cThe, sThe, phi, ee; 163 cThe = 2. * rndm.flat() - 1.; 164 sThe = Pythia8::sqrtpos(1. - cThe * cThe); 165 phi = 2. * M_PI * rndm.flat(); 166 ee = pow(10,1+(log10(ee_max)-1)*rndm.flat()); 167 double mm = pdt.mSel(id); 168 double pp = Pythia8::sqrtpos(ee*ee - mm*mm); 169 169 170 170 // Store the particle in the event record. 171 event.append(id, 1, 0, 0, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee, mm); 171 event.append( id, 1, 0, 0, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee, mm); 172 172 173 } 173 174 174 void fillPartons(int id, double pt_max, double eta_max, 175 Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm) 176 { 175 void fillPartons(int type, double ee_max, Pythia8::Event& event, Pythia8::ParticleData& pdt, 176 Pythia8::Rndm& rndm) { 177 177 178 178 // Reset event record to allow for new event. 179 179 event.reset(); 180 180 181 // Angles uniform in solid angle. 182 double cThe, sThe, phi, ee; 183 181 184 // Information on a q qbar system, to be hadronized. 182 185 183 // Generate uniform pt and eta. 184 double pt, eta, phi, pp, ee, mm; 185 pt = pow(10, 1.0 + (log10(pt_max) - 1.0) * rndm.flat()); 186 eta = (2.0 * rndm.flat() - 1.0) * eta_max; 187 phi = 2.0 * M_PI * rndm.flat(); 188 pp = pt * cosh(eta); 189 mm = pdt.m0(id); 190 ee = Pythia8::sqrtpos(pp*pp + mm*mm); 191 192 if(id == 21) 193 { 194 event.append(21, 23, 101, 102, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee); 195 event.append(21, 23, 102, 101, -pt * cos(phi), -pt * sin(phi), -pt * sinh(eta), ee); 186 cThe = 2. * rndm.flat() - 1.; 187 sThe = Pythia8::sqrtpos(1. - cThe * cThe); 188 phi = 2. * M_PI * rndm.flat(); 189 ee = pow(10,1+(log10(ee_max)-1)*rndm.flat()); 190 double mm = pdt.m0(type); 191 double pp = Pythia8::sqrtpos(ee*ee - mm*mm); 192 if (type == 21) 193 { 194 event.append( 21, 23, 101, 102, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee); 195 event.append( 21, 23, 102, 101, -pp * sThe * cos(phi), -pp * sThe * sin(phi), -pp * cThe, ee); 196 196 } 197 197 else 198 198 { 199 event.append( id, 23, 101, 0, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee, mm);200 event.append( -id, 23, 0, 101, -pt * cos(phi), -pt * sin(phi), -pt * sinh(eta), ee, mm);199 event.append( type, 23, 101, 0, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee, mm); 200 event.append( -type, 23, 0, 101, -pp * sThe * cos(phi), -pp * sThe * sin(phi), -pp * cThe, ee, mm); 201 201 } 202 202 } … … 338 338 if (pythia->flag("Main:spareFlag1")) 339 339 { 340 if (pythia->mode("Main:spareMode1") == 11 || pythia->mode("Main:spareMode1") == 13 || pythia->mode("Main:spareMode1") == 15 || pythia->mode("Main:spareMode1") ==22)340 if (pythia->mode("Main:spareMode1") == 11 || pythia->mode("Main:spareMode1") == 13 || pythia->mode("Main:spareMode1") == 22) 341 341 { 342 fillParticle( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm);342 fillParticle( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), -1., 0.,pythia->event, pythia->particleData, pythia->rndm, 0); 343 343 } 344 else 345 { 346 fillPartons(pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm); 347 } 344 else fillPartons( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->event, pythia->particleData, pythia->rndm); 348 345 } 349 346
Note:
See TracChangeset
for help on using the changeset viewer.