CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
L1MuDTTFConfig Class Reference

#include <L1MuDTTFConfig.h>

Public Member Functions

int getBxMax () const
 
int getBxMin () const
 
edm::InputTag getCSCTrSInputTag () const
 
edm::InputTag getDTDigiInputTag () const
 
bool getEtaCanc () const
 
bool getEtaTF () const
 
int getExtTSFilter () const
 
int getNbitsExtPhi () const
 
int getNbitsExtPhib () const
 
int getNbitsPhiPhi () const
 
int getNbitsPhiPhib () const
 
int getNbitsPtaPhi () const
 
int getNbitsPtaPhib () const
 
bool getopenLUTs () const
 
bool getTSOutOfTimeFilter () const
 
int getTSOutOfTimeWindow () const
 
bool getUseEX21 () const
 
 L1MuDTTFConfig (const edm::ParameterSet &ps)
 constructor More...
 
bool overlap () const
 
virtual ~L1MuDTTFConfig ()
 destructor More...
 

Static Public Member Functions

static bool Debug ()
 
static bool Debug (int level)
 
static int getBxMaxGlobally ()
 
static int getBxMinGlobally ()
 
static int getDebugLevel ()
 
static void setDebugLevel (int level)
 

Private Member Functions

void setDefaults ()
 

Private Attributes

int m_BxMax
 
int m_BxMin
 
edm::InputTag m_CSCTrSInputTag
 
edm::InputTag m_DTDigiInputTag
 
bool m_etacanc
 
bool m_etaTF
 
int m_extTSFilter
 
int m_NbitsExtPhi
 
int m_NbitsExtPhib
 
int m_NbitsPhiPhi
 
int m_NbitsPhiPhib
 
int m_NbitsPtaPhi
 
int m_NbitsPtaPhib
 
bool m_openLUTs
 
bool m_overlap
 
const edm::ParameterSetm_ps
 
bool m_TSOutOfTimeFilter
 
int m_TSOutOfTimeWindow
 
bool m_useEX21
 

Static Private Attributes

static std::atomic< int > m_dbgLevel {-1}
 
static std::atomic< bool > m_debug {false}
 
static std::atomic< int > s_BxMax {-7}
 
static std::atomic< int > s_BxMin {-9}
 

Detailed Description

Configuration parameters for L1MuDTTrackFinder

N. Neumeister CERN EP

Definition at line 38 of file L1MuDTTFConfig.h.

Constructor & Destructor Documentation

◆ L1MuDTTFConfig()

L1MuDTTFConfig::L1MuDTTFConfig ( const edm::ParameterSet ps)

constructor

Definition at line 42 of file L1MuDTTFConfig.cc.

42  {
43  m_ps = &ps;
44  setDefaults();
45 }

◆ ~L1MuDTTFConfig()

L1MuDTTFConfig::~L1MuDTTFConfig ( )
virtual

destructor

Definition at line 50 of file L1MuDTTFConfig.cc.

50 {}

Member Function Documentation

◆ Debug() [1/2]

static bool L1MuDTTFConfig::Debug ( )
inlinestatic

◆ Debug() [2/2]

static bool L1MuDTTFConfig::Debug ( int  level)
inlinestatic

Definition at line 50 of file L1MuDTTFConfig.h.

50 { return (m_debug && m_dbgLevel >= level); }

References personalPlayback::level, m_dbgLevel, and m_debug.

◆ getBxMax()

int L1MuDTTFConfig::getBxMax ( ) const
inline

Definition at line 58 of file L1MuDTTFConfig.h.

58 { return m_BxMax; }

References m_BxMax.

◆ getBxMaxGlobally()

static int L1MuDTTFConfig::getBxMaxGlobally ( )
inlinestatic

Definition at line 55 of file L1MuDTTFConfig.h.

55 { return s_BxMax; }

References s_BxMax.

Referenced by CSCTFDTReceiver::process().

◆ getBxMin()

int L1MuDTTFConfig::getBxMin ( ) const
inline

Definition at line 57 of file L1MuDTTFConfig.h.

57 { return m_BxMin; }

References m_BxMin.

◆ getBxMinGlobally()

static int L1MuDTTFConfig::getBxMinGlobally ( )
inlinestatic

Definition at line 54 of file L1MuDTTFConfig.h.

54 { return s_BxMin; }

References s_BxMin.

Referenced by CSCTFDTReceiver::process().

◆ getCSCTrSInputTag()

edm::InputTag L1MuDTTFConfig::getCSCTrSInputTag ( ) const
inline

Definition at line 47 of file L1MuDTTFConfig.h.

47 { return m_CSCTrSInputTag; }

References m_CSCTrSInputTag.

Referenced by L1MuDTSectorReceiver::receiveCSCData().

◆ getDebugLevel()

static int L1MuDTTFConfig::getDebugLevel ( )
inlinestatic

Definition at line 53 of file L1MuDTTFConfig.h.

53 { return m_dbgLevel; }

References m_dbgLevel.

◆ getDTDigiInputTag()

edm::InputTag L1MuDTTFConfig::getDTDigiInputTag ( ) const
inline

Definition at line 46 of file L1MuDTTFConfig.h.

46 { return m_DTDigiInputTag; }

References m_DTDigiInputTag.

◆ getEtaCanc()

bool L1MuDTTFConfig::getEtaCanc ( ) const
inline

Definition at line 64 of file L1MuDTTFConfig.h.

64 { return m_etacanc; }

References m_etacanc.

Referenced by L1MuDTSectorReceiver::receiveCSCData().

◆ getEtaTF()

bool L1MuDTTFConfig::getEtaTF ( ) const
inline

Definition at line 63 of file L1MuDTTFConfig.h.

63 { return m_etaTF; }

References m_etaTF.

Referenced by L1MuDTEtaProcessor::run().

◆ getExtTSFilter()

int L1MuDTTFConfig::getExtTSFilter ( ) const
inline

Definition at line 60 of file L1MuDTTFConfig.h.

60 { return m_extTSFilter; }

References m_extTSFilter.

◆ getNbitsExtPhi()

int L1MuDTTFConfig::getNbitsExtPhi ( ) const
inline

Definition at line 67 of file L1MuDTTFConfig.h.

67 { return m_NbitsExtPhi; }

References m_NbitsExtPhi.

Referenced by L1MuDTSectorReceiver::receiveDTBXData().

◆ getNbitsExtPhib()

int L1MuDTTFConfig::getNbitsExtPhib ( ) const
inline

Definition at line 68 of file L1MuDTTFConfig.h.

68 { return m_NbitsExtPhib; }

References m_NbitsExtPhib.

◆ getNbitsPhiPhi()

int L1MuDTTFConfig::getNbitsPhiPhi ( ) const
inline

Definition at line 71 of file L1MuDTTFConfig.h.

71 { return m_NbitsPhiPhi; }

References m_NbitsPhiPhi.

Referenced by L1MuDTAssignmentUnit::PhiAU().

◆ getNbitsPhiPhib()

int L1MuDTTFConfig::getNbitsPhiPhib ( ) const
inline

Definition at line 72 of file L1MuDTTFConfig.h.

72 { return m_NbitsPhiPhib; }

References m_NbitsPhiPhib.

Referenced by L1MuDTAssignmentUnit::PhiAU().

◆ getNbitsPtaPhi()

int L1MuDTTFConfig::getNbitsPtaPhi ( ) const
inline

Definition at line 69 of file L1MuDTTFConfig.h.

69 { return m_NbitsPtaPhi; }

References m_NbitsPtaPhi.

Referenced by L1MuDTAssignmentUnit::setPrecision().

◆ getNbitsPtaPhib()

int L1MuDTTFConfig::getNbitsPtaPhib ( ) const
inline

Definition at line 70 of file L1MuDTTFConfig.h.

70 { return m_NbitsPtaPhib; }

References m_NbitsPtaPhib.

Referenced by L1MuDTAssignmentUnit::setPrecision().

◆ getopenLUTs()

bool L1MuDTTFConfig::getopenLUTs ( ) const
inline

Definition at line 61 of file L1MuDTTFConfig.h.

61 { return m_openLUTs; }

References m_openLUTs.

Referenced by L1MuDTEUX::run().

◆ getTSOutOfTimeFilter()

bool L1MuDTTFConfig::getTSOutOfTimeFilter ( ) const
inline

Definition at line 65 of file L1MuDTTFConfig.h.

65 { return m_TSOutOfTimeFilter; }

References m_TSOutOfTimeFilter.

Referenced by L1MuDTSectorReceiver::receiveDTBXData().

◆ getTSOutOfTimeWindow()

int L1MuDTTFConfig::getTSOutOfTimeWindow ( ) const
inline

Definition at line 66 of file L1MuDTTFConfig.h.

66 { return m_TSOutOfTimeWindow; }

References m_TSOutOfTimeWindow.

Referenced by L1MuDTSectorReceiver::receiveDTBXData().

◆ getUseEX21()

bool L1MuDTTFConfig::getUseEX21 ( ) const
inline

Definition at line 62 of file L1MuDTTFConfig.h.

62 { return m_useEX21; }

References m_useEX21.

Referenced by L1MuDTExtrapolationUnit::run().

◆ overlap()

bool L1MuDTTFConfig::overlap ( ) const
inline

Definition at line 59 of file L1MuDTTFConfig.h.

59 { return m_overlap; }

References m_overlap.

Referenced by L1MuDTSectorReceiver::run().

◆ setDebugLevel()

static void L1MuDTTFConfig::setDebugLevel ( int  level)
inlinestatic

Definition at line 52 of file L1MuDTTFConfig.h.

52 { m_dbgLevel = level; }

References personalPlayback::level, and m_dbgLevel.

◆ setDefaults()

void L1MuDTTFConfig::setDefaults ( )
private

Definition at line 56 of file L1MuDTTFConfig.cc.

56  {
57  m_DTDigiInputTag = m_ps->getParameter<edm::InputTag>("DTDigi_Source");
58  m_CSCTrSInputTag = m_ps->getParameter<edm::InputTag>("CSCStub_Source");
59 
60  m_debug = true;
61  m_dbgLevel = m_ps->getUntrackedParameter<int>("Debug", 0);
62 
63  m_overlap = m_ps->getUntrackedParameter<bool>("Overlap", true);
64 
65  // set min and max bunch crossing
66  m_BxMin = m_ps->getUntrackedParameter<int>("BX_min", -9);
67  m_BxMax = m_ps->getUntrackedParameter<int>("BX_max", 7);
68  s_BxMin = m_BxMin;
69  s_BxMax = m_BxMax;
70 
71  // set Filter for Extrapolator
72  m_extTSFilter = m_ps->getUntrackedParameter<int>("Extrapolation_Filter", 1);
73 
74  // set switch for open LUTs usage
75  m_openLUTs = m_ps->getUntrackedParameter<bool>("Open_LUTs", false);
76 
77  // set switch for EX21 usage
78  m_useEX21 = m_ps->getUntrackedParameter<bool>("Extrapolation_21", false);
79 
80  // set switch for eta track finder usage
81  m_etaTF = m_ps->getUntrackedParameter<bool>("EtaTrackFinder", true);
82 
83  // set switch for etaFlag cancellation of CSC segments
84  m_etacanc = m_ps->getUntrackedParameter<bool>("CSC_Eta_Cancellation", false);
85 
86  // set Filter for Out-of-time Track Segments
87  m_TSOutOfTimeFilter = m_ps->getUntrackedParameter<bool>("OutOfTime_Filter", false);
88  m_TSOutOfTimeWindow = m_ps->getUntrackedParameter<int>("OutOfTime_Filter_Window", 1);
89 
90  // set precision for extrapolation
91  m_NbitsExtPhi = m_ps->getUntrackedParameter<int>("Extrapolation_nbits_Phi", 8);
92  m_NbitsExtPhib = m_ps->getUntrackedParameter<int>("Extrapolation_nbits_PhiB", 8);
93 
94  // set precision for pt-assignment
95  m_NbitsPtaPhi = m_ps->getUntrackedParameter<int>("PT_Assignment_nbits_Phi", 12);
96  m_NbitsPtaPhib = m_ps->getUntrackedParameter<int>("PT_Assignment_nbits_PhiB", 10);
97 
98  // set precision for phi-assignment look-up tables
99  m_NbitsPhiPhi = m_ps->getUntrackedParameter<int>("PHI_Assignment_nbits_Phi", 10);
100  m_NbitsPhiPhib = m_ps->getUntrackedParameter<int>("PHI_Assignment_nbits_PhiB", 10);
101 
102  if (Debug(1))
103  cout << endl;
104  if (Debug(1))
105  cout << "*******************************************" << endl;
106  if (Debug(1))
107  cout << "**** L1 barrel Track Finder settings : ****" << endl;
108  if (Debug(1))
109  cout << "*******************************************" << endl;
110  if (Debug(1))
111  cout << endl;
112 
113  if (Debug(1))
114  cout << "L1 barrel Track Finder : DT Digi Source: " << m_DTDigiInputTag << endl;
115  if (Debug(1))
116  cout << "L1 barrel Track Finder : CSC Stub Source: " << m_CSCTrSInputTag << endl;
117  if (Debug(1))
118  cout << endl;
119 
120  if (Debug(1))
121  cout << "L1 barrel Track Finder : debug level: " << m_dbgLevel << endl;
122 
123  if (Debug(1) && m_overlap) {
124  cout << "L1 barrel Track Finder : barrel-endcap overlap region : on" << endl;
125  }
126  if (Debug(1) && !m_overlap) {
127  cout << "L1 barrel Track Finder : barrel-endcap overlap region : off" << endl;
128  }
129 
130  if (Debug(1))
131  cout << "L1 barrel Track Finder : minimal bunch-crossing : " << m_BxMin << endl;
132  if (Debug(1))
133  cout << "L1 barrel Track Finder : maximal bunch-crossing : " << m_BxMax << endl;
134 
135  if (Debug(1))
136  cout << "L1 barrel Track Finder : Extrapolation Filter : " << m_extTSFilter << endl;
137 
138  if (Debug(1) && m_openLUTs) {
139  cout << "L1 barrel Track Finder : use open LUTs : on" << endl;
140  }
141  if (Debug(1) && !m_openLUTs) {
142  cout << "L1 barrel Track Finder : use open LUTs : off" << endl;
143  }
144 
145  if (Debug(1) && m_useEX21) {
146  cout << "L1 barrel Track Finder : use EX21 extrapolations : on" << endl;
147  }
148  if (Debug(1) && !m_useEX21) {
149  cout << "L1 barrel Track Finder : use EX21 extrapolations : off" << endl;
150  }
151 
152  if (Debug(1) && m_etaTF) {
153  cout << "L1 barrel Track Finder : Eta Track Finder : on" << endl;
154  }
155  if (Debug(1) && !m_etaTF) {
156  cout << "L1 barrel Track Finder : Eta Track Finder : off" << endl;
157  }
158 
159  if (Debug(1) && m_etacanc) {
160  cout << "L1 barrel Track Finder : CSC etaFlag cancellation : on" << endl;
161  }
162  if (Debug(1) && !m_etacanc) {
163  cout << "L1 barrel Track Finder : CSC etaFlag cancellation : off" << endl;
164  }
165 
166  if (Debug(1) && m_TSOutOfTimeFilter) {
167  cout << "L1 barrel Track Finder : out-of-time TS filter : on" << endl;
168  cout << "L1 barrel Track Finder : out-of-time TS filter window : " << m_TSOutOfTimeWindow << endl;
169  }
170  if (Debug(1) && !m_TSOutOfTimeFilter) {
171  cout << "L1 barrel Track Finder : out-of-time TS filter : off" << endl;
172  }
173 
174  if (Debug(1))
175  cout << "L1 barrel Track Finder : # of bits used for phi (extrapolation) : " << m_NbitsExtPhi << endl;
176  if (Debug(1))
177  cout << "L1 barrel Track Finder : # of bits used for phib (extrapolation) : " << m_NbitsExtPhib << endl;
178  if (Debug(1))
179  cout << "L1 barrel Track Finder : # of bits used for phi (pt-assignment) : " << m_NbitsPtaPhi << endl;
180  if (Debug(1))
181  cout << "L1 barrel Track Finder : # of bits used for phib (pt-assignment) : " << m_NbitsPtaPhib << endl;
182  if (Debug(1))
183  cout << "L1 barrel Track Finder : # of bits used for phi (phi-assignment) : " << m_NbitsPhiPhi << endl;
184  if (Debug(1))
185  cout << "L1 barrel Track Finder : # of bits used for phib (phi-assignment) : " << m_NbitsPhiPhib << endl;
186 }

References gather_cfg::cout, and Debug.

Member Data Documentation

◆ m_BxMax

int L1MuDTTFConfig::m_BxMax
private

Definition at line 91 of file L1MuDTTFConfig.h.

Referenced by getBxMax().

◆ m_BxMin

int L1MuDTTFConfig::m_BxMin
private

Definition at line 90 of file L1MuDTTFConfig.h.

Referenced by getBxMin().

◆ m_CSCTrSInputTag

edm::InputTag L1MuDTTFConfig::m_CSCTrSInputTag
private

Definition at line 81 of file L1MuDTTFConfig.h.

Referenced by getCSCTrSInputTag().

◆ m_dbgLevel

std::atomic< int > L1MuDTTFConfig::m_dbgLevel {-1}
staticprivate

Definition at line 84 of file L1MuDTTFConfig.h.

Referenced by Debug(), getDebugLevel(), and setDebugLevel().

◆ m_debug

std::atomic< bool > L1MuDTTFConfig::m_debug {false}
staticprivate

Definition at line 83 of file L1MuDTTFConfig.h.

Referenced by Debug().

◆ m_DTDigiInputTag

edm::InputTag L1MuDTTFConfig::m_DTDigiInputTag
private

Definition at line 80 of file L1MuDTTFConfig.h.

Referenced by getDTDigiInputTag().

◆ m_etacanc

bool L1MuDTTFConfig::m_etacanc
private

Definition at line 101 of file L1MuDTTFConfig.h.

Referenced by getEtaCanc().

◆ m_etaTF

bool L1MuDTTFConfig::m_etaTF
private

Definition at line 99 of file L1MuDTTFConfig.h.

Referenced by getEtaTF().

◆ m_extTSFilter

int L1MuDTTFConfig::m_extTSFilter
private

Definition at line 93 of file L1MuDTTFConfig.h.

Referenced by getExtTSFilter().

◆ m_NbitsExtPhi

int L1MuDTTFConfig::m_NbitsExtPhi
private

Definition at line 106 of file L1MuDTTFConfig.h.

Referenced by getNbitsExtPhi().

◆ m_NbitsExtPhib

int L1MuDTTFConfig::m_NbitsExtPhib
private

Definition at line 107 of file L1MuDTTFConfig.h.

Referenced by getNbitsExtPhib().

◆ m_NbitsPhiPhi

int L1MuDTTFConfig::m_NbitsPhiPhi
private

Definition at line 110 of file L1MuDTTFConfig.h.

Referenced by getNbitsPhiPhi().

◆ m_NbitsPhiPhib

int L1MuDTTFConfig::m_NbitsPhiPhib
private

Definition at line 111 of file L1MuDTTFConfig.h.

Referenced by getNbitsPhiPhib().

◆ m_NbitsPtaPhi

int L1MuDTTFConfig::m_NbitsPtaPhi
private

Definition at line 108 of file L1MuDTTFConfig.h.

Referenced by getNbitsPtaPhi().

◆ m_NbitsPtaPhib

int L1MuDTTFConfig::m_NbitsPtaPhib
private

Definition at line 109 of file L1MuDTTFConfig.h.

Referenced by getNbitsPtaPhib().

◆ m_openLUTs

bool L1MuDTTFConfig::m_openLUTs
private

Definition at line 95 of file L1MuDTTFConfig.h.

Referenced by getopenLUTs().

◆ m_overlap

bool L1MuDTTFConfig::m_overlap
private

Definition at line 88 of file L1MuDTTFConfig.h.

Referenced by overlap().

◆ m_ps

const edm::ParameterSet* L1MuDTTFConfig::m_ps
private

Definition at line 78 of file L1MuDTTFConfig.h.

◆ m_TSOutOfTimeFilter

bool L1MuDTTFConfig::m_TSOutOfTimeFilter
private

Definition at line 103 of file L1MuDTTFConfig.h.

Referenced by getTSOutOfTimeFilter().

◆ m_TSOutOfTimeWindow

int L1MuDTTFConfig::m_TSOutOfTimeWindow
private

Definition at line 104 of file L1MuDTTFConfig.h.

Referenced by getTSOutOfTimeWindow().

◆ m_useEX21

bool L1MuDTTFConfig::m_useEX21
private

Definition at line 97 of file L1MuDTTFConfig.h.

Referenced by getUseEX21().

◆ s_BxMax

std::atomic< int > L1MuDTTFConfig::s_BxMax {-7}
staticprivate

Definition at line 86 of file L1MuDTTFConfig.h.

Referenced by getBxMaxGlobally().

◆ s_BxMin

std::atomic< int > L1MuDTTFConfig::s_BxMin {-9}
staticprivate

Definition at line 85 of file L1MuDTTFConfig.h.

Referenced by getBxMinGlobally().

personalPlayback.level
level
Definition: personalPlayback.py:22
gather_cfg.cout
cout
Definition: gather_cfg.py:144
L1MuDTTFConfig::m_CSCTrSInputTag
edm::InputTag m_CSCTrSInputTag
Definition: L1MuDTTFConfig.h:81
L1MuDTTFConfig::m_TSOutOfTimeFilter
bool m_TSOutOfTimeFilter
Definition: L1MuDTTFConfig.h:103
L1MuDTTFConfig::m_ps
const edm::ParameterSet * m_ps
Definition: L1MuDTTFConfig.h:78
L1MuDTTFConfig::m_BxMax
int m_BxMax
Definition: L1MuDTTFConfig.h:91
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
L1MuDTTFConfig::m_etaTF
bool m_etaTF
Definition: L1MuDTTFConfig.h:99
L1MuDTTFConfig::s_BxMax
static std::atomic< int > s_BxMax
Definition: L1MuDTTFConfig.h:86
L1MuDTTFConfig::m_NbitsPhiPhib
int m_NbitsPhiPhib
Definition: L1MuDTTFConfig.h:111
L1MuDTTFConfig::m_useEX21
bool m_useEX21
Definition: L1MuDTTFConfig.h:97
L1MuDTTFConfig::m_NbitsExtPhib
int m_NbitsExtPhib
Definition: L1MuDTTFConfig.h:107
L1MuDTTFConfig::m_etacanc
bool m_etacanc
Definition: L1MuDTTFConfig.h:101
L1MuDTTFConfig::m_debug
static std::atomic< bool > m_debug
Definition: L1MuDTTFConfig.h:83
L1MuDTTFConfig::m_NbitsExtPhi
int m_NbitsExtPhi
Definition: L1MuDTTFConfig.h:106
L1MuDTTFConfig::m_DTDigiInputTag
edm::InputTag m_DTDigiInputTag
Definition: L1MuDTTFConfig.h:80
L1MuDTTFConfig::m_dbgLevel
static std::atomic< int > m_dbgLevel
Definition: L1MuDTTFConfig.h:84
L1MuDTTFConfig::m_NbitsPhiPhi
int m_NbitsPhiPhi
Definition: L1MuDTTFConfig.h:110
L1MuDTTFConfig::m_BxMin
int m_BxMin
Definition: L1MuDTTFConfig.h:90
L1MuDTTFConfig::m_NbitsPtaPhi
int m_NbitsPtaPhi
Definition: L1MuDTTFConfig.h:108
L1MuDTTFConfig::s_BxMin
static std::atomic< int > s_BxMin
Definition: L1MuDTTFConfig.h:85
L1MuDTTFConfig::m_openLUTs
bool m_openLUTs
Definition: L1MuDTTFConfig.h:95
L1MuDTTFConfig::setDefaults
void setDefaults()
Definition: L1MuDTTFConfig.cc:56
L1MuDTTFConfig::m_overlap
bool m_overlap
Definition: L1MuDTTFConfig.h:88
L1MuDTTFConfig::m_TSOutOfTimeWindow
int m_TSOutOfTimeWindow
Definition: L1MuDTTFConfig.h:104
L1MuDTTFConfig::m_extTSFilter
int m_extTSFilter
Definition: L1MuDTTFConfig.h:93
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
L1MuDTTFConfig::m_NbitsPtaPhib
int m_NbitsPtaPhib
Definition: L1MuDTTFConfig.h:109
L1MuDTTFConfig::Debug
static bool Debug()
Definition: L1MuDTTFConfig.h:49
edm::InputTag
Definition: InputTag.h:15