### TABLE OF CONTENTS

- 1. /Rho0Finder
- 1.1. Rho0Finder/readInput
- 1.2. Rho0Finder/FindRho0
- 1.2.1. FindRho0/CalculateDecayAngle

## /Rho0Finder [ Modules ]

NAME

module **Rho0Finder**

PURPOSE

This module includes routines, which try to identify rho0 from charged particles in a particle vetor.

INPUTS

(none)

## Rho0Finder/readInput [ Subroutines ]

[ Top ] [ Rho0Finder ] [ Subroutines ]

NAME

subroutine **readInput**

PURPOSE

Read in namelist

## Rho0Finder/FindRho0 [ Subroutines ]

[ Top ] [ Rho0Finder ] [ Subroutines ]

NAME

subroutine **FindRho0**(PartsIn,PartsOut,momIn,ProbIn)

PURPOSE

This routine implements a rho0 finding process as in experiments. Given the list of detected particles in a specific event, it returns a particle list of (possible) reconstructed rho0.

If the particles have a detection probability less than 1, the probability of the rho0 is the product of the two decay candidates. One has the option to multiply this probability with 1 minus the detection probability of every other particle.

INPUTS

- type(tParticleList) :: PartsIn -- particles produced in the event
- real, dimension(0:3) :: momIn -- momentum used for calculation of missing mass, e.g. p+q, i.e. photon + proton momenta
- real, dimension(:), OPTIONAL :: ProbIn -- Array of detection probabilities (AccWeight)

OUTPUT

- type(tParticleList) :: PartsOut -- list of possible rho0

NOTES

- At the moment, this routine just implements the method used by the Hermes experiment, cf. M.Tytgat, PhD thesis (Diffractive production of rho0 and omega mesons at Hermes), p.116f. A more general definition with some steering parameters (maybe via jobCard) is anticipated.
- This routine allocates memory for the rho0. Therefore it is necessary that you clean up the particle list in the calling routine after use via call ParticleList_CLEAR(PartsOut,.true.)
- In order to complete the Tytgat analysis, an additional cut on -t is necessary
- In order to get comparable results as in experiments, Kaons should be instable in calculations and decay into pions.
- We abuse many of the variables of the type to store information different to their intention. We list them in the following:
- Abuse: x-position --> missing mass M_X
- Abuse: y-position --> Delta E
- Abuse: z-position --> DecayTime
- Abuse: scaleCS --> probability, that the pions really come out of a decay (1.0, if both pions are stored in PIL_rho0Dec and 0.5, if only one pion is stored and 0, if we constructed a rho0, which does not stem from a decay [or we forgot to switch on storeRho0Info in collisionterm]).
- Abuse: offShellParameter --> Decay angle theta (cf. CalculateDecayAngle)

## FindRho0/CalculateDecayAngle [ Subroutines ]

[ Top ] [ FindRho0 ] [ Subroutines ]

NAME

subroutine **CalculateDecayAngle**(theta)

PURPOSE

Calculate the decay angle theta in the "s-channel helicity system", i.e. the angle between the positive z-axis and the pi+ momentum in the rest frame of the rho (-z axis defined by recoil particle)

The angle phi (i.e. the azimuthal angle of the pi+ in respect of the photon-recoil plane) is not calculated

INPUTS

OUTPUT

- real :: theta -- the angle (in degrees)