CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
hitfit::LeptonTranslatorBase< ALepton > Class Template Reference

Template class of function object to translate lepton physics object to HitFit's Lepjets_Event_Lep object. Users need to write an implementation of a template specialization of this class for their lepton physics object class. Then users combine this header file and their implementation for their analysis code. With this approach, it is possible to use HitFit for different lepton physics object class in different experiments. More...

#include <LeptonTranslatorBase.h>

Public Member Functions

template<>
bool CheckEta (const pat::Electron &lepton) const
 
template<>
bool CheckEta (const pat::Muon &lepton) const
 
bool CheckEta (const ALepton &lepton) const
 Check if a lepton has $ \eta $ value which is within the valid $ \eta $ range of the resolution. More...
 
template<>
bool CheckEta (const CLHEP::HepLorentzVector &lepton) const
 
template<>
 LeptonTranslatorBase ()
 
template<>
 LeptonTranslatorBase ()
 
template<>
 LeptonTranslatorBase ()
 
template<>
 LeptonTranslatorBase (const std::string &ifile)
 
template<>
 LeptonTranslatorBase (const std::string &ifile)
 
template<>
 LeptonTranslatorBase (const std::string &ifile)
 
 LeptonTranslatorBase ()
 Default constructor. More...
 
 LeptonTranslatorBase (const std::string &ifile)
 Constructor, instantiate a LeptonTranslatorBase object using the name of and input file in std::string format. More...
 
template<>
Lepjets_Event_Lep operator() (const pat::Electron &lepton, int type, bool useObjEmbRes)
 
template<>
Lepjets_Event_Lep operator() (const pat::Muon &lepton, int type, bool useObjEmbRes)
 
template<>
Lepjets_Event_Lep operator() (const CLHEP::HepLorentzVector &lepton, int type, bool useObjEmbRes)
 
Lepjets_Event_Lep operator() (const ALepton &lepton, int type=hitfit::lepton_label, bool useObjEmbRes=false)
 Convert a lepton physics object of type ALepton into HitFit lepton physics object of type Lepjets_Event_Lep. More...
 
template<>
const EtaDepResolutionresolution () const
 
template<>
const EtaDepResolutionresolution () const
 
template<>
const EtaDepResolutionresolution () const
 
const EtaDepResolutionresolution () const
 Return the $ \eta- $ dependent resolution of the lepton. More...
 
template<>
 ~LeptonTranslatorBase ()
 
template<>
 ~LeptonTranslatorBase ()
 
template<>
 ~LeptonTranslatorBase ()
 
 ~LeptonTranslatorBase ()
 Destructor. More...
 

Private Attributes

EtaDepResolution resolution_
 The $ \eta- $ dependent resolution. More...
 

Detailed Description

template<class ALepton>
class hitfit::LeptonTranslatorBase< ALepton >

Template class of function object to translate lepton physics object to HitFit's Lepjets_Event_Lep object. Users need to write an implementation of a template specialization of this class for their lepton physics object class. Then users combine this header file and their implementation for their analysis code. With this approach, it is possible to use HitFit for different lepton physics object class in different experiments.

Parameters
ALeptonThe typename of the lepton physics object class to be translated into HitFit's Lepjets_Event_Lep.

Definition at line 45 of file LeptonTranslatorBase.h.

Constructor & Destructor Documentation

template<class ALepton>
hitfit::LeptonTranslatorBase< ALepton >::LeptonTranslatorBase ( )

Default constructor.

template<class ALepton>
hitfit::LeptonTranslatorBase< ALepton >::LeptonTranslatorBase ( const std::string &  ifile)

Constructor, instantiate a LeptonTranslatorBase object using the name of and input file in std::string format.

Parameters
ifileThe path of the input file.
template<class ALepton>
hitfit::LeptonTranslatorBase< ALepton >::~LeptonTranslatorBase ( )

Destructor.

template<>
hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::LeptonTranslatorBase ( )

Definition at line 30 of file CLHEPHitFitTranslator.cc.

References AlCaHLTBitMon_QueryRunRegistry::string.

