CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TtHadEvtSolution.h
Go to the documentation of this file.
1 #ifndef TopObjects_TtHadEvtSolution_h
2 #define TopObjects_TtHadEvtSolution_h
3 //
4 // $Id: TtHadEvtSolution.h,v 1.12 2009/11/16 14:06:51 rwolf Exp $
5 // adapted TtSemiEvtSolution.h,v 1.14 2007/07/06 03:07:47 lowette Exp
6 // for fully hadronic channel
7 
8 #include <vector>
9 #include <string>
10 
14 
18 
21 
23 
24  friend class TtHadEvtSolutionMaker;
25  friend class TtFullHadKinFitter;
27  friend class TtHadLRJetCombCalc;
28  /*
29  friend class TtHadLRSignalSelObservables;
30  friend class TtHadLRSignalSelCalc;
31  */
32 
33  public:
34 
36  virtual ~TtHadEvtSolution();
37 
38  //-------------------------------------------
39  // get calibrated base objects
40  //-------------------------------------------
41  pat::Jet getHadb() const;
42  pat::Jet getHadp() const;
43  pat::Jet getHadq() const;
44  pat::Jet getHadbbar() const;
45  pat::Jet getHadj() const;
46  pat::Jet getHadk() const;
47 
48  //-------------------------------------------
49  // get the matched gen particles
50  //-------------------------------------------
51  const edm::RefProd<TtGenEvent> & getGenEvent() const { return theGenEvt_; };
52  const reco::GenParticle * getGenHadb() const { if (!theGenEvt_) return 0; else return theGenEvt_->b(); };
53  const reco::GenParticle * getGenHadbbar() const { if (!theGenEvt_) return 0; else return theGenEvt_->bBar(); };
54  const reco::GenParticle * getGenHadp() const { if (!theGenEvt_) return 0; else return theGenEvt_->daughterQuarkOfWPlus(); };
55  const reco::GenParticle * getGenHadq() const { if (!theGenEvt_) return 0; else return theGenEvt_->daughterQuarkBarOfWPlus(); };
56  const reco::GenParticle * getGenHadj() const { if (!theGenEvt_) return 0; else return theGenEvt_->daughterQuarkOfWMinus(); };
57  const reco::GenParticle * getGenHadk() const { if (!theGenEvt_) return 0; else return theGenEvt_->daughterQuarkBarOfWMinus(); };
58 
59  //-------------------------------------------
60  // get (un-)/calibrated reco objects
61  //-------------------------------------------
62  reco::Particle getRecHadt() const;
66 
67  pat::Jet getRecHadb() const { return this->getHadb().correctedJet("RAW"); };
68  pat::Jet getRecHadbbar() const { return this->getHadbbar().correctedJet("RAW"); };
69  pat::Jet getRecHadp() const { return this->getHadp().correctedJet("RAW"); };
70  pat::Jet getRecHadq() const { return this->getHadq().correctedJet("RAW"); };
71  pat::Jet getRecHadj() const { return this->getHadj().correctedJet("RAW"); };
72  pat::Jet getRecHadk() const { return this->getHadk().correctedJet("RAW"); };
73 
74  reco::Particle getCalHadt() const;
78  pat::Jet getCalHadb() const { return this->getHadb(); };
79  pat::Jet getCalHadbbar() const { return this->getHadbbar(); };
80  pat::Jet getCalHadp() const { return this->getHadp(); };
81  pat::Jet getCalHadq() const { return this->getHadq(); };
82  pat::Jet getCalHadj() const { return this->getHadj(); };
83  pat::Jet getCalHadk() const { return this->getHadk(); };
84 
85  //-------------------------------------------
86  // get objects from kinematic fit
87  //-------------------------------------------
88  reco::Particle getFitHadt() const;
92  pat::Particle getFitHadb() const { return (fitHadb_.size()>0 ? fitHadb_.front() : pat::Particle()); };
93  pat::Particle getFitHadbbar() const { return (fitHadbbar_.size()>0 ? fitHadbbar_.front() : pat::Particle()); };
94  pat::Particle getFitHadp() const { return (fitHadp_.size()>0 ? fitHadp_.front() : pat::Particle()); };
95  pat::Particle getFitHadq() const { return (fitHadq_.size()>0 ? fitHadq_.front() : pat::Particle()); };
96  pat::Particle getFitHadj() const { return (fitHadj_.size()>0 ? fitHadj_.front() : pat::Particle()); };
97  pat::Particle getFitHadk() const { return (fitHadk_.size()>0 ? fitHadk_.front() : pat::Particle()); };
98 
99  //-------------------------------------------
100  // get the selected hadronic decay chain
101  //-------------------------------------------
102  std::string getDecay() const { return decay_; }
103 
104  //-------------------------------------------
105  // get info on the matching
106  //-------------------------------------------
107  double getMCBestSumAngles() const { return sumAnglejp_; };
108  double getMCBestAngleHadp() const { return angleHadp_; };
109  double getMCBestAngleHadq() const { return angleHadq_; };
110  double getMCBestAngleHadj() const { return angleHadj_; };
111  double getMCBestAngleHadk() const { return angleHadk_; };
112  double getMCBestAngleHadb() const { return angleHadb_; };
113  double getMCBestAngleHadbbar() const { return angleHadbbar_; };
114  int getMCChangeW1Q() const { return changeW1Q_; };
115  int getMCChangeW2Q() const { return changeW2Q_;};
116 
117  //-------------------------------------------
118  // get selected kinfit parametrisations of
119  //each type of object
120  //-------------------------------------------
121  int getJetParametrisation() const { return jetParam_; }
122 
123  //-------------------------------------------
124  // get the prob of the chi2 value resulting
125  // from the kinematic fit added chi2 for all
126  // fits
127  //-------------------------------------------
128  double getProbChi2() const { return probChi2_; }
129 
130  //-------------------------------------------
131  // get info on the outcome of the signal
132  // selection LR
133  //-------------------------------------------
134  double getLRSignalEvtObsVal(unsigned int) const;
135  double getLRSignalEvtLRval() const { return lrSignalEvtLRval_; }
136  double getLRSignalEvtProb() const { return lrSignalEvtProb_; }
137 
138  //-------------------------------------------
139  // get info on the outcome of the different
140  //jet combination methods
141  //-------------------------------------------
142  int getMCBestJetComb() const { return mcBestJetComb_; }
143  int getSimpleBestJetComb() const { return simpleBestJetComb_; }
144  int getLRBestJetComb() const { return lrBestJetComb_; }
145  double getLRJetCombObsVal(unsigned int) const;
146  double getLRJetCombLRval() const { return lrJetCombLRval_; }
147  double getLRJetCombProb() const { return lrJetCombProb_; }
148 
149  //protected: seems to cause compile error, check!!!
150 
151  //-------------------------------------------
152  // set the generated event
153  //-------------------------------------------
154  void setGenEvt(const edm::Handle<TtGenEvent> & aGenEvt);
155 
156  //-------------------------------------------
157  // set the basic objects
158  //-------------------------------------------
159  void setJetCorrectionScheme(int scheme) { jetCorrScheme_ = scheme; };
160  void setHadp(const edm::Handle<std::vector<pat::Jet> > & jet, int i)
162  void setHadq(const edm::Handle<std::vector<pat::Jet> > & jet, int i)
164  void setHadj(const edm::Handle<std::vector<pat::Jet> > & jet, int i)
166  void setHadk(const edm::Handle<std::vector<pat::Jet> > & jet, int i)
168  void setHadb(const edm::Handle<std::vector<pat::Jet> > & jet, int i)
170  void setHadbbar(const edm::Handle<std::vector<pat::Jet> > & jet, int i)
172 
173  //-------------------------------------------
174  // set the fitted objects
175  //-------------------------------------------
176  void setFitHadp(const pat::Particle & aFitHadp) { fitHadp_.clear(); fitHadp_.push_back(aFitHadp); };
177  void setFitHadq(const pat::Particle & aFitHadq) { fitHadq_.clear(); fitHadq_.push_back(aFitHadq); };
178  void setFitHadj(const pat::Particle & aFitHadj) { fitHadj_.clear(); fitHadj_.push_back(aFitHadj); };
179  void setFitHadk(const pat::Particle & aFitHadk) { fitHadk_.clear(); fitHadk_.push_back(aFitHadk); };
180  void setFitHadb(const pat::Particle & aFitHadb) { fitHadb_.clear(); fitHadb_.push_back(aFitHadb); };
181  void setFitHadbbar(const pat::Particle & aFitHadbbar) { fitHadbbar_.clear(); fitHadbbar_.push_back(aFitHadbbar); };
182 
183  //-------------------------------------------
184  // set matching info
185  //-------------------------------------------
186  void setMCBestSumAngles(double sdr) { sumAnglejp_ = sdr; };
187  void setMCBestAngleHadp(double adr) { angleHadp_ = adr; };
188  void setMCBestAngleHadq(double adr) { angleHadq_ = adr; };
189  void setMCBestAngleHadj(double adr) { angleHadj_ = adr; };
190  void setMCBestAngleHadk(double adr) { angleHadk_ = adr; };
191  void setMCBestAngleHadb(double adr) { angleHadb_ = adr; };
192  void setMCBestAngleHadbbar(double adr) { angleHadbbar_ = adr; };
193  void setMCChangeW1Q(int w1q) { changeW1Q_ = w1q; };
194  void setMCChangeW2Q(int w2q) { changeW2Q_ = w2q; };
195 
196  //-------------------------------------------
197  // methods to set the kinfit parametrisations
198  //of each type of object
199  //-------------------------------------------
200  void setJetParametrisation(int jp) { jetParam_ = jp; };
201 
202  //-------------------------------------------
203  // method to set the prob. of the chi2 value
204  //resulting from the kinematic fit
205  //-------------------------------------------
206  void setProbChi2(double c) { probChi2_ = c; };
207 
208  //-------------------------------------------
209  // methods to set the outcome of the different
210  // jet combination methods
211  //-------------------------------------------
212  void setMCBestJetComb(int mcbs) { mcBestJetComb_ = mcbs; };
213  void setSimpleBestJetComb(int sbs) { simpleBestJetComb_ = sbs; };
214  void setLRBestJetComb(int lrbs) { lrBestJetComb_ = lrbs; };
215  void setLRJetCombObservables(std::vector<std::pair<unsigned int, double> > varval);
216  void setLRJetCombLRval(double clr) {lrJetCombLRval_ = clr;};
217  void setLRJetCombProb(double plr) {lrJetCombProb_ = plr;};
218 
219  //-------------------------------------------
220  // methods to set the outcome of the signal
221  // selection LR
222  //-------------------------------------------
223  void setLRSignalEvtObservables(std::vector<std::pair<unsigned int, double> > varval);
224  void setLRSignalEvtLRval(double clr) {lrSignalEvtLRval_ = clr;};
225  void setLRSignalEvtProb(double plr) {lrSignalEvtProb_ = plr;};
226 
227  private:
228 
229  //-------------------------------------------
230  // particle content
231  //-------------------------------------------
234  std::vector<pat::Particle> fitHadb_, fitHadp_, fitHadq_, fitHadbbar_, fitHadj_, fitHadk_;
235 
236  std::string decay_;
241  double probChi2_;
245  std::vector<std::pair<unsigned int, double> > lrJetCombVarVal_;
246  std::vector<std::pair<unsigned int, double> > lrSignalEvtVarVal_;
247 };
248 
249 #endif
void setSimpleBestJetComb(int sbs)
void setLRJetCombObservables(std::vector< std::pair< unsigned int, double > > varval)
edm::Ref< std::vector< pat::Jet > > hadk_
int getMCChangeW1Q() const
edm::RefProd< TtGenEvent > theGenEvt_
int i
Definition: DBlmapReader.cc:9
void setHadj(const edm::Handle< std::vector< pat::Jet > > &jet, int i)
pat::Jet getCalHadj() const
void setFitHadj(const pat::Particle &aFitHadj)
double getMCBestAngleHadbbar() const
const edm::RefProd< TtGenEvent > & getGenEvent() const
edm::Ref< std::vector< pat::Jet > > hadj_
double getLRSignalEvtObsVal(unsigned int) const
double getMCBestSumAngles() const
void setMCBestAngleHadp(double adr)
Steering class for the overall hadronic top likelihood.
reco::Particle getFitHadW_plus() const
Jet correctedJet(const std::string &level, const std::string &flavor="none", const std::string &set="") const
Definition: Jet.cc:277
void setFitHadb(const pat::Particle &aFitHadb)
pat::Particle getFitHadp() const
pat::Jet getCalHadq() const
std::vector< pat::Particle > fitHadj_
pat::Jet getHadbbar() const
reco::Particle getFitHadW_minus() const
pat::Jet getCalHadp() const
pat::Jet getHadb() const
double getMCBestAngleHadb() const
void setFitHadp(const pat::Particle &aFitHadp)
void setMCBestAngleHadq(double adr)
const reco::GenParticle * getGenHadbbar() const
pat::Jet getHadq() const
const reco::GenParticle * getGenHadq() const
pat::Jet getHadj() const
reco::Particle getCalHadW_minus() const
const reco::GenParticle * getGenHadb() const
reco::Particle getCalHadW_plus() const
reco::Particle getCalHadtbar() const
std::vector< pat::Particle > fitHadp_
void setJetCorrectionScheme(int scheme)
void setProbChi2(double c)
int getSimpleBestJetComb() const
void setGenEvt(const edm::Handle< TtGenEvent > &aGenEvt)
pat::Jet getRecHadq() const
void setHadq(const edm::Handle< std::vector< pat::Jet > > &jet, int i)
reco::Particle getFitHadt() const
reco::Particle getRecHadW_plus() const
int getJetParametrisation() const
pat::Particle getFitHadk() const
std::vector< pat::Particle > fitHadb_
double getLRJetCombObsVal(unsigned int) const
double getProbChi2() const
double getLRSignalEvtLRval() const
void setLRSignalEvtObservables(std::vector< std::pair< unsigned int, double > > varval)
void setMCChangeW2Q(int w2q)
pat::Jet getRecHadbbar() const
const reco::GenParticle * getGenHadp() const
pat::Particle getFitHadj() const
void setLRSignalEvtProb(double plr)
reco::Particle getRecHadt() const
int getMCChangeW2Q() const
const reco::GenParticle * getGenHadk() const
double getMCBestAngleHadk() const
pat::Jet getHadp() const
void setLRJetCombProb(double plr)
pat::Jet getCalHadb() const
void setMCBestAngleHadj(double adr)
double getLRSignalEvtProb() const
pat::Jet getRecHadb() const
pat::Jet getCalHadk() const
double getLRJetCombLRval() const
const reco::GenParticle * getGenHadj() const
void setMCBestSumAngles(double sdr)
virtual ~TtHadEvtSolution()
edm::Ref< std::vector< pat::Jet > > hadb_
pat::Jet getHadk() const
pat::Particle getFitHadb() const
void setHadk(const edm::Handle< std::vector< pat::Jet > > &jet, int i)
double getLRJetCombProb() const
std::vector< std::pair< unsigned int, double > > lrSignalEvtVarVal_
reco::Particle getRecHadW_minus() const
void setLRSignalEvtLRval(double clr)
void setLRBestJetComb(int lrbs)
void setHadp(const edm::Handle< std::vector< pat::Jet > > &jet, int i)
std::string getDecay() const
Analysis-level particle class.
Definition: Particle.h:34
edm::Ref< std::vector< pat::Jet > > hadbbar_
std::vector< pat::Particle > fitHadk_
pat::Particle getFitHadbbar() const
double getMCBestAngleHadp() const
reco::Particle getCalHadt() const
void setFitHadbbar(const pat::Particle &aFitHadbbar)
pat::Jet getRecHadk() const
void setHadbbar(const edm::Handle< std::vector< pat::Jet > > &jet, int i)
Analysis-level calorimeter jet class.
Definition: Jet.h:72
void setFitHadk(const pat::Particle &aFitHadk)
double getMCBestAngleHadq() const
pat::Particle getFitHadq() const
void setMCBestJetComb(int mcbs)
int getLRBestJetComb() const
void setMCChangeW1Q(int w1q)
void setMCBestAngleHadb(double adr)
void setJetParametrisation(int jp)
void setFitHadq(const pat::Particle &aFitHadq)
pat::Jet getRecHadp() const
pat::Jet getRecHadj() const
edm::Ref< std::vector< pat::Jet > > hadp_
reco::Particle getFitHadtbar() const
reco::Particle getRecHadtbar() const
void setLRJetCombLRval(double clr)
void setMCBestAngleHadk(double adr)
void setHadb(const edm::Handle< std::vector< pat::Jet > > &jet, int i)
pat::Jet getCalHadbbar() const
edm::Ref< std::vector< pat::Jet > > hadq_
std::vector< pat::Particle > fitHadbbar_
double getMCBestAngleHadj() const
void setMCBestAngleHadbbar(double adr)
int getMCBestJetComb() const
std::vector< std::pair< unsigned int, double > > lrJetCombVarVal_
std::vector< pat::Particle > fitHadq_