ATLAS Offline Software
Loading...
Searching...
No Matches
IsolationHelpers.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef XAODPRIMITIVES_ISOLATIONHELPERS_H
8#define XAODPRIMITIVES_ISOLATIONHELPERS_H
9
13#include <cmath>
14#include <cassert>
15#include <iostream>
16
17namespace xAOD {
18
19 namespace Iso {
20
23 return static_cast<IsolationConeSize>(type%10);
24 }
25
28 return 0.1 + (static_cast<int>(type))*0.05;
29 }
30
32 inline IsolationConeSize coneSize( float size ){
33 int index = static_cast<int>(size*20)-2; // *20 equiv. to /0.05;
34 assert ( (index>-1) && (index < static_cast<int>(numIsolationConeSizes) ) );
35 IsolationConeSize rel = static_cast<IsolationConeSize>(index);
36 assert ( fabs(size-coneSize(rel) )<0.0001 ); // this will fail if the input size is 0.3001...
37 return rel;
38 }
39
41 inline float coneSize( IsolationType type ){
43 return coneSize(size);
44 }
45
48 int subtype = type/10;
49 if( subtype >= static_cast<int>(numIsolationFlavours) ) return numIsolationFlavours;
50 return static_cast<IsolationFlavour>(subtype);
51 }
52
53 // create a IsolationType from IsolationFlavour and IsolationConeSize
55 return static_cast<IsolationType>( 10*static_cast<int>(flavour) + static_cast<int>(coneSize) );
56 }
57
58 template< class IsoType>
59 std::string toString( const IsoType& iso ) {
60 return toCString(iso);
61 }
62
63
64 } // namespace Iso
65
66
67} // namespace xAOD
68
69#endif // XAODPRIMITIVES_ISOLATIONHELPERS_H
70
Definition index.py:1
Namespace holding the IsolationType enumeration.
IsolationFlavour isolationFlavour(IsolationType type)
convert Isolation Type into Isolation Flavour
IsolationConeSize enumconeSize(IsolationType type)
convert Isolation Type into cone size
IsolationType
Overall enumeration for isolation types in xAOD files.
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
static const char * toCString(IsolationConeSize conesize)
IsolationType isolationType(IsolationFlavour flavour, IsolationConeSize coneSize)
float coneSize(IsolationConeSize type)
convert Isolation Size into cone size
IsolationConeSize
Enumeration for different cone sizes.
std::string toString(const IsoType &iso)
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.