CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Attributes | Private Attributes
hitfit::RunHitFit< AElectron, AMuon, AJet, AMet > Class Template Reference

Template class of experiment-independent interface to HitFit. This class is intended to be used inside the programming environment of a specific experiment, where each type of physics objects has its own class/type. For using HitFit with generic four-vector classes, user can't use this class and have to use the Top_Fit class directly. The reason is: this class is designed assuming electron and muon are represented by different object type, a situation which is guaranteed to happen in any experiments. The class contains some static integer constants to limit the maximum amount of jets in an event before fitting. See the description of those constants for details. The numbers of permutations for $t\bar{t}$ and $t\bar{t}H$ as a function of the number of jets $N_{\mathrm{jet}}$ in the event for a few values of are. More...

#include <RunHitFit.h>

Public Member Functions

void AddJet (const AJet &jet, bool useObjRes=false)
 Add one jet into the internal event. This function will do nothing if the internal event has already contained the maximally allowed number of jets. More...
 
void AddLepton (const AElectron &electron, bool useObjRes=false)
 Add one electron into the internal event. More...
 
void AddLepton (const AMuon &muon, bool useObjRes=false)
 Add one muon into the internal event. More...
 
void clear ()
 Clear the internal event, fit results, and jets. More...
 
std::vector< Fit_Result >::size_type FitAllPermutation ()
 Fit all permutations of the internal event. Returns the number of permutations. More...
 
std::vector< Fit_ResultGetFitAllPermutation ()
 Return the results of fitting all permutations of the internal event. More...
 
const Top_FitGetTopFit () const
 Return a constant reference to the underlying Top_Fit object. More...
 
std::vector< Lepjets_EventGetUnfittedEvent ()
 Return the unfitted events for all permutations. More...
 
 RunHitFit (const LeptonTranslatorBase< AElectron > &el, const LeptonTranslatorBase< AMuon > &mu, const JetTranslatorBase< AJet > &jet, const METTranslatorBase< AMet > &met, const std::string default_file, double lepw_mass, double hadw_mass, double top_mass)
 Constructor. More...
 
void SetKtResolution (const Resolution &res)
 Set the $k_{T}$ resolution of the internal event. More...
 
void SetMet (const AMet &met, bool useObjRes=false)
 Set the missing transverse energy of the internal event. More...
 
void SetMETResolution (const Resolution &res)
 Set the $E_{T}\!\!\!\!/$ resolution of the internal event. More...
 
 ~RunHitFit ()
 Destructor. More...
 

Static Public Attributes

static const unsigned int MAX_HITFIT = 1680
 
static const unsigned int MAX_HITFIT_JET = 8
 
static const unsigned int MAX_HITFIT_VAR = 32
 
static const unsigned int MIN_HITFIT_JET = 4
 
static const unsigned int MIN_HITFIT_TTH = 6
 

Private Attributes

LeptonTranslatorBase< AElectron > _ElectronTranslator
 
Lepjets_Event _event
 
std::vector< Fit_Result_Fit_Results
 
bool _jetObjRes
 
std::vector< AJet > _jets
 
JetTranslatorBase< AJet > _JetTranslator
 
METTranslatorBase< AMet > _METTranslator
 
LeptonTranslatorBase< AMuon > _MuonTranslator
 
Top_Fit _Top_Fit
 
std::vector< Lepjets_Event_Unfitted_Events
 

Detailed Description

template<class AElectron, class AMuon, class AJet, class AMet>
class hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >

Template class of experiment-independent interface to HitFit. This class is intended to be used inside the programming environment of a specific experiment, where each type of physics objects has its own class/type. For using HitFit with generic four-vector classes, user can't use this class and have to use the Top_Fit class directly. The reason is: this class is designed assuming electron and muon are represented by different object type, a situation which is guaranteed to happen in any experiments. The class contains some static integer constants to limit the maximum amount of jets in an event before fitting. See the description of those constants for details. The numbers of permutations for $t\bar{t}$ and $t\bar{t}H$ as a function of the number of jets $N_{\mathrm{jet}}$ in the event for a few values of are.

