Open lawrenceleejr opened 1 year ago
So I've done a very basic version of this (and not using TTree Draw so.... at least it doesn't have that bug in it...).
I'm plotting a violin plot (ROOT's violin plots are really gross looking -- we'll do it better with seaborn) with jet momentum on the x axis. The vertical axis is the number of particles needed to get to 90% of the jet energy. For this, I take all the particles that form the truth jet, order them by energy and ask how many of those do I need to add up (adding four-momenta) before I have 90% of the jet energy. (I'm doing this via a TGraph so that I can use the eval function -- so each jet can have a fractional number of particles to get to that 90% point.) I fill up a 2D histogram with that number (so one entry per jet).
Plot compares:
/userdata/FragmentationStudy/data/Herwig/LEP-1000-VV.root
, which is also color singlets). This is a stand in for the Z+gamma for the moment.The difference is there in slope and the two shapes agree well when your momentum scale is at mV/2 as expected.
Stupid little script that I used for this for safe keeping: https://gist.github.com/lawrenceleejr/4a258479cabcd5e8c7ce5985802603fc
Plot:
The analogous n50 actually shows the crossing happen at mV/2:
We need to get some apple-to-apple samples to actually do more serious comparisons, but this is a good sign. This project is a rollercoaster. :)
Thanks @cbell1402 for the Pythia samples. I'm starting to see maybe why we weren't seeing the effect in Pythia at first. Looking at the hard core of the jet, the effect appears to be there.
One thing that would be useful is maybe an order of magnitude more events. @cbell1402 do you think you could produce the Pythia samples but with 50k per sample? (If you need to throw away the hepmc because it starts to get too big, feel free to do that.)
New 50k samples are now in /userdata/FragmentationStudy/data
and /userdata/FragmentationStudy/data/Pythia
For some reason my hepmc file for eeToJJJ isn't saving, but you mentioned it may not be required anyway. If needed, I can run again and figure out what is wrong.
Maybe the HEPMC file not being saved for the eeToJJJ is related to the fact that the Delphes output for JJJ looks like ZGamma in actuality? Might be hinting at the same bug.
The issue was, even with my little switch thing, the HEPMC file was being overwritten by the other one. Basically the second run overwrote the first. So, I fixed that and now each file should be right. The naming scheme is like either JJJ_default_50k or Zgamma_default_50k.
Thanks! Looks like the files are different now so that's great. I made some quick plots. In the lower stats samples, the two samples agreed at ~50 GeV and then diverged which is exactly the behavior I hoped for. Running the same thing on these new samples, they're separated at that momentum scale a little. It's not impossible that it was just a statistical accident that they overlapped like that, but just to confirm -- between the low stats at the high stats, did anything in the cards change @cbell1402?
The old plot can be found above with the low stats (https://github.com/lawrenceleejr/FragmentationStudy/issues/13#issuecomment-1385476099)
And a new plot is here:
The difference still grows, so it's not the end of the world. But just want to be sure.
Here's the ratio of the jjj to the zgamma and it nicely shows that increase, although I had hoped at low momentum, the ratio would be 1. But even still, at 250 GeV, a 30% effect is not a small effect....
The parameter cards were left untouched. The run card's only change was the number of events. The Pythia card did not change. Now that I think about it, it may be possible that drjj could have changed between the new and old. I'll run this again with no changes but 5k events and place them in /data.
Oh! Another thing that changed was the gluon removal.
I placed the rerun 5k samples in folders titles 5k_events
. These include gluon removals.
Hrm. So looking at the new 5k samples, I no longer see them match at low momentum. Not totally sure what to make of it. @cbell1402 Can you add your various madgraph+pythia cards to this repo so that we can also have them for safe keeping?
Looking at the 4 TeV samples from #15, I also don't see them agree at low pt, but the distribution does actually seem pretty flat for Z+gamma.
Oh actually... I maybe understand it. At 4 TeV, that has to be a very highly boosted Z. So you're not going to get really any jets at this low of a pT (which is why the stats are so low). So while yes, the only color flow that's happening should be in the rest frame of the Z (therefore the distributions should be flat), it won't intersect with mV/2 because these are not the jets from the Z, but rather radiated jets from those quarks (and since we're vetoing gluons, this even has to be gluons that then split back into quarks, again further reducing the stats). But as a result, in the Z rest frame, these actually have very low momentum! So you don't expect these to intersect at mV/2, but instead at a much lower energy scale!
Maybe this makes sense..... Now the question is, can we just get a population of jets directly from the Z? We can't just crank up the energy to see that... Some ideas that we should distill into actual tasks:
Copied from slack:
early morning thought about jet physics and IR safety…… @Charles Bell can you make a plot (maybe with @Emery Nibigira ’s help, and/or we can talk about it more) that shows say for jets in a particular momentum range (maybe 100-150 GeV)… showing the fraction of the jet energy you can get to by summing up the highest energy N particles inside of it? so you should have something where on the x axis it counts up 1,2,3,4… and in the first vertical slice it’s what fraction of the jet energy is stored in the leading E particle inside that jet. that should be low-ish and then it should increase as you start to include more and more particles (as you go to the right of the plot). this is the essence of what jet fragmentation is about, but this plot is also a “safer” measure of multiplicity
8:59 if you then make a profile of this 2D histogram, you should get something that looks like a turn-on curve — starts low and then plateaus at a fraction=1
For this, you'll want to use the links that each jet object provides to each of its constituent particles:
Jet.Particles
. If you access this it'll give you all the particles inside the jets. Then you want to order them by energy and then one by one add their four vectors together starting from the highest energy.