ATLAS Offline Software
Loading...
Searching...
No Matches
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
7NAME: TrigTauClusterDetails.cxx
8PACKAGE: Trigger/TrigEvent/TrigCaloEvent
9AUTHOR: Denis M.P. Casado
10
11PURPOSE: Keep Details of TrigTauCluster
12DATE: 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
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);
47 m_EMenergyWidth[i] = ttc->EMenergyWidth(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);
56 m_HADenergyWide[i] = ttc->HADenergyWide(i);
59
60 }
61
62}
63// Simple debug method using MsgStream
64void
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
78void
79TrigTauClusterDetails::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
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
121std::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
154MsgStream& operator<< ( MsgStream& m, const TrigTauClusterDetails& tau )
155{
156 m << str(tau);
157 return m;
158}
159
160void 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
#define endmsg
void diff(const TrigTauClusterDetails &clus1, const TrigTauClusterDetails &clus2, std::map< std::string, double > &varChange)
Comparison with feedback.
bool operator==(const TrigTauClusterDetails &clus1, const TrigTauClusterDetails &clus2)
Operator comparing two TrigTauCluster objects for equality.
MsgStream & operator<<(MsgStream &m, const TrigTauClusterDetails &tau)
Helper operator for printing the object.
const int NUMHADSAMP
Number of HAD Samples.
const int NUMEMSAMP
Number of EM Samples.
float EMenergyNarrow(int samp) const
get EM Energy in the narrow region (0.1x0.1)
float m_HADenergyWidth[NUMHADSAMP]
Width in HAD samplings.
float m_HADenergyWide[NUMHADSAMP]
HAD Energy in the normalization region (0.3x0.3)
float m_EMenergyWidth[NUMEMSAMP]
Width in EM samplings.
float HADenergyNarrow(int samp) const
get HAD Energy in the narrow region (0.1x0.1)
float HADRadius(int samp) const
get HAD Radius per sampling
float HADenergyWidth(int samp) const
get Width in HAD samplings
float EMenergyWidth(int samp) const
get Width in EM samplings
float m_EMenergyWide[NUMEMSAMP]
EM Energy in the mormalization region (0.3x0.3)
float m_HADRadius[NUMHADSAMP]
HAD Radius per sampling.
float m_HADenergyNarrow[NUMHADSAMP]
HAD Energy in the narrow region (0.1x0.1)
float m_HADenergyMedium[NUMHADSAMP]
HAD Energy in the wide region (0.2x0.2)
float EMenergyMedium(int samp) const
get EM Energy in the wide region (0.2x0.2)
float EMenergyWide(int samp) const
get EM Energy in the mormalization region (0.3x0.3)
float m_EMRadius[NUMEMSAMP]
EM Radius per sampling.
void print(void) const
Prints out cluster variables to std::cout.
float HADenergyWide(int samp) const
get HAD Energy in the normalization region (0.3x0.3)
float m_EMenergyMedium[NUMEMSAMP]
EM Energy in the wide region (0.2x0.2)
float HADenergyMedium(int samp) const
get HAD Energy in the wide region (0.2x0.2)
TrigTauClusterDetails()
Constructor, please note the default values.
float m_EMenergyNarrow[NUMEMSAMP]
EM Energy in the narrow region (0.1x0.1)
float EMRadius(int samp) const
get EM Radius per sampling