$N_{\mathrm{jet}}$ $N_{t\bar{t}}$

$N_{t\bar{t}H}$

4 24

N/A

5 120

N/A

6 360

360

7 840

2520

8 1680

20160

If adjusting the limits defined by the static constants is desired, then please the following formulas.

The number for possible permutations, $N_{t\bar{t}}$, as a function of number of jets, $n$, for $t\bar{t}$ event is given by:

\[ N_{t\bar{t}}(n) = \frac{n!}{(n-4)!};~ n \ge 4 \]

The number for possible permutations, $N_{t\bar{t}H}$, as a function of number of jets, $n$, for $t\bar{t}H$ is given by:

\[ N_{t\bar{t}}(n) = \frac{n!}{(n-6)!2!};~ n \ge 6 \]

Parameters
AElectronThe typename of the electron physics object class to be translated into HitFit's Lepjets_Event_Lep.
AMuonThe typename of the muon physics object class to be translated into HitFit's Lepjets_Event_Lep.
AJetThe typename of the jet physics object class to be translated into HitFit's Lepjets_Event_Jet.
AMetThe typename of the missing transverse energy physics object class be translated into HitFit's Fourvec.

Definition at line 153 of file RunHitFit.h.

Constructor & Destructor Documentation

◆ RunHitFit()

template<class AElectron , class AMuon , class AJet , class AMet >
hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::RunHitFit ( const LeptonTranslatorBase< AElectron > &  el,
const LeptonTranslatorBase< AMuon > &  mu,
const JetTranslatorBase< AJet > &  jet,
const METTranslatorBase< AMet > &  met,
const std::string  default_file,
double  lepw_mass,
double  hadw_mass,
double  top_mass 
)
inline

Constructor.

Parameters
elThe function object to translate from AElectron to Lepjets_Event_Lep.
muThe function object to translate from AMuon to Lepjets_Event_Lep.
jetThe function object to translate from AJet to Lepjets_Event_Jet.
metThe function object to translate from AMet to Fourvec.
default_fileThe path of ASCII text files which contains the parameter settings for this instance of RunHitFit.
lepw_massThe mass to which the leptonic $ W- $ boson should be constrained to. A value of zero means this constraint will be removed.
hadw_massThe mass to which the hadronic $ W- $ boson should be constrained to. A value of zero means this constraint will be removed.
top_massThe mass to which the top quark should be constrained to. A value of zero means this constraint will be removed.

Definition at line 252 of file RunHitFit.h.

260  : _ElectronTranslator(el),
264  _event(0, 0),
265  _jetObjRes(false),
266  _Top_Fit(Top_Fit_Args(Defaults_Text(default_file)), lepw_mass, hadw_mass, top_mass) {}
JetTranslatorBase< AJet > _JetTranslator
Definition: RunHitFit.h:168
LeptonTranslatorBase< AElectron > _ElectronTranslator
Definition: RunHitFit.h:158
METTranslatorBase< AMet > _METTranslator
Definition: RunHitFit.h:173
Lepjets_Event _event
Definition: RunHitFit.h:180
LeptonTranslatorBase< AMuon > _MuonTranslator
Definition: RunHitFit.h:163
Top_Fit _Top_Fit
Definition: RunHitFit.h:212

◆ ~RunHitFit()

template<class AElectron , class AMuon , class AJet , class AMet >
hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::~RunHitFit ( )
inline

Destructor.

Definition at line 271 of file RunHitFit.h.

271 {}

Member Function Documentation

◆ AddJet()

template<class AElectron , class AMuon , class AJet , class AMet >
void hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddJet ( const AJet &  jet,
bool  useObjRes = false 
)
inline

Add one jet into the internal event. This function will do nothing if the internal event has already contained the maximally allowed number of jets.

Explanation about this function: This function does not directly add the jet into the internal event. Rather, this function store the jet in an internal array. The reason is: jet energy correction and resolution depends on the jet type in the permutation. Therefore RunHitFit will only add jet into the event after a specific jet permutation has been determined. This is done in the FitAllPermutation function().

