Changes in / [1408174:70b9632] in git
- Files:
-
- 6 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Makefile
r1408174 r70b9632 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.h 156 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.h 167 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.h 178 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.h 189 Validation_photon$(ExeSuf): \ 190 tmp/examples/Validation_photon.$(ObjSuf) 191 192 tmp/examples/Validation_photon.$(ObjSuf): \ 193 examples/Validation_photon.cpp \ 150 194 classes/DelphesClasses.h \ 151 195 external/ExRootAnalysis/ExRootTreeReader.h \ … … 162 206 stdhep2pileup$(ExeSuf) \ 163 207 Example1$(ExeSuf) \ 164 Validation$(ExeSuf) 208 Validation$(ExeSuf) \ 209 Validation_electron$(ExeSuf) \ 210 Validation_jet$(ExeSuf) \ 211 Validation_muon$(ExeSuf) \ 212 Validation_photon$(ExeSuf) 165 213 166 214 EXECUTABLE_OBJ += \ … … 172 220 tmp/converters/stdhep2pileup.$(ObjSuf) \ 173 221 tmp/examples/Example1.$(ObjSuf) \ 174 tmp/examples/Validation.$(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) 175 227 176 228 DelphesHepMC$(ExeSuf): \ -
readers/DelphesPythia8.cpp
r1408174 r70b9632 153 153 // from pythia8 example 21 154 154 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 155 void fillParticle(int id, double pt_max, double eta_max, 156 Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm) 157 { 158 158 // Reset event record to allow for new event. 159 159 event.reset(); 160 160 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 doublemm = pdt.mSel(id);168 double pp = Pythia8::sqrtpos(ee*ee -mm*mm);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); 169 169 170 170 // Store the particle in the event record. 171 event.append( id, 1, 0, 0, pp * sThe * cos(phi), pp * sThe * sin(phi), pp * cThe, ee, mm); 172 171 event.append(id, 1, 0, 0, pt * cos(phi), pt * sin(phi), pt * sinh(eta), ee, mm); 173 172 } 174 173 175 void fillPartons(int type, double ee_max, Pythia8::Event& event, Pythia8::ParticleData& pdt, 176 Pythia8::Rndm& rndm) { 174 void fillPartons(int id, double pt_max, double eta_max, 175 Pythia8::Event &event, Pythia8::ParticleData &pdt, Pythia8::Rndm &rndm) 176 { 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 184 181 // Information on a q qbar system, to be hadronized. 185 182 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); 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); 196 196 } 197 197 else 198 198 { 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);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); 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") == 22)340 if (pythia->mode("Main:spareMode1") == 11 || pythia->mode("Main:spareMode1") == 13 || pythia->mode("Main:spareMode1") == 15 || pythia->mode("Main:spareMode1") == 22) 341 341 { 342 fillParticle( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), -1., 0.,pythia->event, pythia->particleData, pythia->rndm, 0);342 fillParticle(pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm); 343 343 } 344 else fillPartons( pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->event, pythia->particleData, pythia->rndm); 344 else 345 { 346 fillPartons(pythia->mode("Main:spareMode1"), pythia->parm("Main:spareParm1"), pythia->parm("Main:spareParm2"), pythia->event, pythia->particleData, pythia->rndm); 347 } 345 348 } 346 349
Note:
See TracChangeset
for help on using the changeset viewer.