ATLAS Offline Software
Loading...
Searching...
No Matches
TrigTauCluster.h File Reference
#include "AthLinks/ElementLink.h"
#include "TrigCaloEvent/TrigCaloCluster.h"
#include "TrigCaloEvent/TrigTauClusterDetailsContainer.h"
Include dependency graph for TrigTauCluster.h:

Go to the source code of this file.

Classes

class  TrigTauCluster
 Class with calibrated variables for tau clustering. More...

Functions

std::string str (const TrigTauCluster &tau)
 Helper function for printing the object.
MsgStream & operator<< (MsgStream &m, const TrigTauCluster &tau)
 Helper operator for printing the object.
bool operator== (const TrigTauCluster &left, const TrigTauCluster &right)
 Operator comparing two TrigTauCluster objects for equality.
bool operator!= (const TrigTauCluster &left, const TrigTauCluster &right)
 Operator comparing two TrigTauCluster objects for inequality.
void diff (const TrigTauCluster &left, const TrigTauCluster &right, std::map< std::string, double > &varChange)
 Comparison with feedback.

Function Documentation

◆ diff()

void diff ( const TrigTauCluster & left,
const TrigTauCluster & right,
std::map< std::string, double > & varChange )

Comparison with feedback.

Definition at line 244 of file TrigTauCluster.cxx.

245{
246 const double epsilon = 0.001;
247 diff(static_cast<const TrigCaloCluster&>(clus1), static_cast<const TrigCaloCluster&>(clus2), varChange);
248
249 if(std::fabs(clus1.EMenergy() - clus2.EMenergy()) > epsilon)
250 {
251 varChange["EMEnergy"] = clus1.EMenergy() - clus2.EMenergy();
252 }
253 if(std::fabs(clus1.HADenergy() - clus2.HADenergy()) > epsilon)
254 {
255 varChange["HADenergy"] = clus1.HADenergy() - clus2.HADenergy();
256 }
257 if(std::fabs(clus1.eCalib() - clus2.eCalib()) > epsilon)
258 {
259 varChange["eCalib"] = clus1.eCalib() - clus2.eCalib();
260 }
261 if(std::fabs(clus1.EMRadius2() - clus2.EMRadius2()) > epsilon)
262 {
263 varChange["EMRadius2"] = clus1.EMRadius2() - clus2.EMRadius2();
264 }
265 if(std::fabs(clus1.CaloRadius() - clus2.CaloRadius()) > epsilon)
266 {
267 varChange["CaloRadius"] = clus1.CaloRadius() - clus2.CaloRadius();
268 }
269 if(std::fabs(clus1.IsoFrac() - clus2.IsoFrac()) > epsilon)
270 {
271 varChange["IsoFrac"] = clus1.IsoFrac() - clus2.IsoFrac();
272 }
273 if(std::abs(clus1.numStripCells() - clus2.numStripCells()) > epsilon)
274 {
275 varChange["numStripCells"] = clus1.numStripCells() - clus2.numStripCells();
276 }
277 if(std::abs(clus1.numTotCells() - clus2.numTotCells()) > epsilon)
278 {
279 varChange["numTotCells"] = clus1.numTotCells() - clus2.numTotCells();
280 }
281 if(std::fabs(clus1.stripWidth() - clus2.stripWidth()) > epsilon)
282 {
283 varChange["stripWidth"] = clus1.stripWidth() - clus2.stripWidth();
284 }
285 if(std::fabs(clus1.stripWidthOffline() - clus2.stripWidthOffline()) > epsilon)
286 {
287 varChange["stripWidthOffline"] = clus1.stripWidthOffline() - clus2.stripWidthOffline();
288 }
289 if(std::fabs(clus1.EMRadius3S() - clus2.EMRadius3S()) > epsilon)
290 {
291 varChange["EMRadius3S"] = clus1.EMRadius3S() - clus2.EMRadius3S();
292 }
293 if(std::fabs(clus1.CoreFrac() - clus2.CoreFrac()) > epsilon)
294 {
295 varChange["CoreFrac"] = clus1.CoreFrac() - clus2.CoreFrac();
296 }
297 if(std::fabs(clus1.EMFrac() - clus2.EMFrac()) > epsilon)
298 {
299 varChange["EMFrac"] = clus1.EMFrac() - clus2.EMFrac();
300 }
301 if(std::fabs(clus1.HadRadius() - clus2.HadRadius()) > epsilon)
302 {
303 varChange["HadRadius"] = clus1.HadRadius() - clus2.HadRadius();
304 }
305
306 if(clus1.clusterDetails() != 0 && clus2.clusterDetails() == 0)
307 {
308 varChange["clusterDetails "] = 1;
309 }
310 else if(clus1.clusterDetails() == 0 && clus2.clusterDetails() != 0)
311 {
312 varChange["clusterDetails "] = -1;
313 }
314 else if(clus1.clusterDetails() != 0 && clus2.clusterDetails() != 0 && clus1.clusterDetails() != clus2.clusterDetails())
315 {
316 diff(clus1.clusterDetails(), clus2.clusterDetails(), varChange);
317 }
318 return;
319}
void diff(const TrigTauCluster &clus1, const TrigTauCluster &clus2, std::map< std::string, double > &varChange)
Comparison with feedback.

◆ operator!=()

bool operator!= ( const TrigTauCluster & left,
const TrigTauCluster & right )
inline

Operator comparing two TrigTauCluster objects for inequality.

Definition at line 204 of file TrigTauCluster.h.

205{
206 return !(left == right);
207}

◆ operator<<()

MsgStream & operator<< ( MsgStream & m,
const TrigTauCluster & tau )

Helper operator for printing the object.

Definition at line 238 of file TrigTauCluster.cxx.

239{
240 return (m << str(tau));
241}

◆ operator==()

bool operator== ( const TrigTauCluster & left,
const TrigTauCluster & right )

Operator comparing two TrigTauCluster objects for equality.

Definition at line 181 of file TrigTauCluster.cxx.

182{
183 if(static_cast<const TrigCaloCluster&>(clus1) != static_cast<const TrigCaloCluster&>(clus2))
184 {
185 return false;
186 }
187
188 double epsilon=0.001;
189 if(std::fabs(clus1.EMenergy() - clus2.EMenergy()) > epsilon) return false;
190 if(std::fabs(clus1.HADenergy() - clus2.HADenergy()) > epsilon) return false;
191 if(std::fabs(clus1.eCalib() - clus2.eCalib()) > epsilon) return false;
192 if(std::fabs(clus1.EMRadius2() - clus2.EMRadius2()) > epsilon) return false;
193 if(std::fabs(clus1.CaloRadius() - clus2.CaloRadius()) > epsilon) return false;
194 if(std::fabs(clus1.IsoFrac() - clus2.IsoFrac()) > epsilon) return false;
195 if(std::abs(clus1.numStripCells() - clus2.numStripCells()) > epsilon) return false;
196 if(std::abs(clus1.numTotCells() - clus2.numTotCells()) > epsilon) return false;
197 if(std::fabs(clus1.stripWidth() - clus2.stripWidth()) > epsilon) return false;
198 if(std::fabs(clus1.stripWidthOffline() - clus2.stripWidthOffline() ) > epsilon) return false;
199 if(std::fabs(clus1.EMRadius3S() - clus2.EMRadius3S()) > epsilon) return false;
200 if(std::fabs(clus1.CoreFrac() - clus2.CoreFrac()) > epsilon) return false;
201 if(std::fabs(clus1.EMFrac() - clus2.EMFrac()) > epsilon) return false;
202 if(std::fabs(clus1.HadRadius() - clus2.HadRadius()) > epsilon) return false;
203
204 if(clus1.clusterDetails() != 0 && clus2.clusterDetails() != 0 && clus1.clusterDetails() != clus2.clusterDetails())
205 {
206 return false;
207 }
208
209 return true;
210}

◆ str()

std::string str ( const TrigTauCluster & tau)

Helper function for printing the object.

Definition at line 212 of file TrigTauCluster.cxx.

213{
214 std::stringstream stream;
215 stream << str(static_cast<const TrigCaloCluster&>(tau))
216 << "; EMenergy:" << tau.EMenergy()
217 << "; HADenergy:" << tau.HADenergy()
218 << "; eCalib:" << tau.eCalib()
219 << "; EMRadius2:" << tau.EMRadius2()
220 << "; CaloRadius:" << tau.CaloRadius()
221 << "; IsoFrac:" << tau.IsoFrac()
222 << "; numStripCells:" << tau.numStripCells()
223 << "; numTotCells:" << tau.numTotCells()
224 << "; stripWidth:" << tau.stripWidth()
225 << "; stripWidthOffline:" << tau.stripWidthOffline()
226 << "; EMRadius3S:" << tau.EMRadius3S()
227 << "; CoreFrac:" << tau.CoreFrac()
228 << "; EMFrac:" << tau.EMFrac()
229 << "; HadRadius:" << tau.HadRadius();
230 if(tau.clusterDetails() != 0)
231 {
232 stream << "; " << str(*tau.clusterDetails());
233 }
234
235 return stream.str();
236}
float HadRadius() const
get Hadronic Radius
int numStripCells() const
get Number of fired strips
float EMRadius3S() const
get EM Radius 3S
float CoreFrac() const
get Core Fraction
const TrigTauClusterDetails * clusterDetails() const
accessor to TrigTauClusterDetails*
float EMRadius2() const
get EM Radius
float eCalib() const
get Calibrated Energy
float stripWidthOffline() const
get Width as in offline
float stripWidth() const
get Width in the strip sampling
int numTotCells() const
get Number of total cells in the cluster
float EMenergy() const
get EM Energy
float CaloRadius() const
get Total Calo Radius
float HADenergy() const
get HAD Energy
float IsoFrac() const
get Isolation Fraction
float EMFrac() const
get EM Fraction