[Rivet] Jets in DIS

David Grellscheid david.grellscheid at durham.ac.uk
Wed Oct 19 09:01:30 BST 2011


Hi Roman,

the point of Rivet analyses is to only do what a detector can 
potentially do. Since the detector cannot look into nature's event 
record to check status codes, maybe you know of an experimental 
definition of the scattered electron?

Thanks,

   David

On 19/10/11 03: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
> http://www.hepforge.org/lists/listinfo/rivet


More information about the Rivet mailing list