Parameters
jetThe jet to be added into the internal event.
useObjResBoolean parameter to indicate if the user would like to use the resolution embedded in the object, and not the resolution read when instantiating the class.

Definition at line 332 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jetObjRes, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jets, metsig::jet, and hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MAX_HITFIT_JET.

332  {
333  // Only set flag when adding the first jet
334  // the additional jets then WILL be treated in the
335  // same way like the first jet.
336  if (_jets.empty()) {
337  _jetObjRes = useObjRes;
338  }
339 
340  if (_jets.size() < MAX_HITFIT_JET) {
341  _jets.push_back(jet);
342  }
343  return;
344  }
static const unsigned int MAX_HITFIT_JET
Definition: RunHitFit.h:490
std::vector< AJet > _jets
Definition: RunHitFit.h:196

◆ AddLepton() [1/2]

template<class AElectron , class AMuon , class AJet , class AMet >
void hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddLepton ( const AElectron &  electron,
bool  useObjRes = false 
)
inline

Add one electron into the internal event.

Parameters
electronThe electron to be added into the internal event.
useObjResBoolean parameter to indicate if the user would like to use the resolution embedded in the object, and not the resolution read when instantiating the class.

Definition at line 293 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_ElectronTranslator, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_event, hitfit::Lepjets_Event::add_lep(), HPSPFTauProducerPuppi_cfi::electron, and hitfit::electron_label.

293  {
295  return;
296  }
LeptonTranslatorBase< AElectron > _ElectronTranslator
Definition: RunHitFit.h:158
void add_lep(const Lepjets_Event_Lep &lep)
Add a new lepton to the event.
Lepjets_Event _event
Definition: RunHitFit.h:180

◆ AddLepton() [2/2]

template<class AElectron , class AMuon , class AJet , class AMet >
void hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddLepton ( const AMuon &  muon,
bool  useObjRes = false 
)
inline

Add one muon into the internal event.

Parameters
muonThe muon to be added into the internal event.
useObjResBoolean parameter to indicate if the user would like to use the resolution embedded in the object, and not the resolution read when instantiating the class.

Definition at line 307 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_event, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_MuonTranslator, hitfit::Lepjets_Event::add_lep(), and hitfit::muon_label.

307  {
309  return;
310  }
void add_lep(const Lepjets_Event_Lep &lep)
Add a new lepton to the event.
Lepjets_Event _event
Definition: RunHitFit.h:180
LeptonTranslatorBase< AMuon > _MuonTranslator
Definition: RunHitFit.h:163

◆ clear()

template<class AElectron , class AMuon , class AJet , class AMet >
void hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::clear ( void  )
inline

Clear the internal event, fit results, and jets.

Definition at line 276 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_event, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Fit_Results, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jetObjRes, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jets, and hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Unfitted_Events.

276  {
277  _event = Lepjets_Event(0, 0);
278  _jets.clear();
279  _jetObjRes = false;
280  _Unfitted_Events.clear();
281  _Fit_Results.clear();
282  }
std::vector< Fit_Result > _Fit_Results
Definition: RunHitFit.h:222
std::vector< Lepjets_Event > _Unfitted_Events
Definition: RunHitFit.h:217
Lepjets_Event _event
Definition: RunHitFit.h:180
std::vector< AJet > _jets
Definition: RunHitFit.h:196

◆ FitAllPermutation()

template<class AElectron , class AMuon , class AJet , class AMet >
std::vector<Fit_Result>::size_type hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation ( )
inline

Fit all permutations of the internal event. Returns the number of permutations.

