|
[Rivet] Jets in DISHannes Jung hannes.jung at cern.chWed Oct 19 08:22:38 BST 2011
Hi Roman & Andy hm, taking just the frist electron might be tricky, as it is not based on physics. What about just taking the electron which is closest in rapidity to the incoming electron ? This would be the same as your proposal, but it would also work in e+e- processes with gamma* gamma*. Another issue is the non-negleglible pt, how large is it: 0.1 GeV, 1 or 5 GeV ? Maybe 0.1 GeV as a start could be reasonable? but still there is a transition to smaller pt... cheers hannes On 19 Oct 2011, at 04:00, Roman Kogler wrote: Hi Andy, here is a strategy that I would suggest: Take the first electron (or positron) in the event with status code 0 and non-negligible pt. If the status code is not available, or not safe for some event generators, the non-negligible pt alone should do. In all MCs I know, the scattered electron appears in the event record before the hadronisation and decay products. So this method should be ok. Cheers, Roman On 10/18/11 11:20, Andy Buckley wrote: Hi Roman, Thanks for the feedback. What do you suggest as an alternative scheme: highest-energy electron (in what frame)? What is done experimentally? Apologies for the DIS-unawareness! Cheers, Andy On 17/10/11 22:51, Roman Kogler wrote: Dear Andy, I checked out the new Rivet version, thanks for including the boost of the final state to the Breit frame. I'm happy to see that working. However, there is a bug in Rivet when looking for the scattered electron in DIS. The algorithm (DISLepton.cc) looks for the electron (or positron) in the event with the highest value of pz. This works at low Q2 rather well, but at high Q2 this algorithm fails. Here is why: At HERA the +pz direction is defined to be the proton beam direction. So the electron beam has pz=-27.6. At low Q2, where the electron is scattered under small angles, the 'signed value' of the scattered electron is then +pz'. However, at high Q2 the electron can be scattered perpendicular to the beam (pz'=0) or in the forward direction (-pz'). So if there is any other electron in the event present, which goes in the -pz direction, it will be misidentified as the scattered electron. Below is an example for an event generated with Q2~17000, where the scattered electron has been misidentified and the calculated value of Q2 in Rivet is 72.8. Cheers, Roman DISLepton: searching for ID -11 with pz > -1e+09 part 0 id = -11 px = -55.7936 py = 67.9235 pz = 73.3469 E = 114.483 part 0 id = -11 signed_pz = -73.3469 ---> taking 0 as outgoing lepton part 1 id = 211 px = 4.3922 py = -5.36174 pz = 21.1347 E = 22.2426 part 2 id = 2212 px = 19.1258 py = -22.3493 pz = 85.5571 E = 90.4775 part 3 id = -2212 px = 7.27322 py = -8.24468 pz = 32.7272 E = 34.5373 part 4 id = 2112 px = -0.258489 py = 0.0192201 pz = 140.113 E = 140.116 part 5 id = 22 px = 0.0752175 py = -0.0810541 pz = 0.527222 E = 0.538693 part 6 id = -211 px = 2.95982 py = -3.164 pz = 14.1068 E = 14.7578 part 7 id = 130 px = 0.251775 py = -0.163703 pz = 183.251 E = 183.252 part 8 id = 211 px = 6.86782 py = -8.30335 pz = 33.2207 E = 34.9249 part 9 id = -211 px = 2.33043 py = -2.5695 pz = 10.0595 E = 10.6417 part 10 id = 22 px = 0.693957 py = -0.670989 pz = 3.14172 E = 3.28667 part 11 id = 22 px = 1.11994 py = -1.31727 pz = 5.41137 E = 5.68088 part 12 id = 130 px = -0.151476 py = -0.389603 pz = 18.067 E = 18.0787 part 13 id = -321 px = -0.516672 py = -0.553757 pz = 19.2324 E = 19.2536 part 14 id = 211 px = 0.0829556 py = 0.0993597 pz = 4.24924 E = 4.2535 part 15 id = 130 px = 0.375512 py = -0.621349 pz = 14.7582 E = 14.7844 part 16 id = 22 px = -0.0301481 py = -0.00922794 pz = 0.33583 E = 0.337307 part 17 id = 22 px = 0.340224 py = -0.445809 pz = 1.41281 E = 1.52004 part 18 id = 11 px = 0.075713 py = -0.141711 pz = 0.556192 E = 0.578934 part 19 id = -11 px = 0.124663 py = -0.154993 pz = 0.645015 E = 0.674987 part 19 id = -11 signed_pz = -0.645015 ---> taking 19 as outgoing lepton part 20 id = 22 px = 0.04499 py = -0.12844 pz = 0.397113 E = 0.419785 part 21 id = 22 px = 0.827752 py = -1.19367 pz = 4.91671 E = 5.1268 part 22 id = 22 px = 0.748384 py = -1.12375 pz = 4.89815 E = 5.08082 part 23 id = 22 px = -0.00267821 py = -0.00925982 pz = 0.0143985 E = 0.0173273 part 24 id = 130 px = 0.287098 py = 0.19742 pz = 17.3042 E = 17.3149 part 25 id = 130 px = 0.122298 py = -0.0634414 pz = 25.2863 E = 25.2916 part 26 id = 22 px = 0.0347235 py = 0.144282 pz = 1.65602 E = 1.66266 part 27 id = 22 px = -0.0248541 py = 0.146226 pz = 3.67157 E = 3.67456 part 28 id = 211 px = 0.954048 py = -0.963005 pz = 3.13684 E = 3.42006 part 29 id = 211 px = 0.235199 py = -0.343671 pz = 1.4502 E = 1.51525 part 30 id = -12 px = 1.57995 py = -1.37946 pz = 7.29499 E = 7.59052 part 31 id = 11 px = 0.471629 py = -0.856397 pz = 2.71535 E = 2.88599 part 32 id = 211 px = -0.0294085 py = -0.547087 pz = 0.758253 E = 0.94583 part 33 id = -211 px = 0.0861909 py = -0.0196154 pz = 0.452828 E = 0.482023 part 34 id = 211 px = 0.225543 py = -0.161993 pz = 0.915438 E = 0.966756 part 35 id = -211 px = 0.571015 py = -0.738361 pz = 5.30456 E = 5.38786 part 36 id = 211 px = 0.129393 py = -0.267621 pz = 1.02406 E = 1.07542 part 37 id = -211 px = 1.77415 py = -1.73558 pz = 7.05777 E = 7.48274 part 38 id = 22 px = 0.205595 py = -0.0964995 pz = 1.00644 E = 1.03175 part 39 id = 22 px = -0.00465838 py = -0.055959 pz = 0.356084 E = 0.360484 part 40 id = 22 px = 0.567172 py = -0.788086 pz = 3.53189 E = 3.66293 part 41 id = 22 px = 0.406857 py = -0.734593 pz = 2.77624 E = 2.90046 part 42 id = 211 px = 0.374462 py = -0.325563 pz = 2.74971 E = 2.7976 part 43 id = -211 px = 0.206282 py = -0.339635 pz = 0.964825 E = 1.05274 part 44 id = -211 px = 1.22403 py = -0.939285 pz = 24.7002 E = 24.7488 part 45 id = 211 px = -0.401421 py = 0.084246 pz = 17.7685 E = 17.7737 part 46 id = 22 px = 0.657991 py = -0.669357 pz = 29.0299 E = 29.0451 part 47 id = 22 px = 0.30748 py = 0.0117005 pz = 5.16715 E = 5.17631 part 48 id = 22 px = -0.0346924 py = -0.117068 pz = 6.57012 E = 6.57125 part 49 id = 321 px = -0.74251 py = -0.217304 pz = 43.1924 E = 43.2021 part 50 id = -321 px = -0.140918 py = -0.269146 pz = 4.47808 E = 4.51544 fulfilled phase space cuts, Q2 = 72.8641 y = 0.999457 weight = 51.0074 scat. elec: E = 0.674987 theta = 0.299122 Here is the code that I used the generate this output. It's the code of DISLepton.cc with some output statements added. cout << "DISLepton: searching for ID " << id << " with pz > " << pzMax << endl; const FinalState& fs = applyProjection<FinalState>(e, "FS"); int ipart = 0; foreach (const Particle& p, fs.particles()) { cout << "part " << ipart << " id = " << p.pdgId() << " px = " << p.momentum().px() << " py = " << p.momentum().py() << " pz = " << p.momentum().pz() << " E = " << p.momentum().E() << endl; double pz = _sign * p.momentum().pz(); if(p.pdgId() == id && pz > pzMax){ cout << "part " << ipart << " id = " << p.pdgId() << " signed_pz = " << _sign * p.momentum().pz() << endl; cout << " ---> taking " << ipart << " as outgoing lepton " << endl; _outgoing = p; pzMax = pz; } ++ipart; } On 8/15/11 10:17, Andy Buckley wrote: Hi Roman, I'm no DIS expert, but I think that the FinalStateHCM should do something like that -- is it not acceptable? If that is not appropriate, you don't absolutely need to use the "central registry" aspect of the projection system: you can make your list of particles, boosted and filtered however you want, in the analyze() method, and then use the calc() method of a local JetAlg object to make the jets. Let us know if you need more help with this direction: we've only recently started providing this sort of access to projection features without having to register the projections -- sometimes it's necessary, but the normal docs don't describe it! Cheers, Andy On 15/08/11 18:08, Roman Kogler wrote: Dear Rivet authors and developers, I'm trying to implement a new jet analysis in Rivet. The data come from H1. The analysis is not published yet, but we are close to the publication. It's a measurement of inclusive jet, dijet and trijet cross sections in DIS at high Q^2 (for more information have a look at H1prelim-11-032). In this jet analysis jets are found in the Breit frame and I could not find a way in Rivet how to do this. What I need is to boost the full event to the Breit frame before the jet finding is performed. FastJet should then be applied to all final state particles in the Breit frame. Is there an elegant solution to do this in Rivet? Thanks, Roman _______________________________________________ Rivet mailing list Rivet at projects.hepforge.org<mailto:Rivet at projects.hepforge.org> http://www.hepforge.org/lists/listinfo/rivet *********************************************************************** Hannes Jung Email: Hannes.Jung at cern.ch<mailto:Hannes.Jung at cern.ch> mobile :+49 40 8998 93741 http://www.desy.de/~jung Tel: +49 (0) 40 8998 3741 (DESY) Tel: +41 22 76 62602 (CERN) CERN - PH 42-2-033 CH-1211 Genève 23 Switzerland *********************************************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.hepforge.org/lists-archive/rivet/attachments/20111019/baa076ca/attachment.html>
More information about the Rivet mailing list |