#### How to add a new variable

Adding a new variable must be done in code. The LCFIPlus package should be downloaded (e.g. checked out from SVN) and compiled, with appropriate environmental variables defined for Marlin.

Each variable is defined inside src/FlavorTag.cc as a class inheriting from FTAlgo. The name of the variable is defined by providing a string argument to the constructor of the parent class. The variable class should implement the process() method which performs the variable computation. One can access the jet data through the member "_jet" and the event data through "_event". The result should be stored in the member variable "_result". One can optionally implement the processEvent() method which is called once per every event. The class should be instantiated and added to the FTManager object inside the FlavorTag::init() method to make the variable known to LCFIPlus.

An example implementation of a variable is shown below.

// computes the number of vertices in a jet class FtNvtx : public FTAlgo {class FtNvtx : public FTAlgo { public: FtNvtx() : FTAlgo("nvtx") {} void process() { _result = _jet->getVertices().size(); } };

Variables defined in this way can be used as a flavor tagging variable in the XML configuration. The name of the variable identified in XML is the same as the one given as a string in the constructor of the C++ code.

#### List of input variables

All variables are computed for each jet. A brief explanation is given below for the variables which are defined by LCFIPlus.

name |
description |
---|---|

trk1d0sig |
d0 significance of track with highest d0 significance |

trk2d0sig |
d0 significance of track with second highest d0 significance |

trk1z0sig |
z0 significance of track with highest d0 significance (ordering by d0, not z0) |

trk2z0sig |
z0 significance of track with second highest d0 significance (ordering by d0, not z0) |

trk1pt |
transverse momentum of track with highest d0 significance |

trk1pt_jete |
trk1pt divided by the jet energy |

trk2pt |
transverse momentum of track with second highest d0 significance |

trk2pt_jete |
trk2pt divided by the jet energy |

jprobr |
joint probability in the r-phi plane using all tracks |

jprobr5sigma |
joint probability in the r-phi plane using all tracks having impact parameter significance exceeding 5 sigma |

jprobz |
joint probability in the z projection using all tracks |

jprobz5sigma |
joint probability in the z projection using all tracks having impact parameter significance exceeding 5 sigma |

d0bprob |
product of b-quark probabilities of d0 values for all tracks, using b/c/q d0 distributions |

d0cprob |
product of c-quark probabilities of d0 values for all tracks, using b/c/q d0 distributions |

d0qprob |
product of q-quark probabilities of d0 values for all tracks, using b/c/q d0 distributions |

z0bprob |
product of b-quark probabilities of z0 values for all tracks, using b/c/q z0 distributions |

z0cprob |
product of c-quark probabilities of z0 values for all tracks, using b/c/q z0 distributions |

z0qprob |
product of q-quark probabilities of z0 values for all tracks, using b/c/q z0 distributions |

nmuon |
number of identified muons |

nelectron |
number of identified electrons |

trkmass |
mass of all tracks exceeding 5 sigma significance in d0/z0 values |

1vtxprob |
vertex probability with all tracks associated in vertices combined |

vtxlen1 |
decay length of the first vertex in the jet (zero if no vertex is found) |

vtxlen1_jete |
vtxlen1 divided by the jet energy |

vtxlen2 |
decay length of the second vertex in the jet (zero if number of vertex is less than two) |

vtxlen2_jete |
vtxlen2 divided by the jet energy |

vtxlen12 |
distance between the first and second vertex (zero if number of vertex is less than two) |

vtxlen12_jete |
vtxlen12 divided by the jet energy |

vtxsig1 |
decay length significance of the first vertex in the jet (zero if no vertex is found) |

vtxsig1_jete |
vtxsig1 divided by the jet energy |

vtxsig2 |
decay length significance of the second vertex in the jet (zero if number of vertex is less than two) |

vtxsig2_jete |
vtxsig2 divided by the jet energy |

vtxsig12 |
vtxlen12 divided by its error as computed from the sum of the covariance matrix of the first and second vertices, projected along the line connecting the two vertices |

vtxsig12_jete |
vtxsig12 divided by the jet energy |

vtxdirang1 |
the angle between the momentum (computed as a vector sum of track momenta) and the displacement of the first vertex |

vtxdirang1_jete |
vtxdirang1 multiplied by the jet energy |

vtxdirang2 |
the angle between the momentum (computed as a vector sum of track momenta) and the displacement of the second vertex |

vtxdirang2_jete |
vtxdirang2 multiplied by the jet energy |

vtxmult1 |
number of tracks included in the first vertex (zero if no vertex is found) |

vtxmult2 |
number of tracks included in the second vertex (zero if number of vertex is less than two) |

vtxmult |
number of tracks which are used to form secondary vertices (summed for all vertices) |

vtxmom1 |
magnitude of the vector sum of the momenta of all tracks combined into the first vertex |

vtxmom1_jete |
vtxmom1 divided by the jet energy |

vtxmom2 |
magnitude of the vector sum of the momenta of all tracks combined into the second vertex |

vtxmom2_jete |
vtxmom2 divided by the jet energy |

vtxmass1 |
mass of the first vertex computed from the sum of track four-momenta |

vtxmass2 |
mass of the second vertex computed from the sum of track four-momenta |

vtxmass |
vertex mass as computed from the sum of four momenta of all tracks forming secondary vertices |

vtxmasspc |
mass of the vertex with minimum pt correction allowed by the error matrices of the primary and secondary vertices |

vtxprob |
vertex probability; for multiple vertices, the probability P is computed as 1-P = (1-P_1) |

#### Example plots of input variables

The plots below are made from 6 jet samples at 500 GeV using ILD detector simulation. They were made in the context of the DBD studies in 2012.

The color scheme is as follows: blue = b jets, green = c jets, red = uds jets.

## LCFIPlus Input Variables |
|||
---|---|---|---|