FMS trigger filtering in PYTHIA simulation

I have been looking through Jingguo's PYTHIA simulation for the FMS. Specifically, I have concerned myself with the trigger filtering procedure that he used. To avoid having a huge number events to pass throught starsim, he applied a filter at the PYTHIA level to remove events that couldn't meet the trigger requirements. I shall summarise below what I have found in the code as it currently exists.

The PYTHIA code for the FMS is contained in the StPythiaEvent package, located here:

/star/u/jgma/psudisk/sim/fpdsim6/StRoot/StPythiaEvent

Specifically, the code of interest is in pythiaEvent.cxx, in the method STARDetector(), beginning at line 362 in his original code. There appear to be two versions of trigger filtering: version 1, beginning at line 619 and version 2, beginning at line 699. I shall address version 2 first, then discuss version 1.

Version 2

The code is, to be honest, pretty hard to follow but, assuming I have understood it properly, a visual representation of what is there is shown in figure 1a. Each box shows the number assigned to it in Jingguo's code and the energy threshold that must be exceeded for an event to pass the filter: if none of the regions contain more than this amount of energy, the event is discarded. This would appear to be an implementation of the 2011 board sum trigger, as it shows an approximation of the QT board distribution, which is shown in figure 1b.

Figure 1a: regions implemented in version 2 of Jingguo's trigger filter. Blue boxes show boards serving large cells, red boxes show boards serving small cells.

 

Figure 1b: QT board locations. Each small white or grey square is a single FMS cell.

Note that, as currently implemented, the threshold is in energy, not in transverse energy as was used in the real trigger condition.

Version 1

I think that this is, or at least was intended to become, the jet patch trigger. However it doesn't appear to be fully implemented. The code defining the boundaries between regions is present, but the code where the energy in each patch is summed is commented out, as though it was in a state of flux or testing. Again assuming that I am interpreting what is there correctly, a visual representation is shown in figure 2a. The cells are divided into 5 different populations, indicated by the different colours in the figure. This would seem to be a step towards defnining the jet patch regions shown in the right panel of figure 2b; the diagonals forming the patch boundaries have been blocked out, but the patches haven't been "filled in".

Figure 2a: An in-progress jet patch trigger?

 

Figure 2b: The 2011 jet patch trigger scheme, described in http://www.star.bnl.gov/protected/spin/gagliardi/FMS_Jet_Patch_Trigger_proposal.ppt

 

New implementation

I have written a new implementation of both the board sum and jet patch schemes. The board sum scheme now matches the cell boundaries for each board, as shown in figure 1b, exactly, unlike the old implementation where the regions were approximate. The code will also hopefully be easier to understand and debug than the old version, which was compact but rather opaque. Figure 3 shows a graphical representation of the board scheme produced from the ROOT code.

Figure 3: New representation of the QT board scheme. Boards serving small cells are shown in shades of red. Boards serving large cells are shown in shades of blue. Cell excluded from the trigger definition are shown in grey. Each cell contains the designation of the board to which it belongs (A-J).

The implementation of the jet patch scheme is shown in figure 4, and is intended to exactly match the boundaries in Carl et al.'s scheme (figure 2b).

Figure 4: Jet patches implemented in the new code. Cell boundaries for each of the eight patches are shown for the "corner" patches (left) and "wedge" patches (right).

I still need to incorporate the transverse energy thresholds for each board/patch. Both the board sum and jet patch codes are currently under testing. Running with the new board sum code with the (energy) thresholds present in Jingguo's code gives comparable results to his implementation. The correspondence is not exact as the board boundaries in the old implementation were approximate. We will also need to investigate how strict the pre-filtering can be without it discarding events of interest. The next step after this will be to incorporate the 2011 calibrations.

I am compiling documentation for my new code and for my edited versions of Jingguo's files. It is located here:

http://www.star.bnl.gov/~tpb/fmssim/index.html.

If you wish to obtain the code itself, it is located on RCF at:

/star/u/tpb/StRoot/StPythiaEvent.