Definition at line 385 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_event, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Fit_Results, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jetObjRes, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jets, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_JetTranslator, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Top_Fit, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Unfitted_Events, hitfit::Lepjets_Event::add_jet(), hitfit::Top_Fit::args(), nano_mu_local_reco_cff::bool, hitfit::Top_Fit_Args::do_higgs_flag(), hitfit::Top_Fit::fit_one_perm(), hitfit::hadb_label, hitfit::hadw1_label, hitfit::higgs_label, dqmiolumiharvest::j, hitfit::lepb_label, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MAX_HITFIT_JET, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MIN_HITFIT_JET, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MIN_HITFIT_TTH, TtSemiLepEvtBuilder_cfi::mt, hitfit::Lepjets_Event::set_jet_types(), TtSemiLepEvtBuilder_cfi::sigmt, and hitfit::unknown_label.

385  {
386  if (_jets.size() < MIN_HITFIT_JET) {
387  // For ttbar lepton+jets, a minimum of MIN_HITFIT_JETS jets
388  // is required
389  return 0;
390  }
391 
392  if (_jets.size() > MAX_HITFIT_JET) {
393  // Restrict the maximum number of jets in the fit
394  // to prevent loop overflow
395  return 0;
396  }
397 
398  _Unfitted_Events.clear();
399  _Fit_Results.clear();
400 
401  // Prepare the array of jet types for permutation
402  std::vector<int> jet_types(_jets.size(), unknown_label);
403  jet_types[0] = lepb_label;
404  jet_types[1] = hadb_label;
405  jet_types[2] = hadw1_label;
406  jet_types[3] = hadw1_label;
407 
408  if (_Top_Fit.args().do_higgs_flag() && _jets.size() >= MIN_HITFIT_TTH) {
409  jet_types[4] = higgs_label;
410  jet_types[5] = higgs_label;
411  }
412 
413  std::stable_sort(jet_types.begin(), jet_types.end());
414 
415  do {
416  // begin loop over all jet permutation
417  for (int nusol = 0; nusol != 2; nusol++) {
418  // loop over two neutrino solution
419  bool nuz = bool(nusol);
420 
421  // Copy the event
422  Lepjets_Event fev = _event;
423 
424  // Add jets into the event, with the assumed type
425  // in accord with the permutation.
426  // The translator _JetTranslator will correctly
427  // return object of Lepjets_Event_Jet with
428  // jet energy correction applied in accord with
429  // the assumed jet type (b or light).
430  for (size_t j = 0; j != _jets.size(); j++) {
431  fev.add_jet(_JetTranslator(_jets[j], jet_types[j], _jetObjRes));
432  }
433 
434  // Clone fev (intended to be fitted event)
435  // to ufev (intended to be unfitted event)
436  Lepjets_Event ufev = fev;
437 
438  // Set jet types.
439  fev.set_jet_types(jet_types);
440  ufev.set_jet_types(jet_types);
441 
442  // Store the unfitted event
443  _Unfitted_Events.push_back(ufev);
444 
445  // Prepare the placeholder for various kinematic quantities
446  double umwhad;
447  double utmass;
448  double mt;
449  double sigmt;
450  Column_Vector pullx;
451  Column_Vector pully;
452 
453  // Do the fit
454  double chisq = _Top_Fit.fit_one_perm(fev, nuz, umwhad, utmass, mt, sigmt, pullx, pully);
455  // Store output of the fit
456  _Fit_Results.push_back(Fit_Result(chisq, fev, pullx, pully, umwhad, utmass, mt, sigmt));
457 
458  } // end loop over two neutrino solution
459 
460  } while (std::next_permutation(jet_types.begin(), jet_types.end()));
461  // end loop over all jet permutations
462 
463  return _Fit_Results.size();
464  }
bool do_higgs_flag() const
Return the do_higgs_flag parameter.
Definition: Top_Fit.cc:90
JetTranslatorBase< AJet > _JetTranslator
Definition: RunHitFit.h:168
CLHEP::HepVector Column_Vector
Definition: matutil.h:63
static const unsigned int MIN_HITFIT_TTH
Definition: RunHitFit.h:485
std::vector< Fit_Result > _Fit_Results
Definition: RunHitFit.h:222
double fit_one_perm(Lepjets_Event &ev, bool &nuz, double &umwhad, double &utmass, double &mt, double &sigmt, Column_Vector &pullx, Column_Vector &pully)
Fit for a single jet permutation.
Definition: Top_Fit.cc:355
std::vector< Lepjets_Event > _Unfitted_Events
Definition: RunHitFit.h:217
static const unsigned int MAX_HITFIT_JET
Definition: RunHitFit.h:490
Lepjets_Event _event
Definition: RunHitFit.h:180
std::vector< AJet > _jets
Definition: RunHitFit.h:196
Top_Fit _Top_Fit
Definition: RunHitFit.h:212
void add_jet(const Lepjets_Event_Jet &jet)
Add a new jet to the event.
const Top_Fit_Args & args() const
Return a constant reference to the fit arguments.
Definition: Top_Fit.cc:563
static const unsigned int MIN_HITFIT_JET
Definition: RunHitFit.h:480

◆ GetFitAllPermutation()

template<class AElectron , class AMuon , class AJet , class AMet >
std::vector<Fit_Result> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::GetFitAllPermutation ( )
inline

Return the results of fitting all permutations of the internal event.

Definition at line 475 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Fit_Results.

475 { return _Fit_Results; }
std::vector< Fit_Result > _Fit_Results
Definition: RunHitFit.h:222

◆ GetTopFit()

template<class AElectron , class AMuon , class AJet , class AMet >
const Top_Fit& hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::GetTopFit ( ) const
inline

Return a constant reference to the underlying Top_Fit object.

Definition at line 379 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Top_Fit.

379 { return _Top_Fit; }
Top_Fit _Top_Fit
Definition: RunHitFit.h:212

◆ GetUnfittedEvent()

template<class AElectron , class AMuon , class AJet , class AMet >
std::vector<Lepjets_Event> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::GetUnfittedEvent ( )
inline

Return the unfitted events for all permutations.

Definition at line 469 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Unfitted_Events.

469 { return _Unfitted_Events; }
std::vector< Lepjets_Event > _Unfitted_Events
Definition: RunHitFit.h:217

◆ SetKtResolution()

template<class AElectron , class AMuon , class AJet , class AMet >
void hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::SetKtResolution ( const Resolution res)
inline

Set the $k_{T}$ resolution of the internal event.

Parameters
resThe resolution.

Definition at line 360 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_event, and hitfit::Lepjets_Event::kt_res().

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::SetMETResolution().

360  {
361  _event.kt_res() = res;
362  return;
363  }
Resolution & kt_res()
Return a reference to the resolution.
Definition: Electron.h:6
Lepjets_Event _event
Definition: RunHitFit.h:180

◆ SetMet()

template<class AElectron , class AMuon , class AJet , class AMet >
void hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::SetMet ( const AMet &  met,
bool  useObjRes = false 
)
inline

Set the missing transverse energy of the internal event.

Definition at line 349 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_event, hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_METTranslator, hitfit::Lepjets_Event::kt_res(), BTaggingMonitor_cfi::met, and hitfit::Lepjets_Event::met().

349  {
350  _event.met() = _METTranslator(met, useObjRes);
351  _event.kt_res() = _METTranslator.KtResolution(met, useObjRes);
352  return;
353  }
Resolution & kt_res()
Return a reference to the resolution.
METTranslatorBase< AMet > _METTranslator
Definition: RunHitFit.h:173
Lepjets_Event _event
Definition: RunHitFit.h:180
Fourvec & met()
Return a reference to the missing transverse energy.

◆ SetMETResolution()

template<class AElectron , class AMuon , class AJet , class AMet >
void hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::SetMETResolution ( const Resolution res)
inline

Set the $E_{T}\!\!\!\!/$ resolution of the internal event.

Parameters
resThe $E_{T}\!\!\!\!/$ resolution, same as $k_{T}$ resolution.

Definition at line 371 of file RunHitFit.h.

References hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::SetKtResolution().

371  {
373  return;
374  }
void SetKtResolution(const Resolution &res)
Set the resolution of the internal event.
Definition: RunHitFit.h:360
Definition: Electron.h:6

Member Data Documentation

◆ _ElectronTranslator

