Particle physics @utopian-io - exercise 1c solution
Repository
https://github.com/BFuks/mad5-utopian-exercises
Introduction
This is a third article in my quest to help Reptilians take over the World better understand Madanalysis physics toolbox. This will hopefully end with a code to analyse results from Large Hadron Collider and test some particle physics hypothesis. Isn't that cool? Open source project helping to expand our knowledge about the world. The code I will describe below is a solution for exercise written by @lemouth.
[ credits: McCauley, Thomas; Taylor, Lucas; for the CMS Collaboration
Theory
However sophisticated the detectors of LHC are, it is sometimes hard to correctly identify what kind of particle was detected. To ensure that only good quality data is used for further analysis, a process called isolation is often implemented. This process makes sure that the particle of interest is well separated from other particles, so we have a better chance of not mistaking one for another.
In the exercise we use a method used also for CMS search for dark matter. This method consists of checking how much activity happens around examined photon. To measure the activity, we sum transverse momenta of all nearby particles. If they are small enough, we can use the photon for further analysis.
Implementation
A (rather lengthy) signature of a function that gets isolated photons looks like this:
std::vector<RecPhotonFormat> GetIsolatedPhotons(const EventFormat& event,
MAfloat32 he_threshold,
MAfloat32 abseta_threshold,
const cms_constants::PhotonIsolationThresholds &isolation_thresholds
);
PhotonIsolationThresholds
is a structure that contains the parameters needed to calculate momenta thresholds. Interesting parts of the function body are:
- Rejection of the photons for which we don't have to calculate surrounding particles momenta, because they don't meet other criteria:
if (photon.HEoverEE() >= he_threshold ||
photon.abseta() >= abseta_threshold)
continue;
- Getting momenta sums:
auto Ipi = PHYSICS->Isol->eflow->sumIsolation(photon, event.rec(), 0.3, 0.,
IsolationEFlow::TRACK_COMPONENT);
auto In = PHYSICS->Isol->eflow->sumIsolation(photon, event.rec(), 0.3, 0.,
IsolationEFlow::NEUTRAL_COMPONENT);
auto Igamma = PHYSICS->Isol->eflow->sumIsolation(photon, event.rec(), 0.3, 0.,
IsolationEFlow::PHOTON_COMPONENT);
- Finally, comparing those sums to thresholds:
if (Ipi < it.barrel_Ipi_const &&
In < it.barrel_In_const + it.barrel_In_pt_multiplier * photon.pt() &&
Igamma - photon.pt() < it.barrel_Igamma_const + it.barrel_Igamma_pt_multiplier * photon.pt()) {
isolated_photons.push_back(photon);
}
Histogramms
One of the exercise objectives was also to draw the histograms of photons and jets momenta and pseudo-rapidity. It was even a task request to implement a tool that does it in Python. I'm rather poor Python programmer and was running short on time, so I used a tool implemented by @crokkon - https://github.com/crokkon/saf2png.
Resulting plots:
@lemouth - I hope those are correct. Doing the exercise I got wondering: what is the meaning of y axis here? I was expecting it be the number of particles with a given momentum, but obviously it's not the case...
Resources
Exercise description
"Search for new physics in the monophoton final state in proton-proton collisions at sqrt(s) = 13 TeV" paper
Saf2Png tool to plot histograms
Hi. Thank you for the contribution.
The mad5-utopian-exercises repository is used to resolve the exercises proposed by lemouth, but your post is promoting the MadAnalysis 5 framework. For this reason, you must add the MadAnalysis 5 framework repository in the first sections of your post instead the mad5 utopian exercises repository.
Although the theoretical part of its publication is very well explained, the "Implementation" section it's hard to understand. If in this section is where you are using the MadAnalysis 5 framework library, it would be quite valuable to have a more detailed explanation of each component of your code. The blog posts category in Utopian is focused on the projects promotion, so it is important to try to expand the range of readers beyond just the people related to the project.
All list items in the "Implementation" section have the same number (1).
It's great to see that you have used the saf2png tool, this is the purpose of open source.
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]
Hey @kit.andres
Here's a tip for your valuable feedback! @Utopian-io loves and incentivises informative comments.
Contributing on Utopian
Learn how to contribute on our website.
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!
Just to let you know that this is perfect. I have not a single comment here. Thanks a lot for participating. I hope I will be able to release the next episode next week :)
hey @mactro, great to see the saf2png tool actually being used! :)
This post has been voted on by the steemstem curation team and voting trail.
There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!
Hey @mactro
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!
Congratulations @mactro!
You raised your level and are now a Minnow!
Do not miss the last post from @steemitboard:
SteemitBoard World Cup Contest - Belgium vs England
Participate in the SteemitBoard World Cup Contest!
Collect World Cup badges and win free SBD
Support the Gold Sponsors of the contest: @good-karma and @lukestokes
Congratulations @mactro! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word
STOP
Congratulations @mactro! You have received a personal award!
1 Year on Steemit
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard: