CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
RBCProcessRPCDigis Class Reference

#include <RBCProcessRPCDigis.h>

Inheritance diagram for RBCProcessRPCDigis:
ProcessInputSignal

Public Member Functions

void builddata ()
 
void configure ()
 
void initialize (std::vector< RPCData * > &)
 
int next ()
 
void print_output ()
 
 RBCProcessRPCDigis ()
 Standard constructor. More...
 
 RBCProcessRPCDigis (const edm::ESHandle< RPCGeometry > &, const edm::Handle< RPCDigiCollection > &)
 
void reset ()
 
RPCInputSignalretrievedata ()
 
void rewind ()
 
void showfirst ()
 
virtual ~RBCProcessRPCDigis ()
 Destructor. More...
 
- Public Member Functions inherited from ProcessInputSignal
virtual ~ProcessInputSignal ()
 

Private Member Functions

int getBarrelLayer (const int &, const int &)
 
void setDigiAt (int, int)
 
void setInputBit (std::bitset< 15 > &, int)
 

Private Attributes

RPCDatam_block
 
std::map< int, RBCInput * > m_data
 
bool m_debug
 
RPCDigiCollection::DigiRangeIterator m_detUnitItr
 
std::map< int,
l1trigger::Counters * > 
m_digiCounters
 
RPCDigiCollection::const_iterator m_digiItr
 
std::map< int, int > m_layermap
 
RPCInputSignalm_lbin
 
int m_maxBxWindow
 
const edm::Handle
< RPCDigiCollection > * 
m_ptr_digiColl
 
const edm::ESHandle
< RPCGeometry > * 
m_ptr_rpcGeom
 
std::vector< int > m_sec1id
 
std::vector< int > m_sec2id
 
std::map< int, std::vector
< RPCData * > > 
m_vecDataperBx
 
std::vector< int > m_wheelid
 

Detailed Description

Author
Andres Felipe Osorio Oliveros
Date
2009-04-15

Definition at line 39 of file RBCProcessRPCDigis.h.

Constructor & Destructor Documentation

RBCProcessRPCDigis::RBCProcessRPCDigis ( )
inline

Standard constructor.

Definition at line 42 of file RBCProcessRPCDigis.h.

42 {};
RBCProcessRPCDigis::RBCProcessRPCDigis ( const edm::ESHandle< RPCGeometry > &  rpcGeom,
const edm::Handle< RPCDigiCollection > &  digiColl 
)

Definition at line 19 of file RBCProcessRPCDigis.cc.

References configure(), m_data, m_debug, m_lbin, m_ptr_digiColl, and m_ptr_rpcGeom.

21 {
22 
23  m_ptr_rpcGeom = & rpcGeom;
24  m_ptr_digiColl = & digiColl;
25 
26  m_lbin = dynamic_cast<RPCInputSignal*>( new RBCLinkBoardGLSignal( &m_data ) );
27 
28  m_debug = false;
29 
30  configure();
31 
32 }
const edm::ESHandle< RPCGeometry > * m_ptr_rpcGeom
const edm::Handle< RPCDigiCollection > * m_ptr_digiColl
RPCInputSignal * m_lbin
std::map< int, RBCInput * > m_data
RBCProcessRPCDigis::~RBCProcessRPCDigis ( )
virtual

Destructor.

Definition at line 91 of file RBCProcessRPCDigis.cc.

References m_digiCounters, m_layermap, m_lbin, m_sec1id, m_sec2id, m_wheelid, and reset().

91  {
92 
93  if ( m_lbin ) delete m_lbin;
94 
95  std::vector<int>::iterator wheel;
96 
97  for( wheel = m_wheelid.begin(); wheel != m_wheelid.end(); ++wheel)
98  delete m_digiCounters[(*wheel)];
99 
100  m_sec1id.clear();
101  m_sec2id.clear();
102  m_wheelid.clear();
103  m_layermap.clear();
104 
105  reset();
106 
107 }
std::vector< int > m_wheelid
std::map< int, l1trigger::Counters * > m_digiCounters
std::vector< int > m_sec1id
std::vector< int > m_sec2id
RPCInputSignal * m_lbin
std::map< int, int > m_layermap

Member Function Documentation

void RBCProcessRPCDigis::builddata ( )

Definition at line 267 of file RBCProcessRPCDigis.cc.

References funct::abs(), gather_cfg::cout, relval_steps::k, m_data, m_debug, m_vecDataperBx, and RBCInput::needmapping.

Referenced by next().

268 {
269 
270  int bx(0);
271  int code(0);
272  int bxsign(1);
273  std::vector<RPCData*>::iterator itr;
274  std::map<int, std::vector<RPCData*> >::iterator itr2;
275 
276  itr2 = m_vecDataperBx.begin();
277  if( itr2 == ( m_vecDataperBx.end() ) ) return;
278 
279  while ( itr2 != m_vecDataperBx.end() ) {
280 
281  bx = (*itr2).first;
282 
283  if ( bx != 0 ) bxsign = ( bx / abs(bx) );
284  else bxsign = 1;
285 
286  for(itr = (*itr2).second.begin(); itr != (*itr2).second.end(); ++itr) {
287 
288  for(int k=0; k < 6; ++k) {
289 
290  code = bxsign * ( 1000000*abs(bx)
291  + 10000*(*itr)->wheelIdx()
292  + 100 *(*itr)->m_sec1[k]
293  + 1 *(*itr)->m_sec2[k] );
294 
295  RBCInput * signal = & (*itr)->m_orsignals[k];
296  signal->needmapping = false;
297 
298  if ( signal->hasData )
299  m_data.insert( std::make_pair( code , signal) );
300 
301  }
302  }
303 
304  ++itr2;
305 
306  }
307 
308  if ( m_debug ) std::cout << "builddata: completed. size of data: " << m_data.size() << std::endl;
309 
310 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool needmapping
Definition: RBCInput.h:75
tuple cout
Definition: gather_cfg.py:121
std::map< int, std::vector< RPCData * > > m_vecDataperBx
std::map< int, RBCInput * > m_data
void RBCProcessRPCDigis::configure ( )

Definition at line 34 of file RBCProcessRPCDigis.cc.

References m_digiCounters, m_layermap, m_maxBxWindow, m_sec1id, m_sec2id, and m_wheelid.

Referenced by RBCProcessRPCDigis().

35 {
36 
37  m_wheelid.push_back(-2); //-2
38  m_wheelid.push_back(-1); //-1
39  m_wheelid.push_back(0); // 0
40  m_wheelid.push_back( 1); //+1
41  m_wheelid.push_back( 2); //+2
42 
43  m_sec1id.push_back(12);
44  m_sec2id.push_back(1);
45  m_sec1id.push_back(2);
46  m_sec2id.push_back(3);
47  m_sec1id.push_back(4);
48  m_sec2id.push_back(5);
49  m_sec1id.push_back(6);
50  m_sec2id.push_back(7);
51  m_sec1id.push_back(8);
52  m_sec2id.push_back(9);
53  m_sec1id.push_back(10);
54  m_sec2id.push_back(11);
55 
56  m_layermap[113] = 0; //RB1InFw
57  m_layermap[123] = 1; //RB1OutFw
58 
59  m_layermap[20213] = 2; //RB22Fw
60  m_layermap[20223] = 2; //RB22Fw
61  m_layermap[30223] = 3; //RB23Fw
62  m_layermap[30213] = 3; //RB23Fw
63  m_layermap[30212] = 4; //RB23M
64  m_layermap[30222] = 4; //RB23M
65 
66  m_layermap[313] = 5; //RB3Fw
67  m_layermap[413] = 6; //RB4Fw
68  m_layermap[111] = 7; //RB1InBk
69  m_layermap[121] = 8; //RB1OutBk
70 
71  m_layermap[20211] = 9; //RB22Bw
72  m_layermap[20221] = 9; //RB22Bw
73  m_layermap[30211] = 10; //RB23Bw
74  m_layermap[30221] = 10; //RB23Bw
75 
76  m_layermap[311] = 11; //RB3Bk
77  m_layermap[411] = 12; //RB4Bk
78 
79  m_maxBxWindow = 3;
80 
81  std::vector<int>::iterator wheel;
82 
83  for( wheel = m_wheelid.begin(); wheel != m_wheelid.end(); ++wheel)
84  m_digiCounters[(*wheel)] = new l1trigger::Counters( (*wheel) );
85 
86 }
std::vector< int > m_wheelid
std::map< int, l1trigger::Counters * > m_digiCounters
std::vector< int > m_sec1id
std::vector< int > m_sec2id
std::map< int, int > m_layermap
int RBCProcessRPCDigis::getBarrelLayer ( const int &  _layer,
const int &  _station 
)
private

Definition at line 312 of file RBCProcessRPCDigis.cc.

Referenced by next().

313 {
314 
315  //... Calculates the generic Barrel Layer (1 to 6)
316  int blayer(0);
317 
318  if ( _station < 3 ) {
319  blayer = ( (_station-1) * 2 ) + _layer;
320  }
321  else {
322  blayer = _station + 2;
323  }
324 
325  return blayer;
326 
327 }
void RBCProcessRPCDigis::initialize ( std::vector< RPCData * > &  dataVec)

Definition at line 236 of file RBCProcessRPCDigis.cc.

References gather_cfg::cout, RBCInput::hasData, i, RBCInput::input_sec, j, m_block, m_debug, RPCData::m_orsignals, RPCData::m_sec1, m_sec1id, RPCData::m_sec2, m_sec2id, RPCData::m_wheel, m_wheelid, and RBCInput::needmapping.

Referenced by next().

237 {
238 
239  if ( m_debug ) std::cout << "initialize" << std::endl;
240 
241  int maxWheels = 5;
242  int maxRbcBrds = 6;
243 
244  for(int i=0; i < maxWheels; ++i) {
245 
246  m_block = new RPCData();
247 
249 
250  for(int j=0; j < maxRbcBrds; ++j) {
251  m_block->m_sec1[j] = m_sec1id[j];
252  m_block->m_sec2[j] = m_sec2id[j];
253  m_block->m_orsignals[j].input_sec[0].reset();
254  m_block->m_orsignals[j].input_sec[1].reset();
255  m_block->m_orsignals[j].needmapping = false;
256  m_block->m_orsignals[j].hasData = false;
257  }
258 
259  dataVec.push_back( m_block );
260 
261  }
262 
263  if ( m_debug ) std::cout << "initialize: completed" << std::endl;
264 
265 }
int i
Definition: DBlmapReader.cc:9
RBCInput * m_orsignals
Definition: RPCData.h:55
int * m_sec2
Definition: RPCData.h:54
std::vector< int > m_wheelid
std::vector< int > m_sec1id
int j
Definition: DBlmapReader.cc:9
std::bitset< 15 > * input_sec
Definition: RBCInput.h:64
std::vector< int > m_sec2id
int m_wheel
Definition: RPCData.h:52
bool needmapping
Definition: RBCInput.h:75
bool hasData
Definition: RBCInput.h:74
tuple cout
Definition: gather_cfg.py:121
int * m_sec1
Definition: RPCData.h:53
int RBCProcessRPCDigis::next ( void  )
virtual

Implements ProcessInputSignal.

Definition at line 110 of file RBCProcessRPCDigis.cc.

References funct::abs(), builddata(), gather_cfg::cout, getBarrelLayer(), RPCRoll::id(), initialize(), RPCRoll::isForward(), RPCDetId::layer(), m_block, m_data, m_debug, m_detUnitItr, m_digiCounters, m_digiItr, m_maxBxWindow, m_vecDataperBx, print_output(), reset(), RPCDetId::ring(), RPCDetId::sector(), setDigiAt(), relativeConstraints::station, and RPCDetId::station().

Referenced by BeautifulSoup.PageElement::_invert().

110  {
111 
112  //...clean up previous data contents
113 
114  reset();
115 
116  int ndigis(0);
117 
118  for (m_detUnitItr = (*m_ptr_digiColl)->begin();
119  m_detUnitItr != (*m_ptr_digiColl)->end(); ++m_detUnitItr ) {
120 
121  if ( m_debug ) std::cout << "looping over digis 1 ..." << std::endl;
122 
123  m_digiItr = (*m_detUnitItr ).second.first;
124  int bx = (*m_digiItr).bx();
125 
126  if ( abs(bx) >= m_maxBxWindow ) {
127  if ( m_debug ) std::cout << "RBCProcessRPCDigis> found a bx bigger than max allowed: "
128  << bx << std::endl;
129  continue;
130  }
131 
132  const RPCDetId & id = (*m_detUnitItr).first;
133  const RPCRoll * roll = dynamic_cast<const RPCRoll* >( (*m_ptr_rpcGeom)->roll(id));
134 
135  if((roll->isForward())) {
136  if( m_debug ) std::cout << "RBCProcessRPCDigis: roll is forward" << std::endl;
137  continue;
138  }
139 
140  int wheel = roll->id().ring(); // -2,-1,0,+1,+2
141  int sector = roll->id().sector(); // 1 to 12
142  int layer = roll->id().layer(); // 1,2
143  int station = roll->id().station(); // 1-4
144  int blayer = getBarrelLayer( layer, station ); // 1 to 6
145  int rollid = id.roll();
146 
147  int digipos = (station * 100) + (layer * 10) + rollid;
148 
149  if ( (wheel == -1 || wheel == 0 || wheel == 1) && station == 2 && layer == 1 )
150  digipos = 30000 + digipos;
151  if ( (wheel == -2 || wheel == 2) && station == 2 && layer == 2 )
152  digipos = 30000 + digipos;
153 
154  if ( (wheel == -1 || wheel == 0 || wheel == 1) && station == 2 && layer == 2 )
155  digipos = 20000 + digipos;
156  if ( (wheel == -2 || wheel == 2) && station == 2 && layer == 1 )
157  digipos = 20000 + digipos;
158 
159  if ( m_debug ) std::cout << "Bx: " << bx << '\t'
160  << "Wheel: " << wheel << '\t'
161  << "Sector: " << sector << '\t'
162  << "Station: " << station << '\t'
163  << "Layer: " << layer << '\t'
164  << "B-Layer: " << blayer << '\t'
165  << "Roll id: " << rollid << '\t'
166  << "Digi at: " << digipos << '\n';
167 
168  //... Construct the RBCinput objects
169  std::map<int,std::vector<RPCData*> >::iterator itr;
170  itr = m_vecDataperBx.find( bx );
171 
172  if ( itr == m_vecDataperBx.end() ) {
173  if ( m_debug ) std::cout << "Found a new Bx: " << bx << std::endl;
174  std::vector<RPCData*> wheelData;
175  initialize(wheelData);
176  m_vecDataperBx[bx] = wheelData;
177  this->m_block = wheelData[ (wheel + 2) ];
178  setDigiAt( sector, digipos );
179  }
180  else{
181  this->m_block = (*itr).second[ (wheel + 2) ];
182  setDigiAt( sector, digipos );
183  }
184 
185  std::map<int, l1trigger::Counters* >::iterator wheelCounter;
186  wheelCounter = m_digiCounters.find( wheel );
187 
188  if ( wheelCounter != m_digiCounters.end() )
189  (*wheelCounter).second->incrementSector( sector );
190 
191  if ( m_debug ) std::cout << "looping over digis 2 ..." << std::endl;
192 
193  ++ndigis;
194 
195  }
196 
197  if ( m_debug ) std::cout << "size of data vectors: " << m_vecDataperBx.size() << std::endl;
198 
199  builddata();
200 
201  if ( m_debug ) {
202  std::cout << "after reset" << std::endl;
203  print_output();
204  }
205 
206  if ( m_debug ) std::cout << "RBCProcessRPCDigis: DataSize: " << m_data.size()
207  << " ndigis " << ndigis << std::endl;
208 
209  std::map<int, l1trigger::Counters* >::iterator wheelCounter;
210  for( wheelCounter = m_digiCounters.begin(); wheelCounter != m_digiCounters.end(); ++wheelCounter) {
211  (*wheelCounter).second->evalCounters();
212  if ( m_debug ) (*wheelCounter).second->printSummary();
213  }
214 
215  if ( m_data.size() <= 0 ) return 0;
216 
217  return 1;
218 
219 }
RPCDigiCollection::DigiRangeIterator m_detUnitItr
void initialize(std::vector< RPCData * > &)
std::map< int, l1trigger::Counters * > m_digiCounters
RPCDetId id() const
Definition: RPCRoll.cc:24
int ring() const
Definition: RPCDetId.h:72
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void setDigiAt(int, int)
int layer() const
Definition: RPCDetId.h:108
RPCDigiCollection::const_iterator m_digiItr
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
Definition: RPCDetId.h:102
int getBarrelLayer(const int &, const int &)
tuple cout
Definition: gather_cfg.py:121
std::map< int, std::vector< RPCData * > > m_vecDataperBx
bool isForward() const
Definition: RPCRoll.cc:98
std::map< int, RBCInput * > m_data
int station() const
Definition: RPCDetId.h:96
void RBCProcessRPCDigis::print_output ( )

Definition at line 372 of file RBCProcessRPCDigis.cc.

References gather_cfg::cout, and m_data.

Referenced by next().

373 {
374 
375  std::cout << "RBCProcessRPCDigis> Output starts" << std::endl;
376 
377  std::map<int,RBCInput*>::const_iterator itr;
378  for( itr = m_data.begin(); itr != m_data.end(); ++itr) {
379  std::cout << (*itr).first << '\t' << (* (*itr).second ) << '\n';
380  }
381 
382  std::cout << "RBCProcessRPCDigis> Output ends" << std::endl;
383 
384 }
tuple cout
Definition: gather_cfg.py:121
std::map< int, RBCInput * > m_data
void RBCProcessRPCDigis::reset ( void  )

Definition at line 221 of file RBCProcessRPCDigis.cc.

References m_vecDataperBx.

Referenced by next(), and ~RBCProcessRPCDigis().

222 {
223 
224  std::map<int,std::vector<RPCData*> >::iterator itr1;
225  for( itr1 = m_vecDataperBx.begin(); itr1 != m_vecDataperBx.end(); ++itr1) {
226  std::vector<RPCData*>::iterator itr2;
227  for(itr2 = (*itr1).second.begin(); itr2 != (*itr1).second.end();++itr2 )
228  if ( (*itr2) ) delete *itr2;
229  (*itr1).second.clear();
230  }
231  m_vecDataperBx.clear();
232 
233 }
std::map< int, std::vector< RPCData * > > m_vecDataperBx
RPCInputSignal* RBCProcessRPCDigis::retrievedata ( )
inlinevirtual

Implements ProcessInputSignal.

Definition at line 61 of file RBCProcessRPCDigis.h.

References m_lbin.

61  {
62  return m_lbin;
63  };
RPCInputSignal * m_lbin
void RBCProcessRPCDigis::rewind ( )
inline

Definition at line 65 of file RBCProcessRPCDigis.h.

65 {};
void RBCProcessRPCDigis::setDigiAt ( int  sector,
int  digipos 
)
private

Definition at line 330 of file RBCProcessRPCDigis.cc.

References gather_cfg::cout, spr::find(), RBCInput::hasData, RBCInput::input_sec, m_block, m_debug, RPCData::m_orsignals, RPCData::m_sec1, m_sec1id, m_sec2id, and setInputBit().

Referenced by next().

331 {
332 
333  int pos = 0;
334  int isAoB = 0;
335 
336  if ( m_debug ) std::cout << "setDigiAt" << std::endl;
337 
338  std::vector<int>::const_iterator itr;
339  itr = std::find( m_sec1id.begin(), m_sec1id.end(), sector );
340 
341  if ( itr == m_sec1id.end()) {
342  itr = std::find( m_sec2id.begin(), m_sec2id.end(), sector );
343  isAoB = 1;
344  }
345 
346  for ( pos = 0; pos < 6; ++pos ) {
347  if (this->m_block->m_sec1[pos] == sector || this->m_block->m_sec2[pos] == sector )
348  break;
349  }
350 
351  if ( m_debug ) std::cout << this->m_block->m_orsignals[pos];
352 
353  setInputBit( this->m_block->m_orsignals[pos].input_sec[ isAoB ] , digipos );
354 
355  this->m_block->m_orsignals[pos].hasData = true;
356 
357  if ( m_debug ) std::cout << this->m_block->m_orsignals[pos];
358 
359  if ( m_debug ) std::cout << "setDigiAt completed" << std::endl;
360 
361 }
RBCInput * m_orsignals
Definition: RPCData.h:55
void setInputBit(std::bitset< 15 > &, int)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::vector< int > m_sec1id
std::bitset< 15 > * input_sec
Definition: RBCInput.h:64
std::vector< int > m_sec2id
bool hasData
Definition: RBCInput.h:74
tuple cout
Definition: gather_cfg.py:121
int * m_sec1
Definition: RPCData.h:53
void RBCProcessRPCDigis::setInputBit ( std::bitset< 15 > &  signals,
int  digipos 
)
private

Definition at line 363 of file RBCProcessRPCDigis.cc.

References gather_cfg::cout, m_debug, and m_layermap.

Referenced by setDigiAt().

364 {
365 
366  int bitpos = m_layermap[digipos];
367  if( m_debug ) std::cout << "Bitpos: " << bitpos << std::endl;
368  signals.set( bitpos , 1 );
369 
370 }
std::map< int, int > m_layermap
tuple cout
Definition: gather_cfg.py:121
void RBCProcessRPCDigis::showfirst ( )
inline

Definition at line 66 of file RBCProcessRPCDigis.h.

66 {};

Member Data Documentation

RPCData* RBCProcessRPCDigis::m_block
private

Definition at line 84 of file RBCProcessRPCDigis.h.

Referenced by initialize(), next(), and setDigiAt().

std::map<int, RBCInput*> RBCProcessRPCDigis::m_data
private

Definition at line 90 of file RBCProcessRPCDigis.h.

Referenced by builddata(), next(), print_output(), and RBCProcessRPCDigis().

bool RBCProcessRPCDigis::m_debug
private
RPCDigiCollection::DigiRangeIterator RBCProcessRPCDigis::m_detUnitItr
private

Definition at line 82 of file RBCProcessRPCDigis.h.

Referenced by next().

std::map<int, l1trigger::Counters*> RBCProcessRPCDigis::m_digiCounters
private

Definition at line 101 of file RBCProcessRPCDigis.h.

Referenced by configure(), next(), and ~RBCProcessRPCDigis().

RPCDigiCollection::const_iterator RBCProcessRPCDigis::m_digiItr
private

Definition at line 81 of file RBCProcessRPCDigis.h.

Referenced by next().

std::map<int, int> RBCProcessRPCDigis::m_layermap
private

Definition at line 88 of file RBCProcessRPCDigis.h.

Referenced by configure(), setInputBit(), and ~RBCProcessRPCDigis().

RPCInputSignal* RBCProcessRPCDigis::m_lbin
private

Definition at line 86 of file RBCProcessRPCDigis.h.

Referenced by RBCProcessRPCDigis(), retrievedata(), and ~RBCProcessRPCDigis().

int RBCProcessRPCDigis::m_maxBxWindow
private

Definition at line 95 of file RBCProcessRPCDigis.h.

Referenced by configure(), and next().

const edm::Handle<RPCDigiCollection>* RBCProcessRPCDigis::m_ptr_digiColl
private

Definition at line 79 of file RBCProcessRPCDigis.h.

Referenced by RBCProcessRPCDigis().

const edm::ESHandle<RPCGeometry>* RBCProcessRPCDigis::m_ptr_rpcGeom
private

Definition at line 78 of file RBCProcessRPCDigis.h.

Referenced by RBCProcessRPCDigis().

std::vector<int> RBCProcessRPCDigis::m_sec1id
private

Definition at line 98 of file RBCProcessRPCDigis.h.

Referenced by configure(), initialize(), setDigiAt(), and ~RBCProcessRPCDigis().

std::vector<int> RBCProcessRPCDigis::m_sec2id
private

Definition at line 99 of file RBCProcessRPCDigis.h.

Referenced by configure(), initialize(), setDigiAt(), and ~RBCProcessRPCDigis().

std::map<int, std::vector<RPCData*> > RBCProcessRPCDigis::m_vecDataperBx
private

Definition at line 92 of file RBCProcessRPCDigis.h.

Referenced by builddata(), next(), and reset().

std::vector<int> RBCProcessRPCDigis::m_wheelid
private

Definition at line 97 of file RBCProcessRPCDigis.h.

Referenced by configure(), initialize(), and ~RBCProcessRPCDigis().