CMS 3D CMS Logo

PFCandConnector.h
Go to the documentation of this file.
1 #ifndef PFProducer_PFCandConnector_H_
2 #define PFProducer_PFCandConnector_H_
3 
5 
7 
9 
11 // \author : M. Gouzevitch
12 // \date : May 2010
13 
15 
17 
18  public :
19 
20  PFCandConnector(bool debug=false)
21  : debug_(debug)
22  {
23  bCorrect_ = false;
24  bCalibPrimary_ = false;
25 
26  fConst_.push_back(1), fConst_.push_back(0);
27  fNorm_.push_back(0), fNorm_.push_back(0);
28  fExp_.push_back(0);
29 
32  ptErrorSecondary_ = 0.;
33  }
34 
36 
37  bool bCorrect, bCalibPrimary;
39  std::vector<double> nuclCalibFactors;
40 
42  bCorrect = iCfgCandConnector.getParameter<bool>("bCorrect");
44  bCalibPrimary = iCfgCandConnector.getParameter<bool>("bCalibPrimary");
45 
46  if(iCfgCandConnector.exists("dptRel_PrimaryTrack")) dptRel_PrimaryTrack = iCfgCandConnector.getParameter<double>("dptRel_PrimaryTrack");
47  else { edm::LogWarning("PFCandConnector") << "dptRel_PrimaryTrack doesn't exist. Setting a default safe value 0" << std::endl; dptRel_PrimaryTrack = 0;}
48 
49  if(iCfgCandConnector.exists("dptRel_MergedTrack")) dptRel_MergedTrack = iCfgCandConnector.getParameter<double>("dptRel_MergedTrack");
50  else { edm::LogWarning("PFCandConnector") << "dptRel_MergedTrack doesn't exist. Setting a default safe value 0" << std::endl; dptRel_MergedTrack = 0;}
51 
52  if(iCfgCandConnector.exists("ptErrorSecondary")) ptErrorSecondary = iCfgCandConnector.getParameter<double>("ptErrorSecondary");
53  else { edm::LogWarning("PFCandConnector") << "ptErrorSecondary doesn't exist. Setting a default safe value 0" << std::endl; ptErrorSecondary = 0;}
54 
55  if(iCfgCandConnector.exists("nuclCalibFactors")) nuclCalibFactors = iCfgCandConnector.getParameter<std::vector<double> >("nuclCalibFactors");
56  else { edm::LogWarning("PFCandConnector") << "nuclear calib factors doesn't exist the factor would not be applyed" << std::endl; }
57 
58  setParameters(bCorrect, bCalibPrimary, dptRel_PrimaryTrack, dptRel_MergedTrack, ptErrorSecondary, nuclCalibFactors);
59 
60  }
61 
62 
63  void setParameters(bool bCorrect, bool bCalibPrimary, double dptRel_PrimaryTrack, double dptRel_MergedTrack, double ptErrorSecondary, const std::vector<double>& nuclCalibFactors);
64 
65 
66 
68 
69 
70 
71  private :
72 
74  void analyseNuclearWPrim(reco::PFCandidateCollection&, std::vector<bool> &, unsigned int) const;
75 
77  void analyseNuclearWSec(reco::PFCandidateCollection&, std::vector<bool> &, unsigned int) const;
78 
79  bool isPrimaryNucl( const reco::PFCandidate& pf ) const;
80 
81  bool isSecondaryNucl( const reco::PFCandidate& pf ) const;
82 
84  double rescaleFactor( const double pt, const double cFrac ) const;
85 
87  const bool debug_;
88  bool bCorrect_;
89 
92  std::vector< double > fConst_;
93  std::vector< double > fNorm_;
94  std::vector< double > fExp_;
95 
96  // Maximal accepatble uncertainty on primary tracks to usem them as MC truth for calibration
100 
102  static const double pion_mass2;
105 };
106 
107 #endif
std::vector< double > fConst_
T getParameter(std::string const &) const
PFCandConnector(bool debug=false)
bool isPrimaryNucl(const reco::PFCandidate &pf) const
bool isSecondaryNucl(const reco::PFCandidate &pf) const
void analyseNuclearWSec(reco::PFCandidateCollection &, std::vector< bool > &, unsigned int) const
Analyse nuclear interactions where a secondary track is present.
double rescaleFactor(const double pt, const double cFrac) const
Return a calibration factor for a reconstructed nuclear interaction.
bool exists(std::string const &parameterName) const
checks if a parameter exists
static const reco::PFCandidate::Flags fT_FROM_DISP_
std::vector< double > fNorm_
static const reco::PFCandidate::Flags fT_TO_DISP_
std::vector< double > fExp_
Based on a class from : V. Roberfroid, February 2008.
double ptErrorSecondary_
reco::PFCandidateCollection connect(reco::PFCandidateCollection &pfCand) const
void analyseNuclearWPrim(reco::PFCandidateCollection &, std::vector< bool > &, unsigned int) const
Analyse nuclear interactions where a primary or merged track is present.
static const double pion_mass2
Useful constants.
const bool debug_
Parameters.
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
#define debug
Definition: HDRShower.cc:19
double dptRel_PrimaryTrack_
bool bCalibPrimary_
Calibration parameters for the reconstructed nuclear interactions.
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:40
void setParameters(const edm::ParameterSet &iCfgCandConnector)
double dptRel_MergedTrack_