ATLAS Offline Software
Loading...
Searching...
No Matches
TauPi0Candidate.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include <iostream>
7//#include "tauEvent/TauDetails.h"
8//#include "tauEvent/TauCmp.h"
9//#include "tauEvent/TauPi0Cluster.h"
10
11namespace Analysis {
12
13 // default constructor
17
18 // copy constructor
23
24 // Assignment operator
26 {
27 if (this!=&rhs){
29 }
30 return *this;
31 }
32
33 // == and != operators
34 // Current version returns, whether the vectors of clusters are identiacal (including the order).
35 // This is good enough for the use of operator != in TauPi0Candidate &TauPi0Candidate::operator=.
36 // TODO: If == or != operators are required, which take into account that the order is unimportant
37 // for the candidates, new methods must be implemented
39 if(m_pi0ClusterVector.size()!=rhs.m_pi0ClusterVector.size()) return false;
40 for(unsigned iPi0Cluster=0; iPi0Cluster!=m_pi0ClusterVector.size();++iPi0Cluster){
41 if (*(m_pi0ClusterVector.at(iPi0Cluster))!=*(rhs.m_pi0ClusterVector.at(iPi0Cluster))) return false;
42 }
43 return true;
44 }
45
47 if(m_pi0ClusterVector.size()!=rhs.m_pi0ClusterVector.size()) return true;
48 for(unsigned iPi0Cluster=0; iPi0Cluster!=m_pi0ClusterVector.size();++iPi0Cluster){
49 if (*(m_pi0ClusterVector.at(iPi0Cluster))!=*(rhs.m_pi0ClusterVector.at(iPi0Cluster))) return true;
50 }
51 return false;
52 }
53
54 // destructor
58
59 // just for testing. TODO: Add new variables
61 {
62 std::cout << "in TauPi0Candidate::dump()" << std::endl;
63 std::cout << "-------------------------" <<std::endl;
64 std::cout << "number of Pi0Clusters = " << this->nPi0Cluster() << std::endl;
65 std::cout.precision(6);
66
67 for(int i=0; i < (int)this->nPi0Cluster(); ++i) {
68 std::cout << "4 mom of cluster no " << i << ": pt = " << this->pi0Cluster(i)->cluster()->pt() <<
69 "\t eta = " << this->pi0Cluster(i)->cluster()->eta() <<
70 "\t phi = " << this->pi0Cluster(i)->cluster()->phi() <<
71 "\t m = " << this->pi0Cluster(i)->cluster()->m() <<
72 "\t E = " << this->pi0Cluster(i)->cluster()->e() << std::endl;
73
74 }
75 std::cout << "4 mom of candidate: pt = " << std::sqrt(this->hlv().px()*this->hlv().px()+this->hlv().py()*this->hlv().py()) <<
76 "\t eta = " << this->hlv().eta() <<
77 "\t phi = " << this->hlv().phi() <<
78 "\t m = " << this->hlv().m() <<
79 "\t E = " << this->hlv().e() << std::endl;
80 std::cout << std::endl << std::endl;
81 std::cout << "-------------------------" << std::endl;
82 }
83
84}
const TauPi0Cluster * pi0Cluster(unsigned int i) const
Get pi0 cluster Concider using direct access through clusterLinkVec() instead.
bool operator==(const TauPi0Candidate &rhs) const
Equality operator.
TauPi0Candidate()
default constructor
virtual ~TauPi0Candidate()
destructor (virtual)
unsigned int nPi0Cluster() const
Get length of cluster vector Concider using direct access through pi0LinkVec() instead.
std::vector< TauPi0Cluster * > m_pi0ClusterVector
pi0 cluster vector
TauPi0Candidate & operator=(const TauPi0Candidate &rhs)
assignment operator
CLHEP::HepLorentzVector hlv() const
bool operator!=(const TauPi0Candidate &rhs) const
Inequality operator.
const CaloCluster * cluster() const
Get cluster Consider using direct access through clusterLink() instead.
virtual double m() const
Retrieve mass independent of signal state.
virtual double e() const
Retrieve energy independent of signal state.
virtual double eta() const
Retrieve eta independent of signal state.
virtual double phi() const
Retrieve phi independent of signal state.
virtual double pt() const
transverse momentum
The namespace of all packages in PhysicsAnalysis/JetTagging.