CMS 3D CMS Logo

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>

List of all members.

Public Member Functions

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

Private Attributes

EtaDepResolution resolution_
 The $ \eta- $ dependent resolution.

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 46 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 31 of file CLHEPHitFitTranslator.cc.

{

    std::string CMSSW_BASE(getenv("CMSSW_BASE"));
    std::string resolution_filename = CMSSW_BASE +
        std::string("/src/TopQuarkAnalysis/TopHitFit/data/exampleElectronResolution.txt");
    resolution_ = EtaDepResolution(resolution_filename);

} // LeptonTranslatorBase<CLHEP::HepLorentzVector>::LeptonTranslatorBase()
template<>
hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::LeptonTranslatorBase ( const std::string &  ifile)

Definition at line 43 of file CLHEPHitFitTranslator.cc.

References compare_using_db::ifile.

{

    std::string CMSSW_BASE(getenv("CMSSW_BASE"));
    std::string resolution_filename;

    if (ifile.empty()) {
        resolution_filename = CMSSW_BASE +
        std::string("/src/TopQuarkAnalysis/TopHitFit/data/exampleElectronResolution.txt");
    } else {
        resolution_filename = ifile ;
    }

    resolution_ = EtaDepResolution(resolution_filename);

} // LeptonTranslatorBase<CLHEP::HepLorentzVector>::LeptonTranslatorBase(const std::string& ifile)
template<>
hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::~LeptonTranslatorBase ( )

Definition at line 62 of file CLHEPHitFitTranslator.cc.

{
}

Definition at line 26 of file PatElectronHitFitTranslator.cc.

{

    std::string CMSSW_BASE(getenv("CMSSW_BASE"));
    std::string resolution_filename = CMSSW_BASE +
        std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
    resolution_ = EtaDepResolution(resolution_filename);

} // LeptonTranslatorBase<pat::Electron>::LeptonTranslatorBase()
template<>
hitfit::LeptonTranslatorBase< pat::Electron >::LeptonTranslatorBase ( const std::string &  ifile)

Definition at line 38 of file PatElectronHitFitTranslator.cc.

References compare_using_db::ifile.

{

    std::string CMSSW_BASE(getenv("CMSSW_BASE"));
    std::string resolution_filename;

    if (ifile.empty()) {
        resolution_filename = CMSSW_BASE +
        std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleElectronResolution.txt");
    } else {
        resolution_filename = ifile ;
    }

    resolution_ = EtaDepResolution(resolution_filename);

} // LeptonTranslatorBase<pat::Electron>::LeptonTranslatorBase(const std::string& ifile)

Definition at line 57 of file PatElectronHitFitTranslator.cc.

{
}

Definition at line 26 of file PatMuonHitFitTranslator.cc.

{

    std::string CMSSW_BASE(getenv("CMSSW_BASE"));
    std::string resolution_filename = CMSSW_BASE +
        std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleMuonResolution.txt");
    resolution_ = EtaDepResolution(resolution_filename);

} // LeptonTranslatorBase<pat::Muon>::LeptonTranslatorBase()
template<>
hitfit::LeptonTranslatorBase< pat::Muon >::LeptonTranslatorBase ( const std::string &  ifile)

Definition at line 38 of file PatMuonHitFitTranslator.cc.

References compare_using_db::ifile.

{

    std::string CMSSW_BASE(getenv("CMSSW_BASE"));
    std::string resolution_filename;

    if (ifile.empty()) {
        resolution_filename = CMSSW_BASE +
        std::string("/src/TopQuarkAnalysis/PatHitFit/data/exampleMuonResolution.txt");
    } else {
        resolution_filename = ifile ;
    }

    resolution_ = EtaDepResolution(resolution_filename);

} // LeptonTranslatorBase<pat::Muon>::LeptonTranslatorBase(const std::string& s)

Definition at line 57 of file PatMuonHitFitTranslator.cc.

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

Member Function Documentation

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< pat::Electron >::CheckEta ( const pat::Electron lepton) const

Definition at line 92 of file PatElectronHitFitTranslator.cc.

References pat::Electron::superCluster().

{
    double            electron_eta        = lepton.superCluster()->eta();
    return resolution_.CheckEta(electron_eta);
}
template<>
bool hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::CheckEta ( const CLHEP::HepLorentzVector &  lepton) const

Definition at line 96 of file CLHEPHitFitTranslator.cc.

{
    return resolution_.CheckEta(lepton.eta());
}
template<>
bool hitfit::LeptonTranslatorBase< pat::Muon >::CheckEta ( const pat::Muon lepton) const

Definition at line 92 of file PatMuonHitFitTranslator.cc.

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

{
    return resolution_.CheckEta(lepton.eta());
}
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<>
Lepjets_Event_Lep hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::operator() ( const CLHEP::HepLorentzVector &  lepton,
int  type,
bool  useObjEmbRes 
)

Definition at line 69 of file CLHEPHitFitTranslator.cc.

References AlCaHLTBitMon_ParallelJobs::p.

{

    Fourvec p(lepton.px(),lepton.py(),lepton.pz(),lepton.e());

    double lepton_eta(lepton.eta());
    Vector_Resolution lepton_resolution = resolution_.GetResolution(lepton_eta);
    Lepjets_Event_Lep retlep(p,
                             type,
                             lepton_resolution);
    return retlep;

} // Lepjets_Event_Lep LeptonTranslatorBase<CLHEP::HepLorentzVector>::operator()(const CLHEP::HepLorentzVector& lepton)
template<>
BoundPlane * RodPlaneBuilderFromDet::operator() ( const pat::Muon lepton,
int  type,
bool  useObjEmbRes 
)

Definition at line 64 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().

{

    Fourvec p(lepton.px(),lepton.py(),lepton.pz(),lepton.energy());

    double            muon_eta        = lepton.eta();
    Vector_Resolution muon_resolution = resolution_.GetResolution(muon_eta);

    Lepjets_Event_Lep muon(p,
                           muon_label,
                           muon_resolution);
    return muon;

} // Lepjets_Event_Lep LeptonTranslatorBase<pat::Muon>::operator()
template<>
Lepjets_Event_Lep hitfit::LeptonTranslatorBase< pat::Electron >::operator() ( const pat::Electron lepton,
int  type,
bool  useObjEmbRes 
)

Definition at line 64 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().

{

    Fourvec p(lepton.px(),lepton.py(),lepton.pz(),lepton.energy());

    double            electron_eta        = lepton.superCluster()->eta();
    Vector_Resolution electron_resolution = resolution_.GetResolution(electron_eta);

    Lepjets_Event_Lep electron(p,
                               electron_label,
                               electron_resolution);
    return electron;

} // Lepjets_Event_Lep LeptonTranslatorBase<pat::Electron>::operator()
template<>
const EtaDepResolution & hitfit::LeptonTranslatorBase< pat::Electron >::resolution ( ) const

Definition at line 84 of file PatElectronHitFitTranslator.cc.

{
    return resolution_;
}
template<class ALepton>
const EtaDepResolution& hitfit::LeptonTranslatorBase< ALepton >::resolution ( ) const

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

template<>
const EtaDepResolution & hitfit::LeptonTranslatorBase< pat::Muon >::resolution ( ) const

Definition at line 84 of file PatMuonHitFitTranslator.cc.

{
    return resolution_;
}
template<>
const EtaDepResolution & hitfit::LeptonTranslatorBase< CLHEP::HepLorentzVector >::resolution ( ) const

Definition at line 88 of file CLHEPHitFitTranslator.cc.

{
    return resolution_;
}

Member Data Documentation

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

The $ \eta- $ dependent resolution.

Definition at line 104 of file LeptonTranslatorBase.h.