Distance and Recombination SchemesKtJet defines three Distance schemes and five Recombination schemes. However the user can define their own scheme and use this instead. The Distance scheme has to be a KtJet::KtDistance object (i.e. inherit from KtJet::KtDistance) and the recombination scheme has to be a KtJet::KtRecom. The new schemes can be passed to KtEvent as pointers to the base class, so for example:
/** Construct a user defined distance scheme */
KtJet::KtDistance* distScheme = new MyNewDistanceScheme();
/** Construct a user defined recombination scheme */
KtJet::KtRecom* recomScheme = new MyNewRecombinationScheme();
/** A vector of KtLorentzVectors */
std::vector<KtJet::KtLorentzVector> avec;
/** Construct a KtEvent in inclusive mode for PP events using deltaR
distance scheme and user defined recombination scheme */
KtJet::KtEvent ev(avec,4,2,recomScheme,1.0);
/** Construct a KtEvent in inclusive mode for eP events using user
defined distance scheme and E recombination scheme */
KtJet::KtEvent ev(avec,2,distScheme,1,1.0);
/** Construct a KtEvent in exclusive mode for ee events using user
defined distance and recombination scheme */
KtJet::KtEvent ev(avec,1,distScheme,recomScheme);
KtDistance SchemeKtJet::KtDistance has a simple interface that has to be honoured when users define their own schemes.
KtFloat operator()(const KtLorentzVector &) const; This calculates the distance between the input KtLorentzVector and the beam. KtFloat operator()(const KtLorentzVector &, const KtLorentzVector &) const; This calculates the distance between the two input KtLorentzVectors. string name() const; This returns the name of the distance scheme. KtJet defines three KtDistance schemes of its own: KtDistanceAngle, KtDistanceDeltaR and KtDistanceQCD.
KtRecom SchemeKtJet::KtRecom also has a simple three method interface that has to be honoured when users define their own schemes. HepLorentzVector operator()(const HepLorentzVector &, const HepLorentzVector &) const; This calculates the merged four-momentum of the two input HepLorentzVectors. KtLorentzVector operator()(const KtLorentzVector &) const; This modifies the input HepLorentzVector so that it meets the criteria of the recombination scheme. For example, in the E scheme it just returns an identical copy of the input HepLorentzVector and in the Pt scheme this function returns a copy of the input HepLorentzVector with its energy set equal to its magnitude (i.e. massless). std::string name() const; This returns the name of the distance scheme. KtJet defines five KtRecom schemes of its own: KtRecomE, KtRecomPt, KtRecomPt2, KtRecomEt and KtRecomEt2.
|