31 {
32 
33  std::string CMSSW_BASE(getenv("CMSSW_BASE"));
34  std::string resolution_filename = CMSSW_BASE +
35  std::string("/src/TopQuarkAnalysis/TopHitFit/data/exampleElectronResolution.txt");
36  resolution_ = EtaDepResolution(resolution_filename);
37 
38 } // LeptonTranslatorBase<CLHEP::HepLorentzVector>::LeptonTranslatorBase()
EtaDepResolution resolution_
The dependent resolution.
template<>
hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::LeptonTranslatorBase ( const std::string &  ifile)

Definition at line 42 of file CLHEPHitFitTranslator.cc.

References compare_using_db::ifile, and AlCaHLTBitMon_QueryRunRegistry::string.

43 {
44 
45  std::string CMSSW_BASE(getenv("CMSSW_BASE"));
46  std::string resolution_filename;
47 
48  if (ifile.empty()) {
49  resolution_filename = CMSSW_BASE +
50  std::string("/src/TopQuarkAnalysis/TopHitFit/data/exampleElectronResolution.txt");
51  } else {
52  resolution_filename = ifile ;
53  }
54 
55  resolution_ = EtaDepResolution(resolution_filename);
56 
57 } // LeptonTranslatorBase<CLHEP::HepLorentzVector>::LeptonTranslatorBase(const std::string& ifile)
EtaDepResolution resolution_
The dependent resolution.
template<>
hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::~LeptonTranslatorBase ( )

Definition at line 61 of file CLHEPHitFitTranslator.cc.

62 {
63 }

Definition at line 25 of file PatElectronHitFitTranslator.cc.

References AlCaHLTBitMon_QueryRunRegistry::string.

26 {
27 
28  std::string CMSSW_BASE(getenv("CMSSW_BASE"));
29  std::string resolution_filename = CMSSW_BASE +
30  std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
31  resolution_ = EtaDepResolution(resolution_filename);
32 
33 } // LeptonTranslatorBase<pat::Electron>::LeptonTranslatorBase()
EtaDepResolution resolution_
The dependent resolution.
template<>
hitfit::LeptonTranslatorBase< pat::Electron >::LeptonTranslatorBase ( const std::string &  ifile)

Definition at line 37 of file PatElectronHitFitTranslator.cc.

References compare_using_db::ifile, and AlCaHLTBitMon_QueryRunRegistry::string.

38 {
39 
40  std::string CMSSW_BASE(getenv("CMSSW_BASE"));
41  std::string resolution_filename;
42 
43  if (ifile.empty()) {
44  resolution_filename = CMSSW_BASE +
45  std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
46  } else {
47  resolution_filename = ifile ;
48  }
49 
50  resolution_ = EtaDepResolution(resolution_filename);
51 
52 } // LeptonTranslatorBase<pat::Electron>::LeptonTranslatorBase(const std::string& ifile)
EtaDepResolution resolution_
The dependent resolution.

Definition at line 56 of file PatElectronHitFitTranslator.cc.

57 {
58 }

Definition at line 25 of file PatMuonHitFitTranslator.cc.

References AlCaHLTBitMon_QueryRunRegistry::string.

26 {
27 
28  std::string CMSSW_BASE(getenv("CMSSW_BASE"));
29  std::string resolution_filename = CMSSW_BASE +
30  std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleMuonResolution.txt");
31  resolution_ = EtaDepResolution(resolution_filename);
32 
33 } // LeptonTranslatorBase<pat::Muon>::LeptonTranslatorBase()
EtaDepResolution resolution_
The dependent resolution.
template<>
hitfit::LeptonTranslatorBase< pat::Muon >::LeptonTranslatorBase ( const std::string &  ifile)

Definition at line 37 of file PatMuonHitFitTranslator.cc.

References compare_using_db::ifile, and AlCaHLTBitMon_QueryRunRegistry::string.

38 {
39 
40  std::string CMSSW_BASE(getenv("CMSSW_BASE"));
41  std::string resolution_filename;
42 
43  if (ifile.empty()) {
44  resolution_filename = CMSSW_BASE +
45  std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleMuonResolution.txt");
46  } else {
47  resolution_filename = ifile ;
48  }
49 
50  resolution_ = EtaDepResolution(resolution_filename);
51 
52 } // LeptonTranslatorBase<pat::Muon>::LeptonTranslatorBase(const std::string& s)
EtaDepResolution resolution_
The dependent resolution.

