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.
Code Block 

// 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 rphi plane using all tracks 
jprobr5sigma  joint probability in the rphi 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 bquark probabilities of d0 values for all tracks, using b/c/q d0 distributions 
d0cprob  product of cquark probabilities of d0 values for all tracks, using b/c/q d0 distributions 
d0qprob  product of qquark probabilities of d0 values for all tracks, using b/c/q d0 distributions 
z0bprob  product of bquark probabilities of z0 values for all tracks, using b/c/q z0 distributions 
z0cprob  product of cquark probabilities of z0 values for all tracks, using b/c/q z0 distributions 
z0qprob  product of qquark 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 fourmomenta 
vtxmass2  mass of the second vertex computed from the sum of track fourmomenta 
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 1P = (1P_1)(1P_2)...*(1P_N) 
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.
Gallery  

