ATLAS Offline Software
TauCommonDetails.icc
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 ///@file TauCommonDetails.icc
6 ///
7 /// Inline function implementations for tau event details class
8 ///
9 ///Package: Reconstruction/TauEvent
10 ///
11 ///@author Noel Dawe, Thomas Burgess
12 ///
13 /// Created by Thomas Burgess on 2008-10-28.
14 ///
15 /// $Id: TauCommonDetails.icc,v 1.3 2009-02-08 21:25:25 slai Exp $
16 
17 namespace Analysis {
18  template <class stream>
19  void TauCommonDetails::printOn(stream& o) const
20  {
21  o << "TauCommonDetails: {"
22  << "ipZ0SinThetaSigLeadTrk: "<<m_ipZ0SinThetaSigLeadTrk<<";\n"
23  << "etOverPtLeadTrk: "<<m_etOverPtLeadTrk<<";\n"
24  << "etOverPtLeadLooseTrk: "<<m_etOverPtLeadLooseTrk<<";\n"
25  << "leadTrkPt: "<<m_leadTrkPt<<";\n"
26  << "leadLooseTrkPt: "<<m_leadLooseTrkPt<<";\n"
27  << "ipSigLeadTrk: "<<m_ipSigLeadTrk<<";\n"
28  << "ipSigLeadLooseTrk: "<<m_ipSigLeadLooseTrk<<";\n"
29  << "looseTrk: {";
30  for(ElementLinkVector<Rec::TrackParticleContainer>::const_iterator itrk
31  = m_looseTrk.begin(); itrk!=m_looseTrk.end(); ++itrk)
32  o << *(*itrk) << " ";
33  o << "};\n"
34  << "looseConvTrk: {";
35  for(ElementLinkVector<Rec::TrackParticleContainer>::const_iterator itrk
36  = m_looseConvTrk.begin(); itrk!=m_looseConvTrk.end(); ++itrk)
37  o << *(*itrk) << " ";
38  o << "};\n"
39  << "chrgLooseTrk: "<<m_chrgLooseTrk<<";\n"
40  // m_cellEM012Cluster not printed
41  <<"sumPi0Vec: "<<m_sumPi0Vec<<";\n"
42  << "massTrkSys: "<<m_massTrkSys<<";\n"
43  << "trkWidth2: "<<m_trkWidth2<<";\n"
44  << "trFlightPathSig: "<<m_trFlightPathSig<<";\n"
45  << "secVtx: ";
46  if (m_secVtx==0) o<< "0"; else m_secVtx->dump(o);
47  o << ";\n"
48  << "etEflow: "<<m_etEflow<<";\n"
49  << "mEflow: "<<m_mEflow<<";\n"
50 
51 
52  <<"m_Ele_E237E277: "<< m_Ele_E237E277<<";\n"
53  <<"m_Ele_PresamplerFraction: "<< m_Ele_PresamplerFraction<<";\n"
54  <<"m_Ele_ECALFirstFraction: "<< m_Ele_ECALFirstFraction<<";\n"
55 
56  //topocluster ID variables
57  <<"m_numCells: "<< m_numCells<<";\n"
58  <<"m_numTopoClusters: "<< m_numTopoClusters<<";\n"
59  <<"m_numEffTopoClusters: "<< m_numEffTopoClusters<<";\n"
60  <<"m_topoInvMass: "<< m_topoInvMass<<";\n"
61  <<"m_effTopoInvMass: "<< m_effTopoInvMass<<";\n"
62  <<"m_topoMeanDeltaR: "<< m_topoMeanDeltaR<<";\n"
63  <<"m_effTopoMeanDeltaR: "<< m_effTopoMeanDeltaR<<";\n"
64 
65  //
66  //Applicable for calo seeded tau reconstruction
67  //
68 
69  // m_pi0 not printed
70  <<"seedCalo_nIsolLooseTrk: "<<m_seedCalo_nIsolLooseTrk<<";\n"
71  <<"seedCalo_EMRadius: "<<m_seedCalo_EMRadius<<";\n"
72  <<"seedCalo_hadRadius: "<<m_seedCalo_hadRadius<<";\n"
73  <<"seedCalo_etEMAtEMScale: "<<m_seedCalo_etEMAtEMScale<<";\n"
74  <<"seedCalo_etHadAtEMScale: "<<m_seedCalo_etHadAtEMScale<<";\n"
75  <<"seedCalo_isolFrac: "<<m_seedCalo_isolFrac<<";\n"
76  <<"seedCalo_centFrac: "<<m_seedCalo_centFrac<<";\n"
77  <<"seedCalo_stripWidth2: "<<m_seedCalo_stripWidth2<<";\n"
78  <<"seedCalo_nStrip: "<<m_seedCalo_nStrip<<";\n"
79  <<"seedCalo_etEMCalib: "<<m_seedCalo_etEMCalib<<";\n"
80  <<"seedCalo_etHadCalib: "<<m_seedCalo_etHadCalib<<";\n"
81  <<"seedCalo_eta: "<<m_seedCalo_eta<<";\n"
82  <<"seedCalo_phi: "<<m_seedCalo_phi<<";\n"
83  <<"seedCalo_trkAvgDist: "<<m_seedCalo_trkAvgDist<<";\n"
84  <<"seedCalo_trkRmsDist: "<<m_seedCalo_trkRmsDist<<";\n"
85  <<"seedCalo_lead2ClusterEOverAllClusterE: "<<m_seedCalo_lead2ClusterEOverAllClusterE<<";\n"
86  <<"seedCalo_lead3ClusterEOverAllClusterE: "<<m_seedCalo_lead3ClusterEOverAllClusterE<<";\n"
87  <<"seedCalo_caloIso: "<<m_seedCalo_caloIso<<";\n"
88  <<"seedCalo_caloIsoCorrected: "<<m_seedCalo_caloIsoCorrected<<";\n"
89  <<"seedCalo_dRmax: "<<m_seedCalo_dRmax<<";\n"
90 
91  //
92  //Applicable for track seeded tau reconstruction
93  //
94 
95  <<"seedTrk_EMRadius: "<<m_seedTrk_EMRadius<<";\n"
96  <<"seedTrk_isolFrac: "<<m_seedTrk_isolFrac<<";\n"
97  <<"seedTrk_etChrgHadOverSumTrkPt: "
98  <<m_seedTrk_etChrgHadOverSumTrkPt<<";\n"
99  <<"seedTrk_isolFracWide: "<<m_seedTrk_isolFracWide<<";\n"
100  <<"seedTrk_etHadAtEMScale: "<<m_seedTrk_etHadAtEMScale<<";\n"
101  <<"seedTrk_etEMAtEMScale: "<<m_seedTrk_etEMAtEMScale<<";\n"
102  <<"seedTrk_etEMCL: "<<m_seedTrk_etEMCL<<";\n"
103  <<"seedTrk_etChrgEM: "<<m_seedTrk_etChrgEM<<";\n"
104  <<"seedTrk_etNeuEM: "<<m_seedTrk_etNeuEM<<";\n"
105  <<"seedTrk_etResNeuEM: "<<m_seedTrk_etResNeuEM<<";\n"
106  <<"seedTrk_hadLeakEt: "<<m_seedTrk_hadLeakEt<<";\n"
107  << "seedTrk_etChrgEM01Trk: {";
108  std::copy(m_seedTrk_etChrgEM01Trk.begin(),
109  m_seedTrk_etChrgEM01Trk.end(),
110  std::ostream_iterator<double>(o," "));
111  o << "};\n"
112  << "seedTrk_etResChrgEMTrk){";
113  std::copy(m_seedTrk_etResChrgEMTrk.begin(),
114  m_seedTrk_etResChrgEMTrk.end(),
115  std::ostream_iterator<double>(o," "));
116  o << "};\n"
117  <<"seedTrk_sumEMCellEtOverLeadTrkPt: "
118  <<m_seedTrk_sumEMCellEtOverLeadTrkPt<<";\n"
119  <<"seedTrk_secMaxStripEt: "<<m_seedTrk_secMaxStripEt<<";\n"
120  <<"seedTrk_stripWidth2: "<<m_seedTrk_stripWidth2<<";\n"
121  <<"seedTrk_nStrip: "<<m_seedTrk_nStrip<<";\n"
122  <<"seedTrk_etChrgHad: "<<m_seedTrk_etChrgHad<<";\n"
123  <<"seedTrk_nOtherCoreTrk: "<<m_seedTrk_nOtherCoreTrk<<";\n"
124  <<"seedTrk_nIsolTrk: "<<m_seedTrk_nIsolTrk<<";\n"
125  <<"seedTrk_etIsolEM: "<<m_seedTrk_etIsolEM<<";\n"
126  <<"seedTrk_etIsolHad: "<<m_seedTrk_etIsolHad<<";\n"
127  <<"EM_TES_scale: "<<m_EM_TES_scale<<";\n"
128  <<"LC_TES_precalib: "<<m_LC_TES_precalib<<";\n"
129  <<"cellBasedEnergyRing1: "<<m_cellBasedEnergyRing1<<";\n"
130  <<"cellBasedEnergyRing2: "<<m_cellBasedEnergyRing2<<";\n"
131  <<"cellBasedEnergyRing3: "<<m_cellBasedEnergyRing3<<";\n"
132  <<"cellBasedEnergyRing4: "<<m_cellBasedEnergyRing4<<";\n"
133  <<"cellBasedEnergyRing5: "<<m_cellBasedEnergyRing5<<";\n"
134  <<"cellBasedEnergyRing6: "<<m_cellBasedEnergyRing6<<";\n"
135  <<"cellBasedEnergyRing7: "<<m_cellBasedEnergyRing7<<";\n"
136  <<"TRT_NHT_OVER_NLT: " <<m_TRT_NHT_OVER_NLT<<";\n"
137 
138  //Tau Jet Vertex Fraction
139  <<"TauJetVtxFraction: " <<m_TauJetVtxFraction<<";\n"
140 
141  //Track filter and generic pi0 cone
142  <<"TrackFilterProngs: "<<m_TrackFilterProngs<<";\n"
143  <<"TrackFilterQuality: "<<m_TrackFilterQuality<<";\n"
144  <<"Pi0ConeDR: "<<m_Pi0ConeDR<<";\n"
145 
146  //End
147  << "};";
148  }
149 
150  inline bool TauCommonDetails::operator!=(
151  const TauCommonDetails& rhs ) const
152  {
153  return !((*this)==rhs);
154  }
155 
156  /////////////////////////////////////////////////////////////////////
157  //
158  // Common for track and calo seeded tau reconstruction
159  //
160  /////////////////////////////////////////////////////////////////////
161 
162  //-------------------------------------------------------------------------
163  // ipZ0SinThetaSigLeadTrk - Significance of z0SinTheta
164  //-------------------------------------------------------------------------
165 
166  inline double TauCommonDetails::ipZ0SinThetaSigLeadTrk() const
167  {
168  return m_ipZ0SinThetaSigLeadTrk;
169  }
170 
171  inline void TauCommonDetails::setIpZ0SinThetaSigLeadTrk(
172  double significance )
173  {
174  m_ipZ0SinThetaSigLeadTrk = significance;
175  }
176 
177  //-------------------------------------------------------------------------
178  // etOverPtLeadTrk - leading E_T to p_T ratio
179  //-------------------------------------------------------------------------
180 
181  inline double TauCommonDetails::etOverPtLeadTrk() const
182  {
183  return m_etOverPtLeadTrk;
184  }
185 
186  inline void TauCommonDetails::setEtOverPtLeadTrk(double ratio)
187  {
188  m_etOverPtLeadTrk=ratio;
189  }
190 
191  // --------------------------------------------------------------
192  // etOverPtLeadLooseTrk - Tau candidate E_T over leading loose track p_T
193  // --------------------------------------------------------------
194 
195  inline double TauCommonDetails::etOverPtLeadLooseTrk() const
196  {
197  return m_etOverPtLeadLooseTrk;
198  }
199 
200  inline void TauCommonDetails::setEtOverPtLeadLooseTrk(
201  double ratio )
202  {
203  m_etOverPtLeadLooseTrk = ratio;
204  }
205 
206  //-------------------------------------------------------------------------
207  // leadTrkPt - leading track p_T
208  //-------------------------------------------------------------------------
209 
210  inline double TauCommonDetails::leadTrkPt() const
211  {
212  return m_leadTrkPt;
213  }
214 
215  inline void TauCommonDetails::setLeadTrkPt(double pt)
216  {
217  m_leadTrkPt=pt;
218  }
219 
220  //-----------------------------------------------------------------------
221  // leadLooseTrkPt - p_T of leading loose track
222  //-----------------------------------------------------------------------
223 
224  inline double TauCommonDetails::leadLooseTrkPt() const
225  {
226  return m_leadLooseTrkPt;
227  }
228 
229  inline void TauCommonDetails::setLeadLooseTrkPt(
230  double pT )
231  {
232  m_leadLooseTrkPt=pT;
233  }
234 
235  // --------------------------------------------------------------
236  // ipSigLeadTrk - impact parameter significance
237  // --------------------------------------------------------------
238 
239  inline double TauCommonDetails::ipSigLeadTrk() const
240  {
241  return m_ipSigLeadTrk;
242  }
243 
244  inline void TauCommonDetails::setIpSigLeadTrk(
245  double significance )
246  {
247  m_ipSigLeadTrk = significance;
248  }
249 
250  // --------------------------------------------------------------
251  // ipSigLeadLooseTrk - impact parameter significance
252  // --------------------------------------------------------------
253 
254  inline double TauCommonDetails::ipSigLeadLooseTrk() const
255  {
256  return m_ipSigLeadLooseTrk;
257  }
258 
259  inline void TauCommonDetails::setIpSigLeadLooseTrk(
260  double significance )
261  {
262  m_ipSigLeadLooseTrk = significance;
263  }
264 
265  //-----------------------------------------------------------------------
266  // LooseTrk - collection of loose tracks
267  //-----------------------------------------------------------------------
268 
269  inline const Rec::TrackParticle *TauCommonDetails::looseTrk(
270  unsigned int i ) const
271  {
272  if( m_looseTrk.size() <= i )
273  return 0;
274  else if( m_looseTrk[i].isValid() )
275  return *(m_looseTrk[i]);
276  else
277  return 0;
278  }
279 
280  inline const ElementLinkVector<Rec::TrackParticleContainer>&
281  TauCommonDetails::looseTrk() const
282  {
283  return m_looseTrk;
284  }
285 
286  inline ElementLinkVector<Rec::TrackParticleContainer>&
287  TauCommonDetails::looseTrk()
288  {
289  return m_looseTrk;
290  }
291 
292  inline void TauCommonDetails::addLooseTrk(
293  const Rec::TrackParticleContainer *cont,
294  const Rec::TrackParticle *track )
295  {
296  ElementLink<Rec::TrackParticleContainer> link;
297  link.toContainedElement( *cont, track ) ;
298  m_looseTrk.push_back( link ) ;
299  }
300 
301  inline unsigned int TauCommonDetails::nLooseTrk() const
302  {
303  return m_looseTrk.size();
304  }
305 
306  //-----------------------------------------------------------------------
307  // LooseConvTrk - collection of loose conversion tracks
308  //-----------------------------------------------------------------------
309 
310  inline const Rec::TrackParticle *TauCommonDetails::looseConvTrk(
311  unsigned int i ) const
312  {
313  if( m_looseConvTrk.size() <= i )
314  return 0;
315  else if( m_looseConvTrk[i].isValid() )
316  return *(m_looseConvTrk[i]);
317  else
318  return 0;
319  }
320 
321  inline const ElementLinkVector<Rec::TrackParticleContainer>&
322  TauCommonDetails::looseConvTrk() const
323  {
324  return m_looseConvTrk;
325  }
326 
327  inline ElementLinkVector<Rec::TrackParticleContainer>&
328  TauCommonDetails::looseConvTrk()
329  {
330  return m_looseConvTrk;
331  }
332 
333  inline void TauCommonDetails::addLooseConvTrk(
334  const Rec::TrackParticleContainer *cont,
335  const Rec::TrackParticle *track )
336  {
337  ElementLink<Rec::TrackParticleContainer> link;
338  link.toContainedElement( *cont, track ) ;
339  m_looseConvTrk.push_back( link ) ;
340  }
341 
342  inline unsigned int TauCommonDetails::nLooseConvTrk() const
343  {
344  return m_looseConvTrk.size();
345  }
346 
347 
348  inline int TauCommonDetails::nProngLoose() const
349  {
350  return m_looseTrk.size()-m_looseConvTrk.size();
351  }
352 
353  inline bool TauCommonDetails::isLooseConvTrk(
354  unsigned int i) const
355  {
356  if (m_looseTrk.size()<=i) return false;
357  return find (
358  m_looseConvTrk.begin(),
359  m_looseConvTrk.end(),
360  m_looseTrk[i] ) != m_looseConvTrk.end();
361  }
362 
363 
364  //-----------------------------------------------------------------------
365  // Seed Calo Wide Trk - collection of SeedCalo wide tracks
366  //-----------------------------------------------------------------------
367 
368  inline const Rec::TrackParticle *TauCommonDetails::seedCalo_wideTrk(
369  unsigned int i ) const
370  {
371  if( m_seedCalo_wideTrk.size() <= i )
372  return 0;
373  else if( m_seedCalo_wideTrk[i].isValid() )
374  return *(m_seedCalo_wideTrk[i]);
375  else
376  return 0;
377  }
378 
379  inline const ElementLinkVector<Rec::TrackParticleContainer>&
380  TauCommonDetails::seedCalo_wideTrk() const
381  {
382  return m_seedCalo_wideTrk;
383  }
384 
385  inline ElementLinkVector<Rec::TrackParticleContainer>&
386  TauCommonDetails::seedCalo_wideTrk()
387  {
388  return m_seedCalo_wideTrk;
389  }
390 
391  inline void TauCommonDetails::addSeedCalo_wideTrk(
392  const Rec::TrackParticleContainer *cont,
393  const Rec::TrackParticle *track )
394  {
395  ElementLink<Rec::TrackParticleContainer> link;
396  link.toContainedElement( *cont, track ) ;
397  m_seedCalo_wideTrk.push_back( link ) ;
398  }
399 
400  inline unsigned int TauCommonDetails::seedCalo_nWideTrk() const
401  {
402  return m_seedCalo_wideTrk.size();
403  }
404 
405  //-----------------------------------------------------------------------
406  // Seed Trk Wide Trk - collection of seedTrk wide tracks
407  //-----------------------------------------------------------------------
408 
409  inline const Rec::TrackParticle *TauCommonDetails::seedTrk_wideTrk(
410  unsigned int i ) const
411  {
412  if( m_seedTrk_wideTrk.size() <= i )
413  return 0;
414  else if( m_seedTrk_wideTrk[i].isValid() )
415  return *(m_seedTrk_wideTrk[i]);
416  else
417  return 0;
418  }
419 
420  inline const ElementLinkVector<Rec::TrackParticleContainer>&
421  TauCommonDetails::seedTrk_wideTrk() const
422  {
423  return m_seedTrk_wideTrk;
424  }
425 
426  inline ElementLinkVector<Rec::TrackParticleContainer>&
427  TauCommonDetails::seedTrk_wideTrk()
428  {
429  return m_seedTrk_wideTrk;
430  }
431 
432  inline void TauCommonDetails::addSeedTrk_wideTrk(
433  const Rec::TrackParticleContainer *cont,
434  const Rec::TrackParticle *track )
435  {
436  ElementLink<Rec::TrackParticleContainer> link;
437  link.toContainedElement( *cont, track ) ;
438  m_seedTrk_wideTrk.push_back( link ) ;
439  }
440 
441  inline unsigned int TauCommonDetails::seedTrk_nWideTrk() const
442  {
443  return m_seedTrk_wideTrk.size();
444  }
445 
446  //-----------------------------------------------------------------------
447  // OtherTrk - collection of other tracks
448  //-----------------------------------------------------------------------
449 
450  inline const Rec::TrackParticle *TauCommonDetails::otherTrk(
451  unsigned int i ) const
452  {
453  if( m_otherTrk.size() <= i )
454  return 0;
455  else if( m_otherTrk[i].isValid() )
456  return *(m_otherTrk[i]);
457  else
458  return 0;
459  }
460 
461  inline const ElementLinkVector<Rec::TrackParticleContainer>&
462  TauCommonDetails::otherTrk() const
463  {
464  return m_otherTrk;
465  }
466 
467  inline ElementLinkVector<Rec::TrackParticleContainer>&
468  TauCommonDetails::otherTrk()
469  {
470  return m_otherTrk;
471  }
472 
473  inline void TauCommonDetails::addOtherTrk(
474  const Rec::TrackParticleContainer *cont,
475  const Rec::TrackParticle *track )
476  {
477  ElementLink<Rec::TrackParticleContainer> link;
478  link.toContainedElement( *cont, track ) ;
479  m_otherTrk.push_back( link ) ;
480  }
481 
482  inline unsigned int TauCommonDetails::nOtherTrk() const
483  {
484  return m_otherTrk.size();
485  }
486 
487 
488  //-------------------------------------------------------------------------
489  // chrgLooseTrk - charge of loose tracks
490  //-------------------------------------------------------------------------
491 
492  inline double TauCommonDetails::chrgLooseTrk() const
493  {
494  return m_chrgLooseTrk;
495  }
496 
497  inline void TauCommonDetails::setChrgLooseTrk(double charge)
498  {
499  m_chrgLooseTrk = charge;
500  }
501 
502  //-------------------------------------------------------------------------
503  // cellEM0Cluster - EM calorimeter cell cluster
504  //-------------------------------------------------------------------------
505 
506  inline const CaloCluster *TauCommonDetails::cellEM012Cluster() const
507  {
508  //Return cluster if valid cluster is set, 0 otherwise
509  return ( (m_cellEM012Cluster.isValid()) ? (*m_cellEM012Cluster) : 0 );
510  }
511 
512  inline void TauCommonDetails::setCellEM012Cluster(
513  const CaloClusterContainer *cont,
514  const CaloCluster *clust )
515  {
516  //Reset if allready set
517  if( m_cellEM012Cluster.isValid() )
518  m_cellEM012Cluster.reset();
519  m_cellEM012Cluster.toContainedElement( *cont, clust);
520  }
521 
522  inline const ElementLink<CaloClusterContainer>&
523  TauCommonDetails::cellEM012ClusterLink() const
524  {
525  return m_cellEM012Cluster;
526  }
527 
528  inline ElementLink<CaloClusterContainer>&
529  TauCommonDetails::cellEM012ClusterLink()
530  {
531  return m_cellEM012Cluster;
532  }
533 
534  inline void TauCommonDetails::setCellEM012ClusterLink(
535  const ElementLink<CaloClusterContainer> &x)
536  {
537  m_cellEM012Cluster = x;
538  }
539 
540  //-------------------------------------------------------------------------
541  // m_sumPi0Vec - Pi0 energy sum vector
542  //-------------------------------------------------------------------------
543 
544  inline const CLHEP::HepLorentzVector &TauCommonDetails::sumPi0Vec() const
545  {
546  return m_sumPi0Vec;
547  }
548 
549  inline void TauCommonDetails::setSumPi0Vec(
550  const CLHEP::HepLorentzVector &sum )
551  {
552  m_sumPi0Vec = sum;
553  }
554 
555 
556  //-------------------------------------------------------------------------
557  // massTrkSys - track system invariant mass
558  //-------------------------------------------------------------------------
559 
560  inline double TauCommonDetails::massTrkSys() const
561  {
562  return m_massTrkSys;
563  }
564 
565  inline void TauCommonDetails::setMassTrkSys(double mass)
566  {
567  m_massTrkSys = mass;
568  }
569 
570  //-------------------------------------------------------------------------
571  // trkWidth2 - track width ^2
572  //-------------------------------------------------------------------------
573 
574  inline double TauCommonDetails::trkWidth2() const
575  {
576  return m_trkWidth2;
577  }
578 
579  inline void TauCommonDetails::setTrkWidth2(double trkWidth2)
580  {
581  m_trkWidth2 = trkWidth2;
582  }
583 
584  //-------------------------------------------------------------------------
585  // trFlightPathSig - Set Transverse flight path significance
586  //-------------------------------------------------------------------------
587 
588  inline double TauCommonDetails::trFlightPathSig() const
589  {
590  return m_trFlightPathSig;
591  }
592 
593  inline void TauCommonDetails::setTrFlightPathSig(
594  double significance )
595  {
596  m_trFlightPathSig=significance;
597  }
598 
599  //-------------------------------------------------------------------------
600  // secVtx - Set secondary vertex
601  //-------------------------------------------------------------------------
602 
603  inline const Trk::RecVertex* TauCommonDetails::secVtx() const
604  {
605  return m_secVtx;
606  }
607 
608  inline void TauCommonDetails::setSecVtx(
609  const Trk::RecVertex* secVtx )
610  {
611  delete m_secVtx;
612  m_secVtx = secVtx ? new Trk::RecVertex(*secVtx) : nullptr;
613  }
614 
615  //-------------------------------------------------------------------------
616  // etEflow - E_T from energy flow
617  //-------------------------------------------------------------------------
618 
619  inline double TauCommonDetails::etEflow() const
620  {
621  return m_etEflow;
622  }
623 
624  inline void TauCommonDetails::setEtEflow(
625  double et )
626  {
627  m_etEflow = et;
628  }
629 
630  //-------------------------------------------------------------------------
631  // mEflow - mass from energy flow
632  //-------------------------------------------------------------------------
633 
634  inline double TauCommonDetails::mEflow() const
635  {
636  return m_mEflow;
637  }
638 
639  inline void TauCommonDetails::setMEflow(
640  double m )
641  {
642  m_mEflow = m;
643  }
644 
645  //-------------------------------------------------------------------------
646  // pi0 - pi0 cluster
647  //-------------------------------------------------------------------------
648 
649  inline const CaloCluster* TauCommonDetails::pi0(
650  unsigned int i) const
651  {
652  return *m_pi0[i];
653  }
654 
655  inline const ElementLinkVector<CaloClusterContainer>&
656  TauCommonDetails::pi0LinkVec() const
657  {
658  return m_pi0;
659  }
660 
661  inline ElementLinkVector<CaloClusterContainer>&
662  TauCommonDetails::pi0LinkVec()
663  {
664  return m_pi0;
665  }
666 
667  inline unsigned int TauCommonDetails::nPi0() const
668  {
669  return m_pi0.size();
670  }
671 
672  inline void TauCommonDetails::addPi0(
673  const CaloCluster *pi0,
674  const CaloClusterContainer *cont )
675  {
676  ElementLink<CaloClusterContainer> link;
677  if( !cont )
678  link.setElement( pi0 );
679  else
680  link.toContainedElement( *cont, pi0 );
681  m_pi0.push_back( link );
682  }
683 
684 
685  /// name accessors for electron LLH variables
686 
687  /// get ratio of energy in window of 3X7 cells over 7X7 cells in second layer of ECAL
688  inline double TauCommonDetails::ele_E237E277() const
689  {
690  return m_Ele_E237E277;
691  }
692 
693  /// set ratio of energy in window of 3X7 cells over 7X7 cells in second layer of ECAL
694  inline void TauCommonDetails::setEle_E237E277( double value )
695  {
696  m_Ele_E237E277 = value;
697  }
698 
699  /// get fraction of EM cluster energy in presampler
700  inline double TauCommonDetails::ele_PresamplerFraction() const
701  {
702  return m_Ele_PresamplerFraction;
703  }
704 
705  /// set fraction of EM cluster energy in presampler
706  inline void TauCommonDetails::setEle_PresamplerFraction( double value )
707  {
708  m_Ele_PresamplerFraction = value;
709  }
710 
711 
712  /// get fraction of EM cluster energy in first layer of ECAL
713  inline double TauCommonDetails::ele_ECALFirstFraction() const
714  {
715  return m_Ele_ECALFirstFraction;
716  }
717 
718  /// set fraction of EM cluster energy in first layer of ECAL
719  inline void TauCommonDetails::setEle_ECALFirstFraction( double value )
720  {
721  m_Ele_ECALFirstFraction = value;
722  }
723 
724 
725  /// name accessors for topocluster ID variables
726 
727  /// get number of cells associated to tau candidate
728  inline unsigned int TauCommonDetails::numCells() const
729  {
730  return m_numCells;
731  }
732 
733  /// set number of cells associated to tau candidate
734  inline void TauCommonDetails::setNumCells( unsigned int value )
735  {
736  m_numCells = value;
737  }
738 
739 
740  /// get number of topoclusters associated to tau candidate
741  inline unsigned int TauCommonDetails::numTopoClusters() const
742  {
743  return m_numTopoClusters;
744  }
745 
746  /// set number of topoclusters associated to tau candidate
747  inline void TauCommonDetails::setNumTopoClusters( unsigned int value )
748  {
749  m_numTopoClusters = value;
750  }
751 
752 
753  /// get number of topoclusters associated to tau candidate
754  inline double TauCommonDetails::numEffTopoClusters() const
755  {
756  return m_numEffTopoClusters;
757  }
758 
759  /// set number of topoclusters associated to tau candidate
760  inline void TauCommonDetails::setNumEffTopoClusters( double value )
761  {
762  m_numEffTopoClusters = value;
763  }
764 
765 
766 
767  /// get invariant mass of topoclusters associated to tau candidate
768  inline double TauCommonDetails::topoInvMass() const
769  {
770  return m_topoInvMass;
771  }
772 
773  /// set invariant mass of topoclusters associated to tau candidate
774  inline void TauCommonDetails::setTopoInvMass( double value )
775  {
776  m_topoInvMass = value;
777  }
778 
779 
780  /// get invariant mass of effective topoclusters associated to tau candidate
781  inline double TauCommonDetails::effTopoInvMass() const
782  {
783  return m_effTopoInvMass;
784  }
785 
786  /// set invariant mass of effective topoclusters associated to tau candidate
787  inline void TauCommonDetails::setEffTopoInvMass( double value )
788  {
789  m_effTopoInvMass = value;
790  }
791 
792 
793  /// get mean distance to leading topocluster for topoclusters associated to tau candidate
794  inline double TauCommonDetails::topoMeanDeltaR() const
795  {
796  return m_topoMeanDeltaR;
797  }
798 
799  /// set mean distance to leading topocluster for topoclusters associated to tau candidate
800  inline void TauCommonDetails::setTopoMeanDeltaR( double value )
801  {
802  m_topoMeanDeltaR = value;
803  }
804 
805 
806  /// get mean distance to leading topocluster for effective topoclusters associated to tau candidate
807  inline double TauCommonDetails::effTopoMeanDeltaR() const
808  {
809  return m_effTopoMeanDeltaR;
810  }
811 
812  /// set mean distance to leading topocluster for effective topoclusters associated to tau candidate
813  inline void TauCommonDetails::setEffTopoMeanDeltaR( double value )
814  {
815  m_effTopoMeanDeltaR = value;
816  }
817 
818 
819  /////////////////////////////////////////////////////////////////////
820  //
821  // Applicable for calo seeded tau reconstruction
822  //
823  /////////////////////////////////////////////////////////////////////
824 
825  //-------------------------------------------------------------------------
826  // seedCalo_EMRadius - E_T radius
827  //-------------------------------------------------------------------------
828 
829  inline double TauCommonDetails::seedCalo_EMRadius() const
830  {
831  return m_seedCalo_EMRadius;
832  }
833 
834  inline void TauCommonDetails::setSeedCalo_EMRadius(
835  double EMRadius)
836  {
837  m_seedCalo_EMRadius=EMRadius;
838  }
839 
840  //-------------------------------------------------------------------------
841  // seedCaol_hadRadius - Hadron calorimeter radius
842  //-------------------------------------------------------------------------
843 
844  inline double TauCommonDetails::seedCalo_hadRadius() const
845  {
846  return m_seedCalo_hadRadius;
847  }
848 
849  inline void TauCommonDetails::setSeedCalo_hadRadius(
850  double hadRadius)
851  {
852  m_seedCalo_hadRadius=hadRadius;
853  }
854 
855  //-------------------------------------------------------------------------
856  // seedCalo_etEMAtEMScale - EM energy at EM scale
857  //-------------------------------------------------------------------------
858 
859  inline double TauCommonDetails::seedCalo_etEMAtEMScale() const
860  {
861  return m_seedCalo_etEMAtEMScale;
862  }
863 
864  inline void TauCommonDetails::setSeedCalo_etEMAtEMScale(
865  double energy)
866  {
867  m_seedCalo_etEMAtEMScale=energy;
868  }
869 
870  //-------------------------------------------------------------------------
871  // seedCalo_etHadAtEMScale - Hadronic energy at EM scale
872  //-------------------------------------------------------------------------
873 
874  inline double TauCommonDetails::seedCalo_etHadAtEMScale() const
875  {
876  return m_seedCalo_etHadAtEMScale;
877  }
878 
879  inline void TauCommonDetails::setSeedCalo_etHadAtEMScale(
880  double energy)
881  {
882  m_seedCalo_etHadAtEMScale=energy;
883  }
884 
885  //-------------------------------------------------------------------------
886  // seedCalo_isolFrac - Isolation fraction
887  //-------------------------------------------------------------------------
888 
889  inline double TauCommonDetails::seedCalo_isolFrac() const
890  {
891  return m_seedCalo_isolFrac;
892  }
893 
894  inline void TauCommonDetails::setSeedCalo_isolFrac(
895  double isolFrac)
896  {
897  m_seedCalo_isolFrac=isolFrac;
898  }
899 
900  //-------------------------------------------------------------------------
901  // seedCalo_centFrac - Centrality fraction
902  //-------------------------------------------------------------------------
903 
904  inline double TauCommonDetails::seedCalo_centFrac() const
905  {
906  return m_seedCalo_centFrac;
907  }
908 
909  inline void TauCommonDetails::setSeedCalo_centFrac(
910  double centFrac)
911  {
912  m_seedCalo_centFrac=centFrac;
913  }
914 
915  //-------------------------------------------------------------------------
916  // seedCalo_stripWidth2 - Strip width ^2
917  //-------------------------------------------------------------------------
918 
919  inline double TauCommonDetails::seedCalo_stripWidth2() const
920  {
921  return m_seedCalo_stripWidth2;
922  }
923 
924  inline void TauCommonDetails::setSeedCalo_stripWidth2(
925  double stripWidth2)
926  {
927  m_seedCalo_stripWidth2=stripWidth2;
928  }
929 
930  //-------------------------------------------------------------------------
931  // seedCalo_nStrip - Number of strips
932  //-------------------------------------------------------------------------
933 
934  inline int TauCommonDetails::seedCalo_nStrip() const
935  {
936  return m_seedCalo_nStrip;
937  }
938 
939  inline void TauCommonDetails::setSeedCalo_nStrip(
940  int nStrip)
941  {
942  m_seedCalo_nStrip=nStrip;
943  }
944 
945  //-----------------------------------------------------------------------
946  // seedCalo_etEMCalib - Calibrated EM E_T
947  //-----------------------------------------------------------------------
948 
949  inline double TauCommonDetails::seedCalo_etEMCalib() const
950  {
951  return m_seedCalo_etEMCalib;
952  }
953 
954  inline void TauCommonDetails::setSeedCalo_etEMCalib(
955  double etEMCalib)
956  {
957  m_seedCalo_etEMCalib=etEMCalib;
958  }
959  //-----------------------------------------------------------------------
960  // seedCalo_etHadCalib - Calibrated hadronic E_T
961  //-----------------------------------------------------------------------
962 
963  inline double TauCommonDetails::seedCalo_etHadCalib() const
964  {
965  return m_seedCalo_etHadCalib;
966  }
967 
968  inline void TauCommonDetails::setSeedCalo_etHadCalib(
969  double etHadCalib)
970  {
971  m_seedCalo_etHadCalib=etHadCalib;
972  }
973 
974  //-----------------------------------------------------------------------
975  // seedCalo_eta - TauJet Eta from calorimeter
976  //-----------------------------------------------------------------------
977 
978  inline double TauCommonDetails::seedCalo_eta() const
979  {
980  return m_seedCalo_eta;
981  }
982 
983  inline void TauCommonDetails::setSeedCalo_eta(
984  double eta)
985  {
986  m_seedCalo_eta=eta;
987  }
988 
989  //-----------------------------------------------------------------------
990  // seedCalo_phi - TauJet phi from calorimeter
991  //-----------------------------------------------------------------------
992 
993  inline double TauCommonDetails::seedCalo_phi() const
994  {
995  return m_seedCalo_phi;
996  }
997 
998  inline void TauCommonDetails::setSeedCalo_phi(
999  double phi)
1000  {
1001  m_seedCalo_phi=phi;
1002  }
1003 
1004  //-----------------------------------------------------------------------
1005  // seedCalo_nIsolLooseTrk - Number of isolated track
1006  //-----------------------------------------------------------------------
1007 
1008  inline double TauCommonDetails::seedCalo_nIsolLooseTrk() const
1009  {
1010  return m_seedCalo_nIsolLooseTrk;
1011  }
1012 
1013  inline void TauCommonDetails::setSeedCalo_nIsolLooseTrk(
1014  double nIsolTRk )
1015  {
1016  m_seedCalo_nIsolLooseTrk=nIsolTRk;
1017  }
1018 
1019  //-----------------------------------------------------------------------
1020  // seedCalo_trkAvgDist - average track distance from calo seed
1021  //-----------------------------------------------------------------------
1022 
1023  inline double TauCommonDetails::seedCalo_trkAvgDist() const
1024  {
1025  return m_seedCalo_trkAvgDist;
1026  }
1027 
1028  inline void TauCommonDetails::setSeedCalo_trkAvgDist(
1029  double trkAvgDist )
1030  {
1031  m_seedCalo_trkAvgDist=trkAvgDist;
1032  }
1033 
1034 
1035  //-----------------------------------------------------------------------
1036  // seedCalo_trkRmsDist - RMS of track distance from calo seed
1037  //-----------------------------------------------------------------------
1038 
1039  inline double TauCommonDetails::seedCalo_trkRmsDist() const
1040  {
1041  return m_seedCalo_trkRmsDist;
1042  }
1043 
1044  inline void TauCommonDetails::setSeedCalo_trkRmsDist(
1045  double trkRmsDist )
1046  {
1047  m_seedCalo_trkRmsDist=trkRmsDist;
1048  }
1049 
1050  //-----------------------------------------------------------------------
1051  // sum of 2 leading cluster energy over all cluster energy
1052  //-----------------------------------------------------------------------
1053 
1054  inline double TauCommonDetails::seedCalo_lead2ClusterEOverAllClusterE() const
1055  {
1056  return m_seedCalo_lead2ClusterEOverAllClusterE;
1057  }
1058 
1059  inline void TauCommonDetails::setSeedCalo_lead2ClusterEOverAllClusterE( double lead2ClusterEOverAllClusterE )
1060  {
1061  m_seedCalo_lead2ClusterEOverAllClusterE = lead2ClusterEOverAllClusterE;
1062  }
1063 
1064  //-----------------------------------------------------------------------
1065  // sum of 3 leading cluster energy over all cluster energy
1066  //-----------------------------------------------------------------------
1067  inline double TauCommonDetails::seedCalo_lead3ClusterEOverAllClusterE() const
1068  {
1069  return m_seedCalo_lead3ClusterEOverAllClusterE;
1070  }
1071 
1072  inline void TauCommonDetails::setSeedCalo_lead3ClusterEOverAllClusterE( double lead3ClusterEOverAllClusterE )
1073  {
1074  m_seedCalo_lead3ClusterEOverAllClusterE = lead3ClusterEOverAllClusterE;
1075  }
1076 
1077  //-----------------------------------------------------------------------
1078  // sum of transvers energy of clusters around jet seed within 0.2 < dR < 0.4
1079  //-----------------------------------------------------------------------
1080  inline double TauCommonDetails::seedCalo_caloIso() const
1081  {
1082  return m_seedCalo_caloIso;
1083  }
1084 
1085  inline void TauCommonDetails::setSeedCalo_caloIso( double caloIso )
1086  {
1087  m_seedCalo_caloIso = caloIso;
1088  }
1089 
1090  //-----------------------------------------------------------------------
1091  // sum of transvers energy of clusters around jet seed within 0.2 < dR < 0.4 (pile up corrected)
1092  //-----------------------------------------------------------------------
1093  inline double TauCommonDetails::seedCalo_caloIsoCorrected() const
1094  {
1095  return m_seedCalo_caloIsoCorrected;
1096  }
1097 
1098  inline void TauCommonDetails::setSeedCalo_caloIsoCorrected( double caloIsoCorrected )
1099  {
1100  m_seedCalo_caloIsoCorrected = caloIsoCorrected;
1101  }
1102 
1103  //-----------------------------------------------------------------------
1104  // maximal dR of tracks associated to calo-seeded tau
1105  //-----------------------------------------------------------------------
1106  inline double TauCommonDetails::seedCalo_dRmax() const
1107  {
1108  return m_seedCalo_dRmax;
1109  }
1110 
1111  inline void TauCommonDetails::setSeedCalo_dRmax( double dRmax )
1112  {
1113  m_seedCalo_dRmax = dRmax;
1114  }
1115 
1116 
1117 
1118  /////////////////////////////////////////////////////////////////////
1119  //
1120  // Applicable for track seeded tau reconstruction
1121  //
1122  /////////////////////////////////////////////////////////////////////
1123 
1124  //-------------------------------------------------------------------------
1125  // m_seedTrk_EMRadius - EM Radius
1126  //-------------------------------------------------------------------------
1127 
1128  inline double TauCommonDetails::seedTrk_EMRadius() const
1129  {
1130  return m_seedTrk_EMRadius;
1131  }
1132 
1133  inline void TauCommonDetails::setSeedTrk_EMRadius(
1134  double EMRadius )
1135  {
1136  m_seedTrk_EMRadius = EMRadius;
1137  }
1138 
1139  //------------------------------------------------------------------------
1140  // m_seedTrk_isolFrac - isolation fraction
1141  //------------------------------------------------------------------------
1142 
1143  inline double TauCommonDetails::seedTrk_isolFrac() const
1144  {
1145  return m_seedTrk_isolFrac;
1146  }
1147 
1148  inline void TauCommonDetails::setSeedTrk_isolFrac(
1149  double isolFrac )
1150  {
1151  m_seedTrk_isolFrac = isolFrac;
1152  }
1153 
1154  //-----------------------------------------------------------------------
1155  // etChrgHadOverSumTrkPt - E_T over P_t
1156  //-----------------------------------------------------------------------
1157 
1158  inline double TauCommonDetails::seedTrk_etChrgHadOverSumTrkPt () const
1159  {
1160  return m_seedTrk_etChrgHadOverSumTrkPt ;
1161  }
1162 
1163  inline void TauCommonDetails::setSeedTrk_etChrgHadOverSumTrkPt (
1164  double ratio )
1165  {
1166  m_seedTrk_etChrgHadOverSumTrkPt = ratio;
1167  }
1168 
1169  //-----------------------------------------------------------------------
1170  // isolFracWide - wide isolation fraction
1171  //-----------------------------------------------------------------------
1172 
1173  inline double TauCommonDetails::seedTrk_isolFracWide() const
1174  {
1175  return m_seedTrk_isolFracWide;
1176  }
1177 
1178  inline void TauCommonDetails::setSeedTrk_isolFracWide(
1179  double fraction )
1180  {
1181  m_seedTrk_isolFracWide = fraction;
1182  }
1183 
1184  //-----------------------------------------------------------------------
1185  // seedTrk_etHadAtEMScale
1186  //-----------------------------------------------------------------------
1187 
1188  inline double TauCommonDetails::seedTrk_etHadAtEMScale () const
1189  {
1190  return m_seedTrk_etHadAtEMScale ;
1191  }
1192 
1193  inline void TauCommonDetails::setSeedTrk_etHadAtEMScale (
1194  double et )
1195  {
1196  m_seedTrk_etHadAtEMScale = et;
1197  }
1198 
1199  //-----------------------------------------------------------------------
1200  // seedTrk_etEMAtEMScale
1201  //-----------------------------------------------------------------------
1202 
1203  inline double TauCommonDetails::seedTrk_etEMAtEMScale () const
1204  {
1205  return m_seedTrk_etEMAtEMScale ;
1206  }
1207 
1208  inline void TauCommonDetails::setSeedTrk_etEMAtEMScale (
1209  double et )
1210  {
1211  m_seedTrk_etEMAtEMScale = et;
1212  }
1213 
1214  //-----------------------------------------------------------------------
1215  // seedTrk_etEMCL
1216  //-----------------------------------------------------------------------
1217 
1218  inline double TauCommonDetails::seedTrk_etEMCL () const
1219  {
1220  return m_seedTrk_etEMCL ;
1221  }
1222 
1223  inline void TauCommonDetails::setSeedTrk_etEMCL (
1224  double et )
1225  {
1226  m_seedTrk_etEMCL = et;
1227  }
1228 
1229  //-----------------------------------------------------------------------
1230  // seedTrk_etChrgEM - E_T of charged EM cells
1231  //-----------------------------------------------------------------------
1232 
1233  inline double TauCommonDetails::seedTrk_etChrgEM () const
1234  {
1235  return m_seedTrk_etChrgEM ;
1236  }
1237 
1238  inline void TauCommonDetails::setSeedTrk_etChrgEM (
1239  double et )
1240  {
1241  m_seedTrk_etChrgEM = et;
1242  }
1243 
1244  //-----------------------------------------------------------------------
1245  // seedTrk_etNeuEM - E_T of neutral EM cells
1246  //-----------------------------------------------------------------------
1247 
1248  inline double TauCommonDetails::seedTrk_etNeuEM () const
1249  {
1250  return m_seedTrk_etNeuEM ;
1251  }
1252 
1253  inline void TauCommonDetails::setSeedTrk_etNeuEM (
1254  double et )
1255  {
1256  m_seedTrk_etNeuEM = et;
1257  }
1258 
1259  //-----------------------------------------------------------------------
1260  // seedTrk_etResNeuEM - eflow correction term
1261  //-----------------------------------------------------------------------
1262 
1263  inline double TauCommonDetails::seedTrk_etResNeuEM () const
1264  {
1265  return m_seedTrk_etResNeuEM ;
1266  }
1267 
1268  inline void TauCommonDetails::setSeedTrk_etResNeuEM (
1269  double et )
1270  {
1271  m_seedTrk_etResNeuEM = et;
1272  }
1273 
1274  //-----------------------------------------------------------------------
1275  // seedTrk_sumEMCellEtOverLeadTrkPt - LAr+EM E_T/leading track p_T
1276  //-----------------------------------------------------------------------
1277 
1278  inline double TauCommonDetails::seedTrk_sumEMCellEtOverLeadTrkPt() const
1279  {
1280  return m_seedTrk_sumEMCellEtOverLeadTrkPt ;
1281  }
1282 
1283  inline void TauCommonDetails::setSeedTrk_sumEMCellEtOverLeadTrkPt(
1284  double ratio )
1285  {
1286  m_seedTrk_sumEMCellEtOverLeadTrkPt = ratio;
1287  }
1288 
1289  //-----------------------------------------------------------------------
1290  // seedTrk_hadLeakEt - hadronic leakage in EM summed over all cells
1291  //-----------------------------------------------------------------------
1292 
1293  inline double TauCommonDetails::seedTrk_hadLeakEt () const
1294  {
1295  return m_seedTrk_hadLeakEt ;
1296  }
1297 
1298  inline void TauCommonDetails::setSeedTrk_hadLeakEt (
1299  double et )
1300  {
1301  m_seedTrk_hadLeakEt = et;
1302  }
1303 
1304  //-----------------------------------------------------------------------
1305  // seedTrk_etChrgEM01Trk - E_T around track
1306  //-----------------------------------------------------------------------
1307 
1308  inline double TauCommonDetails::seedTrk_etChrgEM01Trk(
1309  unsigned int i ) const
1310  {
1311  return ( m_seedTrk_etChrgEM01Trk.size()>i) ?
1312  m_seedTrk_etChrgEM01Trk[i] : 0.;
1313  }
1314 
1315  inline const std::vector<double>& TauCommonDetails::seedTrk_etChrgEM01TrkVector() const
1316  {
1317  return m_seedTrk_etChrgEM01Trk;
1318  }
1319 
1320  inline void TauCommonDetails::setSeedTrk_etChrgEM01Trk(
1321  unsigned int i,
1322  double et )
1323  {
1324  if( m_seedTrk_etChrgEM01Trk.size() < i )
1325  m_seedTrk_etChrgEM01Trk[i] = et;
1326  }
1327 
1328  template <class ITERATOR>
1329  inline void TauCommonDetails::setSeedTrk_etChrgEM01Trk(
1330  ITERATOR beg,
1331  ITERATOR end )
1332  {
1333  m_seedTrk_etChrgEM01Trk.assign (beg, end);
1334  }
1335 
1336  inline void TauCommonDetails::addSeedTrk_etChrgEM01Trk(
1337  double et )
1338  {
1339  m_seedTrk_etChrgEM01Trk.push_back( et );
1340  }
1341 
1342  //-----------------------------------------------------------------------
1343  // seedTrk_etResChrgEMTrk - correction term for eflow
1344  //-----------------------------------------------------------------------
1345 
1346  inline double TauCommonDetails::seedTrk_etResChrgEMTrk(
1347  unsigned int i ) const
1348  {
1349  return ( m_seedTrk_etResChrgEMTrk.size()>i) ?
1350  m_seedTrk_etResChrgEMTrk[i] : 0.;
1351  }
1352 
1353  inline const std::vector<double>& TauCommonDetails::seedTrk_etResChrgEMTrkVector() const
1354  {
1355  return m_seedTrk_etResChrgEMTrk;
1356  }
1357 
1358  inline void TauCommonDetails::setSeedTrk_etResChrgEMTrk(
1359  unsigned int i,
1360  double et )
1361  {
1362  if( m_seedTrk_etResChrgEMTrk.size() < i )
1363  m_seedTrk_etResChrgEMTrk[i] = et;
1364  }
1365 
1366  template <class ITERATOR>
1367  inline void TauCommonDetails::setSeedTrk_etResChrgEMTrk(
1368  ITERATOR beg,
1369  ITERATOR end )
1370  {
1371  m_seedTrk_etResChrgEMTrk.assign (beg, end);
1372  }
1373 
1374  inline void TauCommonDetails::addSeedTrk_etResChrgEMTrk(
1375  double et )
1376  {
1377  m_seedTrk_etResChrgEMTrk.push_back( et );
1378  }
1379 
1380  //-----------------------------------------------------------------------
1381  // seedTrk_secMaxStripEt - secondary maximum
1382  //-----------------------------------------------------------------------
1383 
1384  inline double TauCommonDetails::seedTrk_secMaxStripEt () const
1385  {
1386  return m_seedTrk_secMaxStripEt ;
1387  }
1388 
1389  inline void TauCommonDetails::setSeedTrk_secMaxStripEt (
1390  double et )
1391  {
1392  m_seedTrk_secMaxStripEt = et;
1393  }
1394 
1395  //-----------------------------------------------------------------------
1396  // seedTrk_StripWidth^2 - strip width ^2
1397  //-----------------------------------------------------------------------
1398 
1399  inline double TauCommonDetails::seedTrk_stripWidth2() const
1400  {
1401  return m_seedTrk_stripWidth2;
1402  }
1403 
1404  inline void TauCommonDetails::setSeedTrk_stripWidth2(
1405  double stripWidth2 )
1406  {
1407  m_seedTrk_stripWidth2 = stripWidth2;
1408  }
1409 
1410  //-----------------------------------------------------------------------
1411  // seedTrk_nStrip - number of strips
1412  //-----------------------------------------------------------------------
1413  inline int TauCommonDetails::seedTrk_nStrip() const
1414  {
1415  return m_seedTrk_nStrip;
1416  }
1417 
1418  inline void TauCommonDetails::setSeedTrk_nStrip(
1419  int nStrip )
1420  {
1421  m_seedTrk_nStrip=nStrip;
1422  }
1423 
1424  //-----------------------------------------------------------------------
1425  // seedTrk_etChrgHad - Charged E_T in Had calo in hadronic calorimeter
1426  //-----------------------------------------------------------------------
1427 
1428  inline double TauCommonDetails::seedTrk_etChrgHad() const
1429  {
1430  return m_seedTrk_etChrgHad;
1431  }
1432 
1433  inline void TauCommonDetails::setSeedTrk_etChrgHad(
1434  double et )
1435  {
1436  m_seedTrk_etChrgHad = et;
1437  }
1438 
1439  //-----------------------------------------------------------------------
1440  // seedTrk_nOtherCoreTrk - number of other tracks
1441  //-----------------------------------------------------------------------
1442 
1443  inline int TauCommonDetails::seedTrk_nOtherCoreTrk() const
1444  {
1445  return m_seedTrk_nOtherCoreTrk;
1446  }
1447 
1448  inline void TauCommonDetails::setSeedTrk_nOtherCoreTrk(
1449  int n )
1450  {
1451  m_seedTrk_nOtherCoreTrk = n;
1452  }
1453 
1454  //-----------------------------------------------------------------------
1455  // seedTrk_nIsolTrk - number of isolated tracks
1456  //-----------------------------------------------------------------------
1457 
1458  inline int TauCommonDetails::seedTrk_nIsolTrk() const
1459  {
1460  return m_seedTrk_nIsolTrk;
1461  }
1462 
1463  inline void TauCommonDetails::setSeedTrk_nIsolTrk(
1464  int n )
1465  {
1466  m_seedTrk_nIsolTrk = n;
1467  }
1468 
1469  //-----------------------------------------------------------------------
1470  // seedTrk_etIsolEM - transverse energy in EM calo
1471  //-----------------------------------------------------------------------
1472 
1473  inline double TauCommonDetails::seedTrk_etIsolEM() const
1474  {
1475  return m_seedTrk_etIsolEM;
1476  }
1477 
1478  inline void TauCommonDetails::setSeedTrk_etIsolEM(
1479  double etIsolEM )
1480  {
1481  m_seedTrk_etIsolEM=etIsolEM;
1482  }
1483 
1484  //-----------------------------------------------------------------------
1485  // seedTrk_etIsolHad - Get transverse energy in Had calo
1486  //-----------------------------------------------------------------------
1487 
1488  inline double TauCommonDetails::seedTrk_etIsolHad() const
1489  {
1490  return m_seedTrk_etIsolHad;
1491  }
1492 
1493  inline void TauCommonDetails::setSeedTrk_etIsolHad(
1494  double etIsolHad )
1495  {
1496  m_seedTrk_etIsolHad = etIsolHad;
1497  }
1498 
1499  ///////////////////////////////////////////////////
1500  //
1501  // Energy Scale getter/setters
1502  //
1503  ///////////////////////////////////////////////////
1504 
1505  /// get EM+TES final scale
1506  inline double TauCommonDetails::EM_TES_scale() const
1507  {
1508  return m_EM_TES_scale;
1509  }
1510 
1511  /// set EM+TES final scale
1512  inline void TauCommonDetails::set_EM_TES_scale(double value)
1513  {
1514  m_EM_TES_scale = value;
1515  }
1516 
1517  /// get LC+TES precalibration
1518  inline double TauCommonDetails::LC_TES_precalib() const
1519  {
1520  return m_LC_TES_precalib;
1521  }
1522 
1523  /// set LC+TES precalibration
1524  inline void TauCommonDetails::set_LC_TES_precalib(double value)
1525  {
1526  m_LC_TES_precalib = value;
1527  }
1528  //@}
1529 
1530  //////////////////////////////////////////////////////////////////////
1531  //
1532  // Cell-based energies in rings getters/setters
1533  //
1534  //////////////////////////////////////////////////////////////////////
1535  /// Ring 1: 0.00 < R < 0.05
1536  inline double TauCommonDetails::cellBasedEnergyRing1() const
1537  {
1538  return m_cellBasedEnergyRing1;
1539 
1540  }
1541 
1542  inline void TauCommonDetails::setCellBasedEnergyRing1(double value)
1543  {
1544  m_cellBasedEnergyRing1 = value;
1545 
1546  }
1547 
1548  /// Ring 2: 0.05 < R < 0.075
1549  inline double TauCommonDetails::cellBasedEnergyRing2() const
1550  {
1551  return m_cellBasedEnergyRing2;
1552 
1553  }
1554 
1555  inline void TauCommonDetails::setCellBasedEnergyRing2(double value)
1556  {
1557  m_cellBasedEnergyRing2 = value;
1558 
1559  }
1560 
1561  /// Ring 3: 0.075 < R < 0.10
1562  inline double TauCommonDetails::cellBasedEnergyRing3() const
1563  {
1564  return m_cellBasedEnergyRing3;
1565 
1566  }
1567 
1568  inline void TauCommonDetails::setCellBasedEnergyRing3(double value)
1569  {
1570  m_cellBasedEnergyRing3 = value;
1571 
1572  }
1573 
1574  /// Ring 4: 0.10 < R < 0.125
1575  inline double TauCommonDetails::cellBasedEnergyRing4() const
1576  {
1577  return m_cellBasedEnergyRing4;
1578 
1579  }
1580 
1581  inline void TauCommonDetails::setCellBasedEnergyRing4(double value)
1582  {
1583  m_cellBasedEnergyRing4 = value;
1584 
1585  }
1586 
1587  /// Ring 5: 0.125 < R < 0.15
1588  inline double TauCommonDetails::cellBasedEnergyRing5() const
1589  {
1590  return m_cellBasedEnergyRing5;
1591 
1592  }
1593 
1594  inline void TauCommonDetails::setCellBasedEnergyRing5(double value)
1595  {
1596  m_cellBasedEnergyRing5 = value;
1597 
1598  }
1599 
1600  /// Ring 6: 0.15 < R < 0.2
1601  inline double TauCommonDetails::cellBasedEnergyRing6() const
1602  {
1603  return m_cellBasedEnergyRing6;
1604 
1605  }
1606 
1607  inline void TauCommonDetails::setCellBasedEnergyRing6(double value)
1608  {
1609  m_cellBasedEnergyRing6 = value;
1610 
1611  }
1612 
1613  /// Ring 7: 0.2 < R < 0.4
1614  inline double TauCommonDetails::cellBasedEnergyRing7() const
1615  {
1616  return m_cellBasedEnergyRing7;
1617 
1618  }
1619 
1620  inline void TauCommonDetails::setCellBasedEnergyRing7(double value)
1621  {
1622  m_cellBasedEnergyRing7 = value;
1623 
1624  }
1625 
1626  /// TRT hits high thresholds over low thresholds
1627  inline double TauCommonDetails::TRT_NHT_OVER_NLT() const
1628  {
1629  return m_TRT_NHT_OVER_NLT;
1630  }
1631 
1632  inline void TauCommonDetails::setTRT_NHT_OVER_NLT(double value)
1633  {
1634  m_TRT_NHT_OVER_NLT = value;
1635  }
1636 
1637  //-----------------------------------------------------------------------
1638  // TJVF - TauJetVtxFraction getter/setter
1639  //-----------------------------------------------------------------------
1640 
1641  inline double TauCommonDetails::TauJetVtxFraction() const
1642  {
1643  return m_TauJetVtxFraction;
1644  }
1645 
1646  inline void TauCommonDetails::setTauJetVtxFraction(double value )
1647  {
1648  m_TauJetVtxFraction = value;
1649  }
1650 
1651  //-----------------------------------------------------------------------
1652  // Track Filter and Generic Pi0 Cone
1653  //-----------------------------------------------------------------------
1654 
1655  // vector bool of which tracks pass the track filter
1656  inline std::vector<bool> TauCommonDetails::TrackFilterPass() const
1657  {
1658  return m_TrackFilterPass;
1659  }
1660 
1661  inline void TauCommonDetails::setTrackFilterPass(const std::vector<bool>& value)
1662  {
1663  m_TrackFilterPass = value;
1664  }
1665 
1666  // nProng based on what the track filter passes
1667  inline int TauCommonDetails::TrackFilterProngs() const
1668  {
1669  return m_TrackFilterProngs;
1670  }
1671 
1672  inline void TauCommonDetails::setTrackFilterProngs(int value)
1673  {
1674  m_TrackFilterProngs = value;
1675  }
1676 
1677  // flag used to ID probable fake taus by the track filter
1678  inline int TauCommonDetails::TrackFilterQuality() const
1679  {
1680  return m_TrackFilterQuality;
1681  }
1682 
1683  inline void TauCommonDetails::setTrackFilterQuality(int value)
1684  {
1685  m_TrackFilterQuality = value;
1686  }
1687 
1688  // generic cone size (dR)
1689  inline double TauCommonDetails::Pi0ConeDR() const
1690  {
1691  return m_Pi0ConeDR;
1692  }
1693 
1694  inline void TauCommonDetails::setPi0ConeDR(double value)
1695  {
1696  m_Pi0ConeDR = value;
1697  }
1698 
1699 }