Definition at line 56 of file PatMuonHitFitTranslator.cc.

57 {
58 } // LeptonTranslatorBase<pat::Muon>::~LeptonTranslatorBase()

Member Function Documentation

template<>
bool hitfit::LeptonTranslatorBase< pat::Electron >::CheckEta ( const pat::Electron lepton) const

Definition at line 91 of file PatElectronHitFitTranslator.cc.

References pat::Electron::superCluster().

92 {
93  double electron_eta = lepton.superCluster()->eta();
94  return resolution_.CheckEta(electron_eta);
95 }
reco::SuperClusterRef superCluster() const
override the reco::GsfElectron::superCluster method, to access the internal storage of the superclust...
EtaDepResolution resolution_
The dependent resolution.
const bool CheckEta(double eta) const
Check is an input value is within the valid -range of this instance.
template<>
bool hitfit::LeptonTranslatorBase< pat::Muon >::CheckEta ( const pat::Muon lepton) const

Definition at line 91 of file PatMuonHitFitTranslator.cc.

References hitfit::LeptonTranslatorBase< ALepton >::CheckEta(), and reco::LeafCandidate::eta().

92 {
93  return resolution_.CheckEta(lepton.eta());
94 }
virtual double eta() const
momentum pseudorapidity
EtaDepResolution resolution_
The dependent resolution.
const bool CheckEta(double eta) const
Check is an input value is within the valid -range of this instance.
template<class ALepton>
bool hitfit::LeptonTranslatorBase< ALepton >::CheckEta ( const ALepton &  lepton) const

Check if a lepton has $ \eta $ value which is within the valid $ \eta $ range of the resolution.

Parameters
leptonThe lepton whose $ \eta $ value is to be checked.

Referenced by hitfit::LeptonTranslatorBase< ALepton >::CheckEta().

template<>
bool hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::CheckEta ( const CLHEP::HepLorentzVector &  lepton) const

Definition at line 95 of file CLHEPHitFitTranslator.cc.

96 {
97  return resolution_.CheckEta(lepton.eta());
98 }
EtaDepResolution resolution_
The dependent resolution.
const bool CheckEta(double eta) const
Check is an input value is within the valid -range of this instance.
template<>
Lepjets_Event_Lep hitfit::LeptonTranslatorBase< pat::Muon >::operator() ( const pat::Muon lepton,
int  type,
bool  useObjEmbRes 
)

Definition at line 63 of file PatMuonHitFitTranslator.cc.

References reco::LeafCandidate::energy(), reco::LeafCandidate::eta(), metsig::muon, hitfit::muon_label, AlCaHLTBitMon_ParallelJobs::p, reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

66 {
67 
68  Fourvec p(lepton.px(),lepton.py(),lepton.pz(),lepton.energy());
69 
70  double muon_eta = lepton.eta();
71  Vector_Resolution muon_resolution = resolution_.GetResolution(muon_eta);
72 
73  Lepjets_Event_Lep muon(p,
74  muon_label,
75  muon_resolution);
76  return muon;
77 
78 } // Lepjets_Event_Lep LeptonTranslatorBase<pat::Muon>::operator()
Vector_Resolution GetResolution(double &eta) const
Return the corresponding resolution for a value of .
virtual double eta() const
momentum pseudorapidity
virtual double energy() const
energy
CLHEP::HepLorentzVector Fourvec
Typedef for a HepLorentzVector.
Definition: fourvec.h:57
EtaDepResolution resolution_
The dependent resolution.
virtual double px() const
x coordinate of momentum vector
virtual double pz() const
z coordinate of momentum vector
virtual double py() const
y coordinate of momentum vector
template<>
Lepjets_Event_Lep hitfit::LeptonTranslatorBase< pat::Electron >::operator() ( const pat::Electron lepton,
int  type,
bool  useObjEmbRes 
)

Definition at line 63 of file PatElectronHitFitTranslator.cc.

References metsig::electron, hitfit::electron_label, reco::LeafCandidate::energy(), AlCaHLTBitMon_ParallelJobs::p, reco::LeafCandidate::px(), reco::LeafCandidate::py(), reco::LeafCandidate::pz(), and pat::Electron::superCluster().

66 {
67 
68  Fourvec p(lepton.px(),lepton.py(),lepton.pz(),lepton.energy());
69 
70  double electron_eta = lepton.superCluster()->eta();
71  Vector_Resolution electron_resolution = resolution_.GetResolution(electron_eta);
72 
73  Lepjets_Event_Lep electron(p,
75  electron_resolution);
76  return electron;
77 
78 } // Lepjets_Event_Lep LeptonTranslatorBase<pat::Electron>::operator()
Vector_Resolution GetResolution(double &eta) const
Return the corresponding resolution for a value of .
virtual double energy() const
energy
reco::SuperClusterRef superCluster() const
override the reco::GsfElectron::superCluster method, to access the internal storage of the superclust...
CLHEP::HepLorentzVector Fourvec
Typedef for a HepLorentzVector.
Definition: fourvec.h:57
EtaDepResolution resolution_
The dependent resolution.
virtual double px() const
x coordinate of momentum vector
virtual double pz() const
z coordinate of momentum vector
virtual double py() const
y coordinate of momentum vector
template<>
Lepjets_Event_Lep hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::operator() ( const CLHEP::HepLorentzVector &  lepton,
int  type,
bool  useObjEmbRes 
)

Definition at line 68 of file CLHEPHitFitTranslator.cc.

References AlCaHLTBitMon_ParallelJobs::p.

71 {
72 
73  Fourvec p(lepton.px(),lepton.py(),lepton.pz(),lepton.e());
74 
75  double lepton_eta(lepton.eta());
76  Vector_Resolution lepton_resolution = resolution_.GetResolution(lepton_eta);
77  Lepjets_Event_Lep retlep(p,
78  type,
79  lepton_resolution);
80  return retlep;
81 
82 } // Lepjets_Event_Lep LeptonTranslatorBase<CLHEP::HepLorentzVector>::operator()(const CLHEP::HepLorentzVector& lepton)
type
Definition: HCALResponse.h:21
Vector_Resolution GetResolution(double &eta) const
Return the corresponding resolution for a value of .
CLHEP::HepLorentzVector Fourvec
Typedef for a HepLorentzVector.
Definition: fourvec.h:57
EtaDepResolution resolution_
The dependent resolution.
template<class ALepton>
Lepjets_Event_Lep hitfit::LeptonTranslatorBase< ALepton >::operator() ( const ALepton &  lepton,
int  type = hitfit::lepton_label,
bool  useObjEmbRes = false 
)

Convert a lepton physics object of type ALepton into HitFit lepton physics object of type Lepjets_Event_Lep.

Parameters
leptonThe lepton physics object to be translated.
typeThe typecode of the lepton to be translated.
useObjEmbResBoolean 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.
template<>
const EtaDepResolution & hitfit::LeptonTranslatorBase< pat::Muon >::resolution ( ) const

Definition at line 83 of file PatMuonHitFitTranslator.cc.

84 {
85  return resolution_;
86 }
EtaDepResolution resolution_
The dependent resolution.
template<>
const EtaDepResolution & hitfit::LeptonTranslatorBase< pat::Electron >::resolution ( ) const

Definition at line 83 of file PatElectronHitFitTranslator.cc.

84 {
85  return resolution_;
86 }
EtaDepResolution resolution_
The dependent resolution.
template<class ALepton>
const EtaDepResolution& hitfit::LeptonTranslatorBase< ALepton >::resolution ( ) const

Return the $ \eta- $ dependent resolution of the lepton.

template<>
const EtaDepResolution & hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::resolution ( ) const

Definition at line 87 of file CLHEPHitFitTranslator.cc.

88 {
89  return resolution_;
90 }
EtaDepResolution resolution_
The dependent resolution.

Member Data Documentation

template<class ALepton>
EtaDepResolution hitfit::LeptonTranslatorBase< ALepton >::resolution_
private

The $ \eta- $ dependent resolution.

Definition at line 103 of file LeptonTranslatorBase.h.