ATLAS Offline Software
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 
11 namespace Analysis {
12 
13  // default constructor
15  {
16  }
17 
18  // copy constructor
20  m_pi0ClusterVector(rhs.m_pi0ClusterVector)
21  {
22  }
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
38  bool TauPi0Candidate::operator==( const TauPi0Candidate& rhs ) const{
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 
46  bool TauPi0Candidate::operator!=( const TauPi0Candidate& rhs ) const{
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
56  {
57  }
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 }
P4EEtaPhiMBase::pt
virtual double pt() const
transverse momentum
Definition: P4EEtaPhiMBase.cxx:101
test_pyathena.px
px
Definition: test_pyathena.py:18
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
Analysis::TauPi0Candidate::m_pi0ClusterVector
std::vector< TauPi0Cluster * > m_pi0ClusterVector
pi0 cluster vector
Definition: TauPi0Candidate.h:104
TauPi0Candidate.h
Analysis::TauPi0Candidate::hlv
CLHEP::HepLorentzVector hlv() const
Analysis::TauPi0Cluster::cluster
const CaloCluster * cluster() const
Get cluster Consider using direct access through clusterLink() instead.
Analysis::TauPi0Candidate::TauPi0Candidate
TauPi0Candidate()
default constructor
Definition: TauPi0Candidate.cxx:14
Analysis::TauPi0Candidate::operator==
bool operator==(const TauPi0Candidate &rhs) const
Equality operator.
Definition: TauPi0Candidate.cxx:38
lumiFormat.i
int i
Definition: lumiFormat.py:92
Analysis::TauPi0Candidate
Definition: TauPi0Candidate.h:28
Analysis::TauPi0Candidate::operator=
TauPi0Candidate & operator=(const TauPi0Candidate &rhs)
assignment operator
Definition: TauPi0Candidate.cxx:25
Amg::py
@ py
Definition: GeoPrimitives.h:39
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition: BTaggingCnvAlg.h:20
Analysis::TauPi0Candidate::pi0Cluster
const TauPi0Cluster * pi0Cluster(unsigned int i) const
Get pi0 cluster Concider using direct access through clusterLinkVec() instead.
Analysis::TauPi0Candidate::nPi0Cluster
unsigned int nPi0Cluster() const
Get length of cluster vector Concider using direct access through pi0LinkVec() instead.
CaloCluster::eta
virtual double eta() const
Retrieve eta independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:755
Analysis::TauPi0Candidate::~TauPi0Candidate
virtual ~TauPi0Candidate()
destructor (virtual)
Definition: TauPi0Candidate.cxx:55
CaloCluster::e
virtual double e() const
Retrieve energy independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:753
CaloCluster::m
virtual double m() const
Retrieve mass independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:764
Analysis::TauPi0Candidate::dump
void dump()
Definition: TauPi0Candidate.cxx:60
Analysis::TauPi0Candidate::operator!=
bool operator!=(const TauPi0Candidate &rhs) const
Inequality operator.
Definition: TauPi0Candidate.cxx:46
CaloCluster::phi
virtual double phi() const
Retrieve phi independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:759