Pythia8 Generation of Z' Processes

The download and installation of Pythia8 can be found here. If the user does not have any experience with Pythia8 then it is recommended to follow the Pythia8 installation on that page in order to gain general familiarity with the event generator.

The production of Z\x92 decays within the context of the E6 models is a fairly straightforward process since Pythia8 includes the Z\x92 inherently within the standalone package. In order to generate the Z\x92 decays Pythia8 requires the setting of a number of parameters and hopefully this twiki page should guide the user towards successful generation.

The Pythia8 Online Manual is linked and the Z\x92 documentation can be found within the New Gauge Bosons section of the Process Select category.

Parameter Specification

This section will describe the parameters that need to be set in order for Pythia8 to do its job. The parameters included within this section must be modified before event generation and must be included in the generation code through the command:


where value is the parameter to be modified. In order to start the generation of Z\x92 decays the user must include:

NewGaugeBoson::ffbar2gmZZprime = on

which will set the process for the generation. Next the user should specify the final state particles that they would want in their event. If the user wants only a single type of particle, for example electron/positron final states, two commands must be in place:

32:onMode = off
32:onIfAny = 11

where the first command switched off all decay modes for the Z\x92, which has an ID of 32, and the second command then switched on the decay mode for only electron/positron final states. This twiki will assume electron/positron final states but the same could be done for muons where the user should input the muon ID into the string.

The mass of the Z\x92 that Pythia8 uses is set at 500 GeV by default. The way to modify the mass of the Z\x92 is with:

32:m0 = 1500

which will produce a 1500 GeV Z\x92 and can obviously be changed to any mass value.

Next up is to select the mode that the user wants to run the generation in. This will specify which of the particles: photon/Z/Z\x92 contribute to the event and will impact various distributions. For example, if Z/Z\x92 is being used then in the invariant mass of the final state particles there will be two peaks: one for the Z and one for the Z\x92.

Regardless of what is specified here the ID of the intermediary particle will always be assigned a value of 32 and the possible decay channels are specified by the decay channels that are allowed for the Z\x92.

The various modes are:

0: photon/Z/Z\x92 with interference
1: pure photon
2: pure Z
3: pure Z\x92
4: photon/Z with interference
5: photon/Z\x92 with interference
6: Z/Z\x92 with interference

And the argument that needs to be included is:

Zprime:gmZmode = 0

Forward-Backward Asymmetry Note: If you are planning on looking at AFB then it is going to be necessary to run with additional interference from the photon. If the user ran with strictly Z\x92 then the AFB will be approximately zero. When I ran my generation with photon/Z/Z' interference the correct AFB plot would eventually be produced.

Finally we get to the couplings for the Z\x92 which will define which of the E6 models the user is generating. Pythia8 allows for the specification of the axial and vector couplings to all the quarks and leptons in the Standard Model but the more general setting has the user specifying the couplings for the first generation and then assuming they are the same for the others. In order to accomplish this the user should add to their code:

Zprime:universality = on

So that now the only couplings that need to be specified are the ones for the first generation and Pythia will use these values for the other generations. It should be noted that Pythia8 uses its own convention for the Z\x92 couplings. Thus the user will not be able to take the couplings from a theory paper and directly place them into their code. If the user wishes to see the Pythia8 convention and how it compares with other conventions the relevant paper can be found here which will contain the expressions for each of the couplings as a function of the mixing angle on page 6.

And to set the couplings for the various particles the arguments are:

Zprime:vd = 0
Zprime:ad = 0.5055
Zprime:vu = 0
Zprime:au = 0.5055
Zprime:ve = 0
Zprime:ae = 0.5055
Zprime:vnue = 0.2527
Zprime:anue = 0.2527

where the values presented are for the E6 Psi model. Additionally the Z\x92 couplings for various E6 models within the Pythia convention already in decimal form can be found here: LINK.

An example of a Pythia8 .cc file that generates Z\x92 decays is located here. This file will generate 10,000 events for Z\x92 -> e- e+ with photon/Z/Z\x92 interference within the E6 Psi model and saves it to a LHE file. The LHE file can then be converted to a root n-tuple using ExRootAnalysis.

Radiation and the Event Record

The next modification that the user may wish to do is to allow leptons the ability to radiate photons. By default Pythia8 has this option turned off and the LHEF initialization should be:

LHAupFromPYTHIA8 myLHA(&pythia.process, &;

If the user wanted to change the default so that leptons could radiate photons the string that must be included is:

TimeShower:QEDshowerByL = on

and the LHEF initialization must also be changed to:

LHAupFromPYTHIA8 myLHA(&pythia.event, &;

so that the event record will contain the radiated photons and their corresponding decays. If the LHEF initialization is not modified then the event record may be incomplete and the kinematics might not reflect the changes caused by the radiation.

Once the two changes are in place Pythia8 will generate your events with radiation and produce the correct LHE file. This file will contain thousands of particles for each event due to the radiation of photons and their corresponding decays. Since the photons will decay into electron/positron states there may be multiple pairs of final state electrons and the challenge becomes finding the pair that decayed from the intermediary Z and not the photons. This is complicated because of how Pythia8 handles radiation and how it modifies the particle record. In order to radiate photons Pythia8 will create a chain of the same type of particle with small changes in momentum between them (i.e. electron -> electron -> electron and the same can be true for the Z/Z'/positron). The differences in momentum between the electrons in the chain will correspond to the momentum of a photon in your event which was radiated by the electron. These chains of particles will prevent the user from looking at the first mother of the electron as it may return another electron and not the intermediary boson.

The simplest method of determining the electron pair that had decayed from the intermediary boson is to select the highest pt electron and positron. This will work the majority of the time and is a useful method when looking at particles that have went through a detector simulation.

However if the user wants to find only the electrons coming off of the boson then they will need to exploit the mother and child relationshipos. When converting the LHE file to a root n-tuple using ExRootAnalysis the user will be given two additional variables: Mother1 and Mother2. These designate the position in the particle index where the mother is stored and can be used to find the correct final state particles. There is one caveat: the particle index starts at 0 while the index in Mother1 and Mother2 start at 1. In order to determine the mother's ID of the current final state particle the user should write the following into their code:

int RealMotherIndex = Particle_Mother1[i] -1;
int MotherID = Particle_PID[RealMotherIndex];

where "i" is the index being looped over within the particle loop.

-- AaronVermeersch - 10 Jul 2013
Topic attachments
I Attachment Action Size DateSorted ascending Who Comment
E6_Zprime_Generation.cccc manage 2 K 09 Jul 2013 - 16:27 AaronVermeersch Example of a Script to Generate Z' Processes in E6 Psi Models
E6Parameters.shsh manage 836 bytes 09 Jul 2013 - 16:30 AaronVermeersch Calculated Z' Couplings for Various Models
Topic revision: r6 - 13 Aug 2013, AaronVermeersch
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback