How to modify particles in LHCb Gauss


I am currently working on a new analysis at LHCb. I’m trying to invistigate the possibility of long lived stau decaying to a gravitino and a tau. This is a scenario predicted by Gauge Mediated Supersymmetry Breaking (GMSB) SuperSymmetric (SUSY) model. The very light gravitino in this model will be the lightest particle with stau being next leading particle (NLP). There is little interest shown in the past into probing phase space so this leaves a gap in exploration. LHCb detector provides a unique opportunity because of its long tracker. This would allow us to probe higher lifetimes with potential high sensitivity. As this a very new signal and SUSY is not something established into LHCb software yet, I found myself dealing with a lot of things but also I enjou learning. I will try to write about some of these things as a way of documenting things here.

Gauss, the software package used for simulation inside LHCb provides information about particles through simple txt file stored in DDDB package under param/ParticleTable.txt. Gauss scrape the following information from the file.

Particle GeantID PDGID CHARGE MASS(GeV) LIFETIME(s) EVTGENNAME PYTHIAID MAXWIDTH

For example, for Kaon+ it would be

K*_2(1430)0         153         315  0.0        0.100000   1.0e-10                    K_2*0         315        0.0

For all SUSY particles and most of non standard model particles you will find default values that is not right (except of IDs)

For example for stau and its anti particles

 ~tau_1-               879     1000015  -1.0    500.00000000      0.000000e+00                   unknown     1000015      0.00000000
 ~tau_1+               880    -1000015   1.0    500.00000000      0.000000e+00                   unknown    -1000015      0.00000000 

I wanted a way to specify the Mass and lifetime of generated staus because I wanted to generate different samples for my study. One way to do that was to play with width and mass values inside the SLHA file that I generated from IsaJet which I found some people at CMS do. I didn’t like this solution as there are some unintended consequences for that. Forunetnley there is a method called ParticlePropertySvc the I found mention about in one of the rare occasion where I find a Twiki page useful.

So I wanted to generate staus with long life time enough to be in order of meters. If I’m taking the maximum value of 10 m (length of LHCb tracker) this means that the lifetime would be ~ 3.4e08 or something in this order for lower values.

The code to use it is pretty simple. I have to change the mass and lifetime (be careful with units). I give Gravitino very high lifetime because I want it to be considered stable.

from Configurables import LHCb__ParticlePropertySvc
LHCb__ParticlePropertySvc().Particles += [
      "~tau_1- 879  1000015  -1.0 %e %e unknown  1000015 0.00000000" % (100, 3.34e-8),
      "~tau_1+ 880  -1000015  1.0 %e %e unknown  -1000015 0.00000000" % (100, 3.34e-8),
      "~Gravitino 892  1000039  0.0 %e %e unknown  1000039 0.00000000" % (0, 1e08)
    ]

Now when you run gauss you should get updates from ParticlePropertySvc in the logs. You will see something like

LHCb::ParticlePropert...SUCCESS  New/updated particles (from "Particles" property)

Also it is useful to print the updated information. You should get something like that

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | #    |        Name       |     PdgID    |   Q  |        Mass       |    (c*)Tau/Gamma  |  MaxWidth  |        EvtGen        |  PythiaID  |     Antiparticle     |
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | 792  | ~tau_1-           |      1000015 |  -1  |           100 GeV |     10.013068 m   |      0     |        unknown       |   1000015  |        ~tau_1+       |
 | 791  | ~tau_1+           |     -1000015 |   1  |           100 GeV |     10.013068 m   |      0     |        unknown       |  -1000015  |        ~tau_1-       |
 | 804  | ~Gravitino        |      1000039 |   0  |             0 eV  |        stable     |      0     |        unknown       |   1000039  |        self-cc       |
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

LHCb::ParticlePropert...   INFO  Mass     has beed redefined for [ '~Gravitino' , '~tau_1+' , '~tau_1-' ]
LHCb::ParticlePropert...   INFO  Lifetime has beed redefined for [ '~Gravitino' , '~tau_1+' , '~tau_1-' ]