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