CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TtFullHadSignalSel.cc
Go to the documentation of this file.
5 #include "TLorentzVector.h"
6 #include "TVector3.h"
7 
9 {
10 }
11 
12 std::vector<math::XYZVector> makeVecForEventShape(std::vector<pat::Jet> jets, bool only6Jets = true, ROOT::Math::Boost boost = ROOT::Math::Boost(0.,0.,0.)) {
13  std::vector<math::XYZVector> p;
14  bool doBoost = (boost == ROOT::Math::Boost(0.,0.,0.)) ? false : true;
15  for(std::vector<pat::Jet>::const_iterator jet = jets.begin(); jet != jets.end(); ++jet){
16  math::XYZVector Vjet;
17  if(doBoost){
18  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > Ljet(jet->px(), jet->py(), jet->pz(), jet->energy());
19  Vjet = math::XYZVector(boost(Ljet).Px(), boost(Ljet).Py(), boost(Ljet).Pz());
20  }
21  else
22  Vjet = math::XYZVector(jet->px(), jet->py(), jet->pz());
23  p.push_back(Vjet);
24  if(only6Jets && jet-jets.begin()==5) break;
25  }
26  return p;
27 }
28 
29 TtFullHadSignalSel::TtFullHadSignalSel(const std::vector<pat::Jet>& jets)
30 {
31 
32  H_ = -1.;
33  Ht_ = -1.;
34  Ht123_ = -1.;
35  Ht3jet_ = -1.;
36  Et56_ = -1.;
37  sqrt_s_ = -1.;
38  M3_ = -1.;
39 
40  TCHE_Bjets_ = 0.;
41  TCHP_Bjets_ = 0.;
42  SSVHE_Bjets_ = 0.;
43  SSVHP_Bjets_ = 0.;
44  CSV_Bjets_ = 0.;
45  CSVMVA_Bjets_ = 0.;
46  SM_Bjets_ = 0.;
47 
48  jets_etaetaMoment_ = 0.;
49  jets_etaphiMoment_ = 0.;
50  jets_phiphiMoment_ = 0.;
51 
55 
59 
60  aplanarity_ = -1.;
61  sphericity_ = -1.;
62  circularity_ = -1.;
63  isotropy_ = -1.;
64  C_ = -1.;
65  D_ = -1.;
66 
67  aplanarityAll_ = -1.;
68  sphericityAll_ = -1.;
69  circularityAll_ = -1.;
70  isotropyAll_ = -1.;
71  CAll_ = -1.;
72  DAll_ = -1.;
73 
74  aplanarityAllCMS_ = -1.;
75  sphericityAllCMS_ = -1.;
76  circularityAllCMS_ = -1.;
77  isotropyAllCMS_ = -1.;
78  CAllCMS_ = -1.;
79  DAllCMS_ = -1.;
80 
81  thrust_ = -1.;
82  thrustCMS_ = -1.;
83 
84  TCHE_BJet_Discs_ = std::vector<double>(0);
85  TCHP_BJet_Discs_ = std::vector<double>(0);
86  SSVHE_BJet_Discs_ = std::vector<double>(0);
87  SSVHP_BJet_Discs_ = std::vector<double>(0);
88  CSV_BJet_Discs_ = std::vector<double>(0);
89  CSVMVA_BJet_Discs_ = std::vector<double>(0);
90  SM_BJet_Discs_ = std::vector<double>(0);
91 
92  pts_ = std::vector<double>(0);
93  EtSin2Thetas_ = std::vector<double>(0);
94  thetas_ = std::vector<double>(0);
95  thetaStars_ = std::vector<double>(0);
96  EtStars_ = std::vector<double>(0);
97 
98  EtSin2Theta3jet_ = 0.;
99  theta3jet_ = 0.;
100  thetaStar3jet_ = 0.;
101  sinTheta3jet_ = 0.;
102  sinThetaStar3jet_ = 0.;
103  EtStar3jet_ = 0.;
104 
105  etaetaMoments_ = std::vector<double>(0);
106  etaphiMoments_ = std::vector<double>(0);
107  phiphiMoments_ = std::vector<double>(0);
108 
109  etaetaMomentsLogEt_ = std::vector<double>(0);
110  etaphiMomentsLogEt_ = std::vector<double>(0);
111  phiphiMomentsLogEt_ = std::vector<double>(0);
112 
113  etaetaMomentsMoment_ = std::vector<double>(0);
114  etaphiMomentsMoment_ = std::vector<double>(0);
115  phiphiMomentsMoment_ = std::vector<double>(0);
116 
117  etaetaMomentsMomentLogEt_ = std::vector<double>(0);
118  etaphiMomentsMomentLogEt_ = std::vector<double>(0);
119  phiphiMomentsMomentLogEt_ = std::vector<double>(0);
120 
121  etaetaMomentsNoB_ = std::vector<double>(0);
122  etaphiMomentsNoB_ = std::vector<double>(0);
123  phiphiMomentsNoB_ = std::vector<double>(0);
124 
125  dR_ = std::vector<double>(0);
126  dRMass_ = std::vector<double>(0);
127  dRAngle_ = std::vector<double>(0);
128 
129  dR3Jets_ = std::vector<double>(0);
130  dR3JetsMass_ = std::vector<double>(0);
131 
132  massDiffMWCands_ = std::vector<double>(0);
133 
134  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > totalSystem(0.,0.,0.,0.);
135 
136  std::vector< std::pair< double, std::vector<unsigned short> > > dRs(0);
137  std::vector< std::pair< double, std::vector<unsigned short> > > dRs3Jets(0);
138 
139  std::vector< std::pair< double, std::vector<unsigned short> > > M3s(0);
140 
141  std::vector<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > > fourVectors(0);
142 
143  unsigned short nonBJets = 0;
144  for(std::vector<pat::Jet>::const_iterator jet = jets.begin(); jet != jets.end(); ++jet){
145 
146  H_ += jet->energy();
147  Ht_ += jet->et();
148 
149  if(jet - jets.begin() < 3){
150  Ht123_ += jet->et();
151  }
152  if(jet - jets.begin() == 4 || jet - jets.begin() == 5)
153  Et56_ += jet->et();
154 
155  if(jet - jets.begin() > 1){
156  Ht3jet_ += jet->et();
157  EtSin2Theta3jet_ += jet->et()*pow(sin(jet->theta()),2);
158  theta3jet_ += (jet->theta() > M_PI/2.)? (M_PI - jet->theta()) : jet->theta();
159  sinTheta3jet_ += sin(jet->theta());
160  }
161 
162  TCHE_BJet_Discs_ .push_back( jet->bDiscriminator("trackCountingHighEffBJetTags") );
163  TCHP_BJet_Discs_ .push_back( jet->bDiscriminator("trackCountingHighPurBJetTags") );
164  SSVHE_BJet_Discs_ .push_back( jet->bDiscriminator("simpleSecondaryVertexHighEffBJetTags") );
165  SSVHP_BJet_Discs_ .push_back( jet->bDiscriminator("simpleSecondaryVertexHighPurBJetTags") );
166  CSV_BJet_Discs_ .push_back( jet->bDiscriminator("combinedSecondaryVertexBJetTags") );
167  CSVMVA_BJet_Discs_.push_back( jet->bDiscriminator("combinedSecondaryVertexMVABJetTags") );
168  SM_BJet_Discs_ .push_back( jet->bDiscriminator("softMuonBJetTags") );
169 
170  pts_ .push_back(jet->pt());
171  EtSin2Thetas_.push_back(jet->et()*pow(sin(jet->theta()),2));
172  thetas_ .push_back( (jet->theta() > M_PI/2.)? (M_PI - jet->theta()) : jet->theta() );
173 
174  fourVectors.push_back(jet->p4());
175 
176  if(jet->bDiscriminator("trackCountingHighEffBJetTags") > 3.3 ) ++TCHE_Bjets_;
177  if(jet->bDiscriminator("trackCountingHighPurBJetTags") > 3.41 ) ++TCHP_Bjets_;
178  if(jet->bDiscriminator("simpleSecondaryVertexHighEffBJetTags") > 1.74 ) ++SSVHE_Bjets_;
179  if(jet->bDiscriminator("simpleSecondaryVertexHighPurBJetTags") > 2.0 ) ++SSVHP_Bjets_;
180  if(jet->bDiscriminator("combinedSecondaryVertexBJetTags") > 0.75 ) ++CSV_Bjets_;
181  if(jet->bDiscriminator("combinedSecondaryVertexMVABJetTags") > 0.75 ) ++CSVMVA_Bjets_;
182  if(jet->bDiscriminator("softMuonBJetTags") > 0.3 ) ++SM_Bjets_;
183 
184  if(jet->nConstituents() > 0){
185  //if( jet->daughterPtr(0).productGetter()->getIt(jet->daughterPtr(0).id()) != 0 ){
186  etaetaMoments_.push_back( jet->etaetaMoment() );
187  etaphiMoments_.push_back(std::abs(jet->etaphiMoment()));
188  phiphiMoments_.push_back( jet->phiphiMoment() );
189 
190  jets_etaetaMoment_ += jet->etaetaMoment();
191  jets_etaphiMoment_ += std::abs(jet->etaphiMoment());
192  jets_phiphiMoment_ += jet->phiphiMoment();
193 
194  etaetaMomentsLogEt_.push_back( jet->etaetaMoment() *log(jet->et()));
195  etaphiMomentsLogEt_.push_back(std::abs(jet->etaphiMoment())*log(jet->et()));
196  phiphiMomentsLogEt_.push_back( jet->phiphiMoment() *log(jet->et()));
197 
198  jets_etaetaMomentLogEt_ += jet->etaetaMoment() *log(jet->et());
199  jets_etaphiMomentLogEt_ += std::abs(jet->etaphiMoment())*log(jet->et());
200  jets_phiphiMomentLogEt_ += jet->phiphiMoment() *log(jet->et());
201 
202  if(jet->bDiscriminator("trackCountingHighEffBJetTags") < 3.3 && jet->bDiscriminator("trackCountingHighPurBJetTags") < 1.93 &&
203  jet->bDiscriminator("simpleSecondaryVertexHighEffBJetTags") < 1.74 && jet->bDiscriminator("simpleSecondaryVertexHighPurBJetTags") < 2.0 ){
204 
205  ++nonBJets;
206 
207  etaetaMomentsNoB_.push_back( jet->etaetaMoment() );
208  etaphiMomentsNoB_.push_back(std::abs(jet->etaphiMoment()));
209  phiphiMomentsNoB_.push_back( jet->phiphiMoment() );
210 
211  jets_etaetaMomentNoB_ += jet->etaetaMoment();
212  jets_etaphiMomentNoB_ += std::abs(jet->etaphiMoment());
213  jets_phiphiMomentNoB_ += jet->phiphiMoment();
214  }
215  //}
216  }
217 
218  for(std::vector<pat::Jet>::const_iterator jet2 = jet+1; jet2 != jets.end(); ++jet2){
219  unsigned short comb2A[2] = { (unsigned short)(jet-jets.begin()) , (unsigned short)(jet2-jets.begin()) };
220  std::vector<unsigned short> comb2(comb2A, comb2A + sizeof(comb2A) / sizeof(unsigned short));
221  dRs.push_back( std::make_pair( deltaR( jet->phi(), jet->eta(), jet2->phi(), jet2->eta() ), comb2 ) );
222 
223  for(std::vector<pat::Jet>::const_iterator jet3 = jet2+1; jet3 != jets.end(); ++jet3){
224  unsigned short comb3A[3] = { (unsigned short)(jet-jets.begin()) , (unsigned short)(jet2-jets.begin()) , (unsigned short)(jet3-jets.begin()) };
225  std::vector<unsigned short> comb3(comb3A, comb3A + sizeof(comb3A) / sizeof(unsigned short));
226  double dR1 = deltaR( jet ->eta(), jet ->phi(), jet2->eta(), jet2->phi() );
227  double dR2 = deltaR( jet ->eta(), jet ->phi(), jet3->eta(), jet3->phi() );
228  double dR3 = deltaR( jet2->eta(), jet2->phi(), jet3->eta(), jet3->phi() );
229  dRs3Jets.push_back( std::make_pair( dR1+dR2+dR3, comb3 ) );
230  M3s.push_back( std::make_pair( ( jet->p4() + jet2->p4() + jet3->p4() ).pt(), comb3 ) );
231  }
232  }
233 
234  totalSystem += jet->p4();
235  }
236 
237  ROOT::Math::Boost CoMBoostTotal(totalSystem.BoostToCM());
238  std::vector<reco::LeafCandidate> boostedJets;
239 
240  for(std::vector<pat::Jet>::const_iterator jet = jets.begin(); jet != jets.end(); ++jet){
241  boostedJets.push_back(reco::LeafCandidate(jet->charge(), CoMBoostTotal(jet->p4()), jet->vertex(), jet->pdgId(), jet->status(), true));
242  }
243 
244  EtSin2Theta3jet_ /= ((double)(jets.size()-3));
245  theta3jet_ /= ((double)(jets.size()-3));
246  sinTheta3jet_ /= ((double)(jets.size()-3));
247 
248  jets_etaetaMoment_ /= (double)jets.size();
249  jets_etaphiMoment_ /= (double)jets.size();
250  jets_phiphiMoment_ /= (double)jets.size();
251 
252  jets_etaetaMomentLogEt_ /= (double)jets.size();
253  jets_etaphiMomentLogEt_ /= (double)jets.size();
254  jets_phiphiMomentLogEt_ /= (double)jets.size();
255 
256  if(nonBJets){
257  jets_etaetaMomentNoB_ /= (double)nonBJets;
258  jets_etaphiMomentNoB_ /= (double)nonBJets;
259  jets_phiphiMomentNoB_ /= (double)nonBJets;
260  }
261 
262  for(unsigned short i = 0 ; i < etaetaMoments_.size() ; ++i){
263  etaetaMomentsMoment_.push_back(etaetaMoments_.at(i)/jets_etaetaMoment_);
264  etaphiMomentsMoment_.push_back(etaphiMoments_.at(i)/jets_etaphiMoment_);
265  phiphiMomentsMoment_.push_back(phiphiMoments_.at(i)/jets_phiphiMoment_);
266 
267  etaetaMomentsMomentLogEt_.push_back(etaetaMomentsLogEt_.at(i)/jets_etaetaMomentLogEt_);
268  etaphiMomentsMomentLogEt_.push_back(etaphiMomentsLogEt_.at(i)/jets_etaphiMomentLogEt_);
269  phiphiMomentsMomentLogEt_.push_back(phiphiMomentsLogEt_.at(i)/jets_phiphiMomentLogEt_);
270  }
271 
272  std::sort(dRs .begin(), dRs .end());
273  std::sort(dRs3Jets.begin(), dRs3Jets.end());
274 
275  for(std::vector< std::pair< double, std::vector<unsigned short> > >::const_iterator dR = dRs.begin(); dR != dRs.end(); ++dR){
276  dR_.push_back(dR->first);
277  dRMass_.push_back((jets.at(dR->second.at(0)).p4()+jets.at(dR->second.at(1)).p4()).mass());
278 
279  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > wHypo = jets.at(dR->second.at(0)).p4()+jets.at(dR->second.at(1)).p4();
280  TLorentzVector wHypoHelper(wHypo.Px(), wHypo.Py(), wHypo.Pz(), wHypo.E());
281  wHypoHelper.SetVectM(TVector3(wHypo.Px(), wHypo.Py(), wHypo.Pz()), 80.4);
282  wHypo.SetPxPyPzE(wHypoHelper.Px(), wHypoHelper.Py(), wHypoHelper.Pz(), wHypoHelper.E());
283  ROOT::Math::Boost CoMBoostWHypo(wHypo.BoostToCM());
284  dRAngle_.push_back(ROOT::Math::VectorUtil::Angle(CoMBoostWHypo(jets.at(dR->second.at(0)).p4()), CoMBoostWHypo(jets.at(dR->second.at(1)).p4())));
285  }
286 
287  for(std::vector< std::pair< double, std::vector<unsigned short> > >::const_iterator dR = dRs3Jets.begin(); dR != dRs3Jets.end(); ++dR){
288  dR3Jets_.push_back(dR->first);
289  dR3JetsMass_.push_back((jets.at(dR->second.at(0)).p4()+jets.at(dR->second.at(1)).p4()+jets.at(dR->second.at(2)).p4()).mass());
290  }
291 
292  std::vector< std::pair< double, unsigned short > > massDiff2W;
293 
294  for(std::vector< double >::const_iterator mass = dRMass_.begin(); mass != dRMass_.end(); ++mass){
295  massDiff2W.push_back(std::make_pair(std::abs((*mass)-80.4), mass - dRMass_.begin()));
296  }
297 
298  std::sort(massDiff2W.begin(), massDiff2W.end());
299 
300  //std::vector<std::pair< double, std::vector<unsigned short> > > massDiff;
301 
302  for(std::vector< std::pair< double, unsigned short > >::const_iterator i = massDiff2W.begin(); i != massDiff2W.end(); ++i){
303  unsigned int mass1 = i->second;
304  for(std::vector< std::pair< double, unsigned short > >::const_iterator j = i + 1; j != massDiff2W.end(); ++j){
305  unsigned int mass2 = j->second;
306  if(dRs.at(mass1).second.at(0) != dRs.at(mass2).second.at(0) && dRs.at(mass1).second.at(0) != dRs.at(mass2).second.at(1) &&
307  dRs.at(mass1).second.at(1) != dRs.at(mass2).second.at(0) && dRs.at(mass1).second.at(1) != dRs.at(mass2).second.at(1)){
308  //unsigned short combA[2] = { mass1 , mass2 };
309  //std::vector<unsigned short> comb(combA, combA + sizeof(combA) / sizeof(unsigned short));
310  //massDiff.push_back(std::make_pair(std::abs(dRMass_.at(mass1)-dRMass_.at(mass2)), comb));
311  massDiffMWCands_.push_back(std::abs(dRMass_.at(mass1)-dRMass_.at(mass2)));
312  }
313  }
314  if(massDiffMWCands_.size() > 20) break;
315  }
316 
317  //std::sort(massDiff.begin(), massDiff.end());
318  /*
319  for(std::vector<std::pair< double, std::vector<unsigned short> > >::const_iterator diff = massDiff.begin(); diff != massDiff.end() ; ++diff){
320  std::cout << "| " << dRMass_.at(diff->second.at(0)) << "(" << diff->second.at(0)
321  << ") - " << dRMass_.at(diff->second.at(1)) << "(" << diff->second.at(1)
322  << ") | = " << diff->first << std::endl;
323  }
324  std::cout << "---------------------------------------------" << std::endl;
325  */
326 
328  std::sort(TCHP_BJet_Discs_ .begin(), TCHP_BJet_Discs_ .end());
329  std::sort(SSVHE_BJet_Discs_ .begin(), SSVHE_BJet_Discs_ .end());
330  std::sort(SSVHP_BJet_Discs_ .begin(), SSVHP_BJet_Discs_ .end());
331  std::sort(CSV_BJet_Discs_ .begin(), CSV_BJet_Discs_ .end());
332  std::sort(CSVMVA_BJet_Discs_.begin(), CSVMVA_BJet_Discs_.end());
333  std::sort(SM_BJet_Discs_ .begin(), SM_BJet_Discs_ .end());
334 
335  std::sort(etaetaMoments_.begin(), etaetaMoments_.end());
336  std::sort(etaphiMoments_.begin(), etaphiMoments_.end());
337  std::sort(phiphiMoments_.begin(), phiphiMoments_.end());
338 
339  std::sort(etaetaMomentsLogEt_.begin(), etaetaMomentsLogEt_.end());
340  std::sort(etaphiMomentsLogEt_.begin(), etaphiMomentsLogEt_.end());
341  std::sort(phiphiMomentsLogEt_.begin(), phiphiMomentsLogEt_.end());
342 
343  std::sort(etaetaMomentsMoment_.begin(), etaetaMomentsMoment_.end());
344  std::sort(etaphiMomentsMoment_.begin(), etaphiMomentsMoment_.end());
345  std::sort(phiphiMomentsMoment_.begin(), phiphiMomentsMoment_.end());
346 
347  std::sort(etaetaMomentsMomentLogEt_.begin(), etaetaMomentsMomentLogEt_.end());
348  std::sort(etaphiMomentsMomentLogEt_.begin(), etaphiMomentsMomentLogEt_.end());
349  std::sort(phiphiMomentsMomentLogEt_.begin(), phiphiMomentsMomentLogEt_.end());
350 
351  std::sort(etaetaMomentsNoB_.begin(), etaetaMomentsNoB_.end());
352  std::sort(etaphiMomentsNoB_.begin(), etaphiMomentsNoB_.end());
353  std::sort(phiphiMomentsNoB_.begin(), phiphiMomentsNoB_.end());
354 
355  std::sort(M3s.begin(), M3s.end());
356  M3_ = ( jets.at((M3s.back().second.at(0))).p4() + jets.at((M3s.back().second.at(1))).p4() + jets.at((M3s.back().second.at(2))).p4() ).mass();
357 
358  sqrt_s_ = totalSystem.mass();
359 
360  for(std::vector<ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > >::const_iterator jet = fourVectors.begin(); jet != fourVectors.end(); ++jet){
361  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > boostedJet = CoMBoostTotal( *jet );
362  if(jet - fourVectors.begin() > 1){
363  thetaStar3jet_ += (boostedJet.Theta() > M_PI/2.)? (M_PI - boostedJet.Theta()) : boostedJet.Theta();
364  sinThetaStar3jet_ += sin(boostedJet.Theta());
365  EtStar3jet_ += jet->Et() * pow( sin( boostedJet.Theta() ), 2);
366  }
367  thetaStars_.push_back((boostedJet.Theta() > M_PI/2.)? (M_PI - boostedJet.Theta()) : boostedJet.Theta());
368  EtStars_.push_back( jet->Et() * pow( sin( boostedJet.Theta() ), 2) );
369  }
370 
371  theta3jet_ /= (double)fourVectors.size() - 2.;
372  sinTheta3jet_ /= (double)fourVectors.size() - 2.;
373  thetaStar3jet_ /= (double)fourVectors.size() - 2.;
374  sinThetaStar3jet_ /= (double)fourVectors.size() - 2.;
375 
376  EventShapeVariables eventshape(makeVecForEventShape(jets));
377 
378  aplanarity_ = eventshape.aplanarity();
379  sphericity_ = eventshape.sphericity();
380  circularity_ = eventshape.circularity();
381  isotropy_ = eventshape.isotropy();
382  C_ = eventshape.C();
383  D_ = eventshape.D();
384 
385  EventShapeVariables eventshapeAll(makeVecForEventShape(jets,false));
386 
387  aplanarityAll_ = eventshapeAll.aplanarity();
388  sphericityAll_ = eventshapeAll.sphericity();
389  circularityAll_ = eventshapeAll.circularity();
390  isotropyAll_ = eventshapeAll.isotropy();
391  CAll_ = eventshapeAll.C();
392  DAll_ = eventshapeAll.D();
393 
394  EventShapeVariables eventshapeAllCMS(makeVecForEventShape(jets,false,CoMBoostTotal));
395 
396  aplanarityAllCMS_ = eventshapeAllCMS.aplanarity();
397  sphericityAllCMS_ = eventshapeAllCMS.sphericity();
398  circularityAllCMS_ = eventshapeAllCMS.circularity();
399  isotropyAllCMS_ = eventshapeAllCMS.isotropy();
400  CAllCMS_ = eventshapeAllCMS.C();
401  DAllCMS_ = eventshapeAllCMS.D();
402 
403  Thrust thrustAlgo(jets.begin(), jets.end());
404  thrust_ = thrustAlgo.thrust();
405 
406  Thrust thrustAlgoCMS(boostedJets.begin(), boostedJets.end());
407  thrustCMS_ = thrustAlgoCMS.thrust();
408 
409 }
410 
412 {
413 }
std::vector< double > etaetaMoments_
std::vector< double > TCHP_BJet_Discs_
int i
Definition: DBlmapReader.cc:9
double C(double=2.) const
std::vector< double > dR_
std::vector< double > massDiffMWCands_
static std::vector< std::string > checklist log
double circularity(const unsigned int &numberOfSteps=1000) const
std::vector< double > etaphiMoments_
std::vector< double > phiphiMomentsMoment_
std::vector< double > phiphiMomentsLogEt_
Class for the calculation of several event shape variables.
std::vector< double > etaphiMomentsLogEt_
std::vector< double > TCHE_BJet_Discs_
std::vector< double > phiphiMomentsNoB_
std::vector< double > dR3JetsMass_
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
std::vector< double > EtStars_
std::vector< double > etaetaMomentsMomentLogEt_
double pt(unsigned short i) const
std::vector< double > dR3Jets_
T eta() const
std::vector< double > etaphiMomentsMomentLogEt_
std::vector< double > etaetaMomentsLogEt_
std::vector< math::XYZVector > makeVecForEventShape(std::vector< pat::Jet > jets, bool only6Jets=true, ROOT::Math::Boost boost=ROOT::Math::Boost(0., 0., 0.))
double p4[4]
Definition: TauolaWrapper.h:92
vector< PseudoJet > jets
std::vector< double > SM_BJet_Discs_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
#define end
Definition: vmac.h:37
std::vector< double > EtSin2Thetas_
double sphericity(double=2.) const
#define M_PI
std::vector< double > etaetaMomentsNoB_
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
std::vector< double > thetas_
std::vector< double > pts_
Definition: Thrust.h:38
double D(double=2.) const
std::vector< double > dRAngle_
std::vector< double > thetaStars_
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
double isotropy(const unsigned int &numberOfSteps=1000) const
std::vector< double > SSVHP_BJet_Discs_
std::vector< double > CSV_BJet_Discs_
std::vector< double > SSVHE_BJet_Discs_
std::vector< double > CSVMVA_BJet_Discs_
#define begin
Definition: vmac.h:30
std::vector< double > etaphiMomentsNoB_
std::vector< double > etaphiMomentsMoment_
std::vector< double > etaetaMomentsMoment_
std::vector< double > phiphiMoments_
std::vector< double > phiphiMomentsMomentLogEt_
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
double aplanarity(double=2.) const
math::PtEtaPhiELorentzVectorF LorentzVector
std::vector< double > dRMass_
Definition: DDAxes.h:10