Missing Energy at electron collider

Asked by Shuer Yang

I am a new user of MA5 and I have a question about the missing energy. At the LHC, we can use the MET in MA5 to handle the transverse missing energy. As known as , electron collider has an advantage that it has full 4-momentum information of the invisible final states compared to that at the LHC. Now, I want to study some processes with dark matters and neutrinos in final states by the help of MA5. How could I get missing energy information instead of transverse missing energy (MET). It seems that expert mode can give a hand. However, I am not familiar with C++ and the expert mode. Is there some trick in normal mode of MA5 to catch the 4-momentum information of invisible particles?
Thanks a lot.

Question information

Language:
English Edit question
Status:
Solved
For:
MadAnalysis 5 Edit question
Assignee:
No assignee Edit question
Solved by:
Jack Y. Araz
Solved:
Last query:
Last reply:

This question was reopened

Revision history for this message
Benjamin Fuks (fuks) said :
#1

Hi Shuer Yang,

The code was actually designed for LHC physics so that the pz component of the missing momentum is manually ignored when the "MET" internal variable is computed.

The best way out here would be to use the expert mode and include, on an event-by-event basis, a loop over all particles and construct manually the missing momentum vector according to your needs.

A second option would be to hack the code: commenting a couple of lines in the event file readers (in which the pz component is set to 0), and changing/adding an observable definition in the list of observables. Then, the normal mode could be used for your purpose.

Regards,

Benjamin

Revision history for this message
Shuer Yang (fortunetellery) said :
#2

Sorry for the delayed reply. Recently, I have some progress in this problem. However, I did not solve it. If you could give me a favor , I would be grateful.

1. I commented the two lines of SetPz and SetE in FinalizeEvent in FinalizeEvent and set “myEvent.rec()->MET_.momentum_.SetPtEtaPhiM(part->MET,part->Eta,part->Phi,0.0); “ in the FillEvent method in the file DelphesTreeReader.cpp in order to get a four momentum of invisible particles in reconstruction level. But when I check the output of pz adn E of the four momentum MET_, I also get zero for pz and the E is still equal to Pt. The input file is in lhco format. I am coufused.
2. In addition , how could I set the processed events number for check and how could I check the event information event by event via the pointer of ievent in expert mode ?

Shuer

Revision history for this message
Jack Y. Araz (jackaraz) said :
#3

Hi Shuer

Since its not physical, delphes does not pass the pz information so if you want to get that you will need to modify delphes not ma5. Thus i suggest calculating met within your analysis.

Within your analysis folder, in Main/main.cpp you can see the loop going through all the events. You can write a counter there and pass the information to execute function of your analysis. By doing that you will be able to print the number of event whenever you like.

Hope it helps
Cheers

--
Jack Y. Araz

> On 26 Jan 2021, at 7:30 am, Shuer Yang <email address hidden> wrote:
>
> Question #693991 on MadAnalysis 5 changed:
> https://answers.launchpad.net/madanalysis5/+question/693991
>
> Status: Answered => Open
>
> Shuer Yang is still having a problem:
> Sorry for the delayed reply. Recently, I have some progress in this
> problem. However, I did not solve it. If you could give me a favor , I
> would be grateful.
>
> 1. I commented the two lines of SetPz and SetE in FinalizeEvent in FinalizeEvent and set “myEvent.rec()->MET_.momentum_.SetPtEtaPhiM(part->MET,part->Eta,part->Phi,0.0); “ in the FillEvent method in the file DelphesTreeReader.cpp in order to get a four momentum of invisible particles in reconstruction level. But when I check the output of pz adn E of the four momentum MET_, I also get zero for pz and the E is still equal to Pt. The input file is in lhco format. I am coufused.
> 2. In addition , how could I set the processed events number for check and how could I check the event information event by event via the pointer of ievent in expert mode ?
>
> Shuer
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Revision history for this message
Shuer Yang (fortunetellery) said :
#4

thanks a lot

Revision history for this message
Shuer Yang (fortunetellery) said :
#5

Hi, Jack
Thanks Jack. Although I can calculate the MET and the transverse mass of missing energy and other particles, the 4-momentum can be gotten at the linear collider which carries more information. I think, the 4-momentum at the electron collider is physical. I just hope I can handel it in the framework of MA5.

Revision history for this message
Best Jack Y. Araz (jackaraz) said :
#6

Hi Shuer

All you need to do is writing a for loop over particles

```
MALorentzVector missing_vect;
for (MAuint32 ix=0; ix<event.mc()->particles().size(); ix++)
{
 const MCParticleFormat * part = &(event.mc()->particles()[ix]);
 // doing something to particle if its the one that you want etc.
 missing_vect -= part->momentum();
}
MAdouble64 myMET = missing_vect.PT();
```

Hope it helps
Cheers


Jack Y. Araz

> On Jan 27, 2021, at 1:05 PM, Shuer Yang <email address hidden> wrote:
>
> Question #693991 on MadAnalysis 5 changed:
> https://answers.launchpad.net/madanalysis5/+question/693991
>
> Status: Solved => Open
>
> Shuer Yang is still having a problem:
> Hi, Jack
> Thanks Jack. Although I can calculate the MET and the transverse mass of missing energy and other particles, the 4-momentum can be gotten at the linear collider which carries more information. I think, the 4-momentum at the electron collider is physical. I just hope I can handel it in the framework of MA5.
>
> --
> You received this question notification because you are an answer
> contact for MadAnalysis 5.

Revision history for this message
Shuer Yang (fortunetellery) said :
#7

Hi, Jack
Thanks for your reply. Although your codes are helpful, I work on the detector level or the hadron level. For simplicity, I thought I can read the MET information from lhco file generated by Delphes and fed it to MA5 by set the 4-momentum of "missing particle" built in MA5. So I hacked the code in files LHCOReader.cpp and DelphesMemoryInterface.cpp and reset the 4-momentum of "MET_" by SetPtEtaPhiM and SetPxPyPzE with a nonzero Pz as Benjamin suggested. I also define a function EventMissE in TransverseVariables for energy out of missing particle.

But I got a missing energy distribution the same as the MET. Here, I focus on the handle on lhco file. Is there other file that I should modify for lhco files input or Do I miss some point?

Thanks you for your patience!
Best regards,

Shuer

Revision history for this message
Shuer Yang (fortunetellery) said :
#8

Hi Jack
I have solved the problem. I found that the delphes script root2lhco has missed the pz information of the "missing energy" for LHC study.
Cheers,
Shuer

Revision history for this message
Shuer Yang (fortunetellery) said :
#9

Thanks Jack Y. Araz, that solved my question.