RE: Particle physics - exercise 1d solution
Thanks very much for your participation. I will try, as usual, to bring some precision both on the text and on the code. Most concerns minor details. But it is good to bring them to light ;)
COMMENT 1
A cutflow is a list of event selection strategy which ensure that selected events meet certain quality criteria.
In fact, the selections are not only made for quality, but also for probing specific topologies. For instance, if you are interested in dark matter, you know you need to require a large amount of missing energy.
COMMENT 2
The objective of cutflows is to kill background events while keeping signals of interest untouched.
In fact, we try to keep the signal as untouched as possible. Because we always loose some signal events in the process.
COMMENT 3
For this reason any energy measured in the transverse direction upon the event is the missing transverse energy, referred to ET or MET.
I am not really sure to understand the sentence. I suspect a typo. ET is the total transverse energy visible in the detector while the MET is what is missing to recover energy conservation. They are thus not the same thing at all.
COMMENT 4
In the research paper at the center of this exercise, the writers describe how Dark Matter (DM) may be produced in proton-proton collisions in the Large Hadron Collider and how this Dark Matter may result in a large amount of missing transverse momentum pTmiss.
One thing that I have never said but that is very important is that if you have only dark matter that is produced, you in fact collide protons to produce... nothing visible. Therefore, the detectors won't trigger and record the event. For this reason, dark matter is always probed in a signal made of missing energy plus a very energetic object. Here, the very energetic object is a photon.
COMMENT 5
The jet cleaning method should also be used for electrons. It is not necessary for muons. Actually, lepton isolation is not explained at all in the paper... A flaw in the experimental documentation. But you could not know. Please check this:
// Electrons
std::vector<const RecLeptonFormat*> LooseLeptons;
for(unsigned int ii=0; ii<event.rec()->electrons().size(); ii++)
{
const RecLeptonFormat *myElec = &(event.rec()->electrons()[ii]);
double eta = myElec->abseta();
double pt = myElec->pt();
double iso_var = PHYSICS->Isol->eflow->sumIsolation(myElec,
event.rec(),0.4,0.,IsolationEFlow::ALL_COMPONENTS);
if( (eta > 1.44) and (eta<1.57) ) continue;
if(eta > 2.5) continue;
if(iso_var>0.15*pt) continue;
if (pt>10) LooseLeptons.push_back(myElec);
}
myjets = PHYSICS->Isol->JetCleaning(myjets,LooseLeptons, 0.2);
// Muons
for(unsigned int ii=0; ii<event.rec()->muons().size(); ii++)
{
const RecLeptonFormat *myMuon = &(event.rec()->muons()[ii]);
double eta = myMuon->abseta();
double pt = myMuon->pt();
double iso_var = PHYSICS->Isol->eflow->sumIsolation(myMuon,
event.rec(),0.4,0.,IsolationEFlow::TRACK_COMPONENT);
if(eta > 2.4) continue;
if(iso_var>0.20*pt) continue;
if (pt>10) LooseLeptons.push_back(myMuon);
}
The rest of the code looks good, but I didn't check thoroughly. (Hard to compare with mine as cuts are implemented differently).
OK, thanks for all the corrections.
I will update the post shortly.
Good luck with the utopian live interview today!
I won't be able to listen to it live today but will listen to the recording tomorrow.
I've updated the post with your corrections.
I've also updated the code in github.
Cheers.
Thanks a lot! Please enjoy your vacation!
Merci !