ATLAS Offline Software
TrigTauClusterDetails.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /*******************************************************
6 
7 NAME: TrigTauClusterDetails.cxx
8 PACKAGE: Trigger/TrigEvent/TrigCaloEvent
9 AUTHOR: Denis M.P. Casado
10 
11 PURPOSE: Keep Details of TrigTauCluster
12 DATE: October 14th, 2009
13 
14 ******************************************************/
15 
17 // Constructor
19 {
20  for (int i = 0; i< NUMEMSAMP ; i++) {
21  m_EMRadius[i] = 0;
22  m_EMenergyWidth[i] = 0;
23  m_EMenergyWide[i] = 0;
24  m_EMenergyMedium[i] = 0;
25  m_EMenergyNarrow[i] = 0;
26 
27  }
28  for (int i = 0; i< NUMHADSAMP ; i++) {
29  m_HADRadius[i] = 0;
30  m_HADenergyWidth[i] = 0;
31  m_HADenergyWide[i] = 0;
32  m_HADenergyMedium[i] = 0;
33  m_HADenergyNarrow[i] = 0;
34 
35  }
36 }
37 
38 // Destructor
40 {}
41 
42 // Copy constructor (Note that also the base class is copied)
44 {
45  for (int i = 0; i< NUMEMSAMP ; i++) {
46  m_EMRadius[i] = ttc->EMRadius(i);
48  m_EMenergyWide[i] = ttc->EMenergyWide(i);
51 
52  }
53  for (int i = 0; i< NUMHADSAMP ; i++) {
54  m_HADRadius[i] = ttc->HADRadius(i);
59 
60  }
61 
62 }
63 // Simple debug method using MsgStream
64 void
66 // TrigCaloCluster::print();
67  std::cout << "m_EMenergyNarrow: ";
68  for ( int i = 0 ; i < NUMEMSAMP ; i++ )
69  std::cout << EMenergyNarrow(i) << "; ";
70  std::cout << std::endl;
71  std::cout << "m_HADenergyNarrow: ";
72  for ( int i = 0 ; i < NUMHADSAMP ; i++ )
73  std::cout << HADenergyNarrow(i) << "; ";
74  std::cout << std::endl;
75 }
76 
77 // Simple debug method using MsgStream
78 void
79 TrigTauClusterDetails::print ( MsgStream& log ) const {
80 // TrigCaloCluster::print(log);
81  log <<MSG::DEBUG<< "m_EMenergyNarrow : ";
82  for ( int i = 0 ; i < NUMEMSAMP ; i++ )
83  log <<MSG::DEBUG<< EMenergyNarrow(i) << "; ";
84  log << endmsg;
85  log <<MSG::DEBUG<< "m_HADenergyNarrow : ";
86  for ( int i = 0 ; i < NUMHADSAMP ; i++ )
87  log <<MSG::DEBUG<< HADenergyNarrow(i) << "; ";
88  log << endmsg;
89 }
90 
91 
92 
93 
94 
95 
96 
97 bool operator== (const TrigTauClusterDetails& clus1, const TrigTauClusterDetails& clus2 ){
98 
99  double epsilon=0.001;
100 
101  for (int i = 0; i< NUMEMSAMP ; i++) {
102  if (fabs(clus1.EMRadius(i) - clus2.EMRadius(i)) > epsilon) return false;
103  if (fabs(clus1.EMenergyWidth(i) - clus2.EMenergyWidth(i)) > epsilon) return false;
104  if (fabs(clus1.EMenergyWide(i) - clus2.EMenergyWide(i)) > epsilon) return false;
105  if (fabs(clus1.EMenergyMedium(i) - clus2.EMenergyMedium(i)) > epsilon) return false;
106  if (fabs(clus1.EMenergyNarrow(i) - clus2.EMenergyNarrow(i)) > epsilon) return false;
107 
108  }
109  for (int i = 0; i< NUMHADSAMP ; i++) {
110  if (fabs(clus1.HADRadius(i) - clus2.HADRadius(i)) > epsilon) return false;
111  if (fabs(clus1.HADenergyWidth(i) - clus2.HADenergyWidth(i)) > epsilon) return false;
112  if (fabs(clus1.HADenergyWide(i) - clus2.HADenergyWide(i)) > epsilon) return false;
113  if (fabs(clus1.HADenergyMedium(i) - clus2.HADenergyMedium(i)) > epsilon) return false;
114  if (fabs(clus1.HADenergyNarrow(i) - clus2.HADenergyNarrow(i)) > epsilon) return false;
115  }
116 
117  return true;
118 }
119 
121 std::string str( const TrigTauClusterDetails& tau )
122 {
123  std::stringstream stream;
124  stream << " EMRad: ";
125  for (int i = 0; i< NUMEMSAMP ; i++) stream << tau.EMRadius(i) << "/";
126  stream << "; EMEnergyWidth: ";
127  for (int i = 0; i< NUMEMSAMP ; i++) stream << tau.EMenergyWidth(i) << "/";
128  stream << "; EMEnergy(dR<0.1): ";
129  for (int i = 0; i< NUMEMSAMP ; i++) stream << tau.EMenergyNarrow(i) << "/";
130  stream << "; EMEnergy(dR<0.2): ";
131  for (int i = 0; i< NUMEMSAMP ; i++) stream << tau.EMenergyMedium(i) << "/";
132  stream << "; EMEnergy(dR<0.3): ";
133  for (int i = 0; i< NUMEMSAMP ; i++) stream << tau.EMenergyWide(i) << "/";
134 
135  stream << "; HADRad: ";
136  for (int i = 0; i< NUMHADSAMP ; i++) stream << tau.HADRadius(i) << "/";
137  stream << "; HADEnergyWidth: ";
138  for (int i = 0; i< NUMHADSAMP ; i++) stream << tau.HADenergyWidth(i) << "/";
139  stream << "; HADEnergy(dR<0.1): ";
140  for (int i = 0; i< NUMHADSAMP ; i++) stream << tau.HADenergyNarrow(i) << "/";
141  stream << "; HADEnergy(dR<0.2): ";
142  for (int i = 0; i< NUMHADSAMP ; i++) stream << tau.HADenergyMedium(i) << "/";
143  stream << "; HADEnergy(dR<0.3): ";
144  for (int i = 0; i< NUMHADSAMP ; i++) stream << tau.HADenergyWide(i) << "/";
145 
146 
147 
148  return stream.str();
149 }
150 
151 
152 
154 MsgStream& operator<< ( MsgStream& m, const TrigTauClusterDetails& tau )
155 {
156  m << str(tau);
157  return m;
158 }
160 void diff( const TrigTauClusterDetails& clus1, const TrigTauClusterDetails& clus2,
161  std::map< std::string, double >& varChange )
162 {
163  double epsilon=0.001;
164 
165  char name[32];
166  for (int i = 0; i< NUMEMSAMP ; i++) {
167  if (fabs(clus1.EMRadius(i) - clus2.EMRadius(i)) > epsilon)
168  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.EMRadius(i) - clus2.EMRadius(i); }
169  if (fabs(clus1.EMenergyWidth(i) - clus2.EMenergyWidth(i)) > epsilon)
170  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.EMenergyWidth(i) - clus2.EMenergyWidth(i); }
171  if (fabs(clus1.EMenergyWide(i) - clus2.EMenergyWide(i)) > epsilon)
172  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.EMenergyWide(i) - clus2.EMenergyWide(i); }
173  if (fabs(clus1.EMenergyMedium(i) - clus2.EMenergyMedium(i)) > epsilon)
174  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.EMenergyMedium(i) - clus2.EMenergyMedium(i); }
175  if (fabs(clus1.EMenergyNarrow(i) - clus2.EMenergyNarrow(i)) > epsilon)
176  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.EMenergyNarrow(i) - clus2.EMenergyNarrow(i); }
177 
178  }
179  for (int i = 0; i< NUMHADSAMP ; i++) {
180  if (fabs(clus1.HADRadius(i) - clus2.HADRadius(i)) > epsilon)
181  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.HADRadius(i) - clus2.HADRadius(i); }
182  if (fabs(clus1.HADenergyWidth(i) - clus2.HADenergyWidth(i)) > epsilon)
183  {sprintf(name,"EMRadius[%d]",i); varChange[name] =clus1.HADenergyWidth(i) - clus2.HADenergyWidth(i) ; }
184  if (fabs(clus1.HADenergyWide(i) - clus2.HADenergyWide(i)) > epsilon)
185  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.HADenergyWide(i) - clus2.HADenergyWide(i); }
186  if (fabs(clus1.HADenergyMedium(i) - clus2.HADenergyMedium(i)) > epsilon)
187  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.HADenergyMedium(i) - clus2.HADenergyMedium(i); }
188  if (fabs(clus1.HADenergyNarrow(i) - clus2.HADenergyNarrow(i)) > epsilon)
189  {sprintf(name,"EMRadius[%d]",i); varChange[name] = clus1.HADenergyNarrow(i) - clus2.HADenergyNarrow(i); }
190  }
191 
192  return ;
193 }
194 
195 
196 
197 // End of file TrigTauClusterDetails.cxx
TrigTauClusterDetails::EMRadius
float EMRadius(int samp) const
get EM Radius per sampling
Definition: TrigTauClusterDetails.h:80
TrigTauClusterDetails::m_HADenergyWide
float m_HADenergyWide[NUMHADSAMP]
HAD Energy in the normalization region (0.3x0.3)
Definition: TrigTauClusterDetails.h:124
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
TrigTauClusterDetails::HADenergyWide
float HADenergyWide(int samp) const
get HAD Energy in the normalization region (0.3x0.3)
Definition: TrigTauClusterDetails.h:98
TrigTauClusterDetails::EMenergyWide
float EMenergyWide(int samp) const
get EM Energy in the mormalization region (0.3x0.3)
Definition: TrigTauClusterDetails.h:91
TrigTauClusterDetails::EMenergyNarrow
float EMenergyNarrow(int samp) const
get EM Energy in the narrow region (0.1x0.1)
Definition: TrigTauClusterDetails.h:95
TrigTauClusterDetails::m_HADRadius
float m_HADRadius[NUMHADSAMP]
HAD Radius per sampling.
Definition: TrigTauClusterDetails.h:110
TrigTauClusterDetails::~TrigTauClusterDetails
~TrigTauClusterDetails()
Destructor
Definition: TrigTauClusterDetails.cxx:39
TrigTauClusterDetails::m_HADenergyMedium
float m_HADenergyMedium[NUMHADSAMP]
HAD Energy in the wide region (0.2x0.2)
Definition: TrigTauClusterDetails.h:126
TrigTauClusterDetails::m_EMRadius
float m_EMRadius[NUMEMSAMP]
EM Radius per sampling.
Definition: TrigTauClusterDetails.h:102
TrigTauClusterDetails::m_EMenergyWidth
float m_EMenergyWidth[NUMEMSAMP]
Width in EM samplings.
Definition: TrigTauClusterDetails.h:112
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
TrigTauClusterDetails::m_HADenergyWidth
float m_HADenergyWidth[NUMHADSAMP]
Width in HAD samplings.
Definition: TrigTauClusterDetails.h:114
TrigTauClusterDetails::HADenergyMedium
float HADenergyMedium(int samp) const
get HAD Energy in the wide region (0.2x0.2)
Definition: TrigTauClusterDetails.h:100
TrigTauCluster.h
lumiFormat.i
int i
Definition: lumiFormat.py:92
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
NUMHADSAMP
const int NUMHADSAMP
Number of HAD Samples.
Definition: TrigTauClusterDetails.h:28
TrigTauClusterDetails::print
void print(void) const
Prints out cluster variables to std::cout
Definition: TrigTauClusterDetails.cxx:65
TrigTauClusterDetails::m_EMenergyNarrow
float m_EMenergyNarrow[NUMEMSAMP]
EM Energy in the narrow region (0.1x0.1)
Definition: TrigTauClusterDetails.h:121
TrigTauClusterDetails::m_EMenergyWide
float m_EMenergyWide[NUMEMSAMP]
EM Energy in the mormalization region (0.3x0.3)
Definition: TrigTauClusterDetails.h:117
TrigTauClusterDetails::HADenergyWidth
float HADenergyWidth(int samp) const
get Width in HAD samplings
Definition: TrigTauClusterDetails.h:87
TrigTauClusterDetails::HADRadius
float HADRadius(int samp) const
get HAD Radius per sampling
Definition: TrigTauClusterDetails.h:82
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
diff
void diff(const TrigTauClusterDetails &clus1, const TrigTauClusterDetails &clus2, std::map< std::string, double > &varChange)
Comparison with feedback.
Definition: TrigTauClusterDetails.cxx:160
TrigTauClusterDetails::m_EMenergyMedium
float m_EMenergyMedium[NUMEMSAMP]
EM Energy in the wide region (0.2x0.2)
Definition: TrigTauClusterDetails.h:119
TrigTauClusterDetails::EMenergyWidth
float EMenergyWidth(int samp) const
get Width in EM samplings
Definition: TrigTauClusterDetails.h:84
NUMEMSAMP
const int NUMEMSAMP
Number of EM Samples.
Definition: TrigTauClusterDetails.h:26
str
std::string str(const TrigTauClusterDetails &tau)
Helper function for printing the object.
Definition: TrigTauClusterDetails.cxx:121
DEBUG
#define DEBUG
Definition: page_access.h:11
operator<<
MsgStream & operator<<(MsgStream &m, const TrigTauClusterDetails &tau)
Helper operator for printing the object.
Definition: TrigTauClusterDetails.cxx:154
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TrigTauClusterDetails::TrigTauClusterDetails
TrigTauClusterDetails()
Constructor, please note the default values
Definition: TrigTauClusterDetails.cxx:18
TrigTauClusterDetails
Definition: TrigTauClusterDetails.h:30
TrigTauClusterDetails::HADenergyNarrow
float HADenergyNarrow(int samp) const
get HAD Energy in the narrow region (0.1x0.1)
Definition: TrigTauClusterDetails.h:102
TrigTauClusterDetails::EMenergyMedium
float EMenergyMedium(int samp) const
get EM Energy in the wide region (0.2x0.2)
Definition: TrigTauClusterDetails.h:93
TrigTauClusterDetails::m_HADenergyNarrow
float m_HADenergyNarrow[NUMHADSAMP]
HAD Energy in the narrow region (0.1x0.1)
Definition: TrigTauClusterDetails.h:128
operator==
bool operator==(const TrigTauClusterDetails &clus1, const TrigTauClusterDetails &clus2)
Operator comparing two TrigTauCluster objects for equality.
Definition: TrigTauClusterDetails.cxx:97