template<class AElectron , class AMuon , class AJet , class AMet >
LeptonTranslatorBase<AElectron> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_ElectronTranslator
private

The translator from AElectron to Lepjets_Event_Lep.

Definition at line 158 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddLepton().

◆ _event

template<class AElectron , class AMuon , class AJet , class AMet >
Lepjets_Event hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_event
private

◆ _Fit_Results

template<class AElectron , class AMuon , class AJet , class AMet >
std::vector<Fit_Result> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Fit_Results
private

◆ _jetObjRes

template<class AElectron , class AMuon , class AJet , class AMet >
bool hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jetObjRes
private

Boolean flag which sets whether to use jet resolution read from file or jet resolution embedded in the physics objects.

This flag is only set when the FIRST jet is added into the event.

By default this flag is set to FALSE if user does not specify anything about which resolution to be used.

Definition at line 207 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddJet(), hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::clear(), and hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation().

◆ _jets

template<class AElectron , class AMuon , class AJet , class AMet >
std::vector<AJet> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_jets
private

The internal array of jets. Jets are kept in this array and not added into the internal event. The reason is: the jet energy correction applied to a jet is dependent on the assumed jet type (b or light) in the permutation. Therefore the decision is to store jets in their original format/data type.

Before a fit to a particular permutation is done, this class convert the jets in this array into Lepjets_Event_Jet format, taking into consideration the assumed jet type and applying the appropriate jet energy correction.

Definition at line 196 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddJet(), hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::clear(), and hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation().

◆ _JetTranslator

template<class AElectron , class AMuon , class AJet , class AMet >
JetTranslatorBase<AJet> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_JetTranslator
private

The translator from AJet to Lepjets_Event_Jet.

Definition at line 168 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation().

◆ _METTranslator

template<class AElectron , class AMuon , class AJet , class AMet >
METTranslatorBase<AMet> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_METTranslator
private

The translator from AMet to Fourvec.

Definition at line 173 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::SetMet().

◆ _MuonTranslator

template<class AElectron , class AMuon , class AJet , class AMet >
LeptonTranslatorBase<AMuon> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_MuonTranslator
private

The translator from AMuon to Lepjets_Event_Lep.

Definition at line 163 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddLepton().

◆ _Top_Fit

template<class AElectron , class AMuon , class AJet , class AMet >
Top_Fit hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Top_Fit
private

The interface between the event and the fitting algorithm.

Definition at line 212 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation(), and hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::GetTopFit().

◆ _Unfitted_Events

template<class AElectron , class AMuon , class AJet , class AMet >
std::vector<Lepjets_Event> hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::_Unfitted_Events
private

◆ MAX_HITFIT

template<class AElectron , class AMuon , class AJet , class AMet >
const unsigned int hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MAX_HITFIT = 1680
static

Maximum number of HitFit permutation in each event.

Definition at line 495 of file RunHitFit.h.

◆ MAX_HITFIT_JET

template<class AElectron , class AMuon , class AJet , class AMet >
const unsigned int hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MAX_HITFIT_JET = 8
static

Maximum number of jet as input to HitFit in each event

Definition at line 490 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::AddJet(), and hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation().

◆ MAX_HITFIT_VAR

template<class AElectron , class AMuon , class AJet , class AMet >
const unsigned int hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MAX_HITFIT_VAR = 32
static

Maximum number of fitted variables in HitFit in each event

Definition at line 500 of file RunHitFit.h.

◆ MIN_HITFIT_JET

template<class AElectron , class AMuon , class AJet , class AMet >
const unsigned int hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MIN_HITFIT_JET = 4
static

Minimum number of jet as input to HitFit in Tt event

Definition at line 480 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation().

◆ MIN_HITFIT_TTH

template<class AElectron , class AMuon , class AJet , class AMet >
const unsigned int hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::MIN_HITFIT_TTH = 6
static

Minimum number of jet as input to HitFit in TtH event

Definition at line 485 of file RunHitFit.h.

Referenced by hitfit::RunHitFit< AElectron, AMuon, AJet, AMet >::FitAllPermutation().