ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
LVL1TGCTrigger::TGCSector Class Reference

#include <TGCSector.h>

Collaboration diagram for LVL1TGCTrigger::TGCSector:

Public Types

enum  TGCHighPtBoardType { WHPB =0, SHPB, NumberOfHighPtBoardType }
 
enum  TGCPatchPanelType {
  NOPP =-1, WTPP =0, WDPP, STPP,
  SDPP, WIPP, SIPP, NumberOfPatchPanelType
}
 

Public Member Functions

 TGCSector (TGCArguments *, int idIn, TGCRegionType type, TGCForwardBackwardType forwardBackward, const TGCDatabaseManager *db, std::shared_ptr< const LVL1TGC::TGCTMDB > tmdb, std::shared_ptr< const LVL1TGC::TGCNSW > nsw, std::shared_ptr< const LVL1TGC::TGCBIS78 > bis78)
 
 TGCSector ()
 
virtual ~TGCSector ()
 
bool hasHit () const
 
void clearNumberOfHit ()
 
int distributeSignal (const TGCASDOut *asdOut)
 
TGCPatchPanelgetPP (int type, int index) const
 
TGCSlaveBoardgetSB (int type, int index) const
 
TGCHighPtBoardgetHPB (int type, int index) const
 
TGCSectorLogicgetSL ()
 
unsigned int getNumberOfPP (int type) const
 
unsigned int getNumberOfSB (int type) const
 
unsigned int getNumberOfHPB (int type) const
 
TGCRegionType getRegionType () const
 
int getId () const
 
void dumpModule ()
 
LVL1TGC::TGCSide getSideId () const
 
int getOctantId () const
 
int getModuleId () const
 
TGCArgumentstgcArgs ()
 
const TGCArgumentstgcArgs () const
 

Private Member Functions

 TGCSector (const TGCSector &right)=delete
 
TGCSectoroperator= (const TGCSector &right)=delete
 
std::shared_ptr< const LVL1TGC::TGCTMDBgetTMDB () const
 
std::shared_ptr< const LVL1TGC::TGCNSWgetNSW () const
 
std::shared_ptr< const LVL1TGC::TGCBIS78getBIS78 () const
 
int getPatchPanelType (TGCSignalType signal, int layer) const
 
void setModule (const TGCConnectionPPToSL *connection)
 
void connectPPToSB (const TGCConnectionPPToSB *connection)
 
void connectSBToHPB (const TGCConnectionSBToHPB *connection)
 
void connectHPBToSL (const TGCConnectionHPBToSL *connection)
 
void connectAdjacentPP ()
 
void connectAdjacentHPB ()
 

Private Attributes

int m_id {0}
 
TGCRegionType m_regionType
 
LVL1TGC::TGCSide m_sideId {LVL1TGC::TGCSide::ASIDE}
 
int m_numberOfHit
 
int m_octantId
 
int m_moduleId
 
TGCForwardBackwardType m_forwardBackward
 
const TGCConnectionASDToPPm_ASDToPP [NumberOfPatchPanelType]
 
std::vector< TGCPatchPanel * > m_PP [NumberOfPatchPanelType]
 
std::vector< TGCSlaveBoard * > m_SB [NumberOfSlaveBoardType]
 
std::vector< TGCHighPtBoard * > m_HPB [NumberOfHighPtBoardType]
 
TGCSectorLogicm_SL
 
std::shared_ptr< const LVL1TGC::TGCTMDBm_TMDB
 
std::shared_ptr< const LVL1TGC::TGCNSWm_NSW
 
std::shared_ptr< const LVL1TGC::TGCBIS78m_BIS78
 
TGCArgumentsm_tgcArgs
 
const TGCDatabaseManagerm_dbMgr
 

Friends

void TGCTimingManager::startPatchPanel (TGCSector *sector, TGCDatabaseManager *db)
 
void TGCTimingManager::startSlaveBoard (TGCSector *sector)
 
void TGCTimingManager::startHighPtBoard (TGCSector *sector)
 
void TGCTimingManager::startSectorLogic (TGCSector *sector)
 

Detailed Description

Definition at line 31 of file TGCSector.h.

Member Enumeration Documentation

◆ TGCHighPtBoardType

Enumerator
WHPB 
SHPB 
NumberOfHighPtBoardType 

Definition at line 34 of file TGCSector.h.

◆ TGCPatchPanelType

Enumerator
NOPP 
WTPP 
WDPP 
STPP 
SDPP 
WIPP 
SIPP 
NumberOfPatchPanelType 

Definition at line 35 of file TGCSector.h.

35  { NOPP=-1,
36  WTPP=0, WDPP, STPP, SDPP, WIPP, SIPP,

Constructor & Destructor Documentation

◆ TGCSector() [1/3]

LVL1TGCTrigger::TGCSector::TGCSector ( LVL1TGCTrigger::TGCArguments tgcargs,
int  idIn,
TGCRegionType  type,
TGCForwardBackwardType  forwardBackward,
const TGCDatabaseManager db,
std::shared_ptr< const LVL1TGC::TGCTMDB tmdb,
std::shared_ptr< const LVL1TGC::TGCNSW nsw,
std::shared_ptr< const LVL1TGC::TGCBIS78 bis78 
)

Definition at line 115 of file TGCSector.cxx.

122  : m_id(idIn), m_regionType(type), m_numberOfHit(0),
123  m_TMDB(tm), m_NSW(nsw), m_BIS78(bis78),
124  m_tgcArgs(tgcargs), m_dbMgr(db)
125 {
126  m_sideId = static_cast<LVL1TGC::TGCSide>(idIn / NumberOfModule / NumberOfOctant);
128  m_moduleId = idIn%NumberOfModule;
129  m_forwardBackward = forwardBackward;
130 
131  int i;
132  if (m_moduleId < 9) {
133  for( i=0; i<=SDPP; i+=1) {
134  m_ASDToPP[i] = db->getConnectionASDToPP((TGCRegionType)m_regionType, i, forwardBackward);
135  }
136  for( i=WIPP; i<NumberOfPatchPanelType; i+=1) m_ASDToPP[i]=0;
137  } else {
138  // Inner Module
139  for( i=0; i<=SDPP; i+=1) m_ASDToPP[i]=0;
140  for( i=WIPP; i<NumberOfPatchPanelType; i+=1) {
141  m_ASDToPP[i] = db->getConnectionASDToPP((TGCRegionType)m_regionType, i, forwardBackward);
142  }
143  }
144 
145  const TGCConnectionPPToSL* PPToSL = db->getConnectionPPToSL(m_regionType);
146  // make PatchPanel Boards, Slave Boards, HighPt Boards, SectorLogic.
147  setModule(PPToSL);
148  // dumpModule();
149 
150  if (m_moduleId < 9) {
151  // set TMDB
152  m_SL->setTMDB(m_TMDB);
153 
154  // set NSW
155  m_SL->setNSW(m_NSW);
156 
157  // set BIS78
159  }
160 
161  // set connection between boards;
162  connectPPToSB(PPToSL->getPPToSB());
163  if (m_moduleId < 9) {
165  connectSBToHPB(PPToSL->getSBToHPB());
166  connectHPBToSL(PPToSL->getHPBToSL());
168  }
169 }

◆ TGCSector() [2/3]

LVL1TGCTrigger::TGCSector::TGCSector ( )

Definition at line 95 of file TGCSector.cxx.

97  m_numberOfHit(0),
98  m_octantId(0), m_moduleId(0),
100  m_SL(0), m_TMDB(0), m_NSW(0),m_BIS78(0),
101  m_tgcArgs(nullptr), m_dbMgr(nullptr)
102 {
103  for(unsigned int iPatchPanelType=0; iPatchPanelType<NumberOfPatchPanelType; iPatchPanelType++) {
104  m_ASDToPP[iPatchPanelType] = 0;
105  m_PP[iPatchPanelType].clear();
106  }
107  for(unsigned int iSlaveBoardType=0; iSlaveBoardType<NumberOfSlaveBoardType; iSlaveBoardType++) {
108  m_SB[iSlaveBoardType].clear();
109  }
110  for(unsigned int iHighPtBoardType=0; iHighPtBoardType<NumberOfHighPtBoardType; iHighPtBoardType++) {
111  m_HPB[iHighPtBoardType].clear();
112  }
113 }

◆ TGCSector() [3/3]

LVL1TGCTrigger::TGCSector::TGCSector ( const TGCSector right)
privatedelete

◆ ~TGCSector()

LVL1TGCTrigger::TGCSector::~TGCSector ( )
virtual

Definition at line 384 of file TGCSector.cxx.

385 {
386  // Don't delete m_ASDToPP! 22 May 2001 (MT, KH)
387  for (int i=0; i < NumberOfPatchPanelType; i++) {
388  for (unsigned int j=0; j<m_PP[i].size(); j++) {
389  if (m_PP[i][j] != nullptr) delete m_PP[i][j];
390  }
391  m_PP[i].clear();
392  }
393 
394  for (int i=0; i < NumberOfSlaveBoardType; i++) {
395  for (unsigned int j=0; j < m_SB[i].size(); j+=1) {
396  if(m_SB[i][j] != nullptr) delete m_SB[i][j];
397  }
398  m_SB[i].clear();
399  }
400 
401  for(int i=0; i<NumberOfHighPtBoardType; i+=1){
402  for(unsigned int j=0; j < m_HPB[i].size(); j+=1) {
403  if(m_HPB[i][j] != nullptr) delete m_HPB[i][j];
404  }
405  m_HPB[i].clear();
406  }
407  if (m_SL) delete m_SL;
408  m_SL = 0;
409 }

Member Function Documentation

◆ clearNumberOfHit()

void LVL1TGCTrigger::TGCSector::clearNumberOfHit ( )
inline

Definition at line 133 of file TGCSector.h.

134 { m_numberOfHit = 0;}

◆ connectAdjacentHPB()

void LVL1TGCTrigger::TGCSector::connectAdjacentHPB ( )
private

Definition at line 364 of file TGCSector.cxx.

365 {
366  switch(m_regionType){
368  // assume there are only two WireHighPtBoards.
369  if((m_HPB[WHPB][1]) && (m_HPB[WHPB][0])){
370  m_HPB[WHPB][0]->setAdjacentHPB(1,m_HPB[WHPB][1]);
371  m_HPB[WHPB][1]->setAdjacentHPB(0,m_HPB[WHPB][0]);
372  }
373  break;
375  if(m_HPB[WHPB][0]){
376  m_HPB[WHPB][0]->setAdjacentHPB(1,0);
377  }
378  break;
379  default:
380  break;
381  }
382 }

◆ connectAdjacentPP()

void LVL1TGCTrigger::TGCSector::connectAdjacentPP ( )
private

Definition at line 300 of file TGCSector.cxx.

301 {
302  for (unsigned int iPP = 1; iPP < m_PP[WDPP].size(); iPP++) {
303  m_PP[WDPP][iPP-1]->setAdjacentPP(1,m_PP[WDPP][iPP]);
304  m_PP[WDPP][iPP]->setAdjacentPP(0,m_PP[WDPP][iPP-1]);
305  }
306 
307  for (unsigned int iPP = 1; iPP < m_PP[WTPP].size(); iPP++) {
308  m_PP[WTPP][iPP-1]->setAdjacentPP(1,m_PP[WTPP][iPP]);
309  m_PP[WTPP][iPP]->setAdjacentPP(0,m_PP[WTPP][iPP-1]);
310  }
311 
312  for (unsigned int iPP = 1; iPP < m_PP[STPP].size(); iPP++) {
313  m_PP[STPP][iPP-1]->setAdjacentPP(1,m_PP[STPP][iPP]);
314  m_PP[STPP][iPP]->setAdjacentPP(0,m_PP[STPP][iPP-1]);
315  }
316 
317  for (unsigned int iPP = 1; iPP < m_PP[SDPP].size(); iPP++) {
318  m_PP[SDPP][iPP-1]->setAdjacentPP(1,m_PP[SDPP][iPP]);
319  m_PP[SDPP][iPP]->setAdjacentPP(0,m_PP[SDPP][iPP-1]);
320  }
321 
322  for (int i=0; i<=SDPP; i++) {
323  for (TGCPatchPanel* ppasic : m_PP[i]) {
324  ppasic->connect();
325  }
326  }
327 }

◆ connectHPBToSL()

void LVL1TGCTrigger::TGCSector::connectHPBToSL ( const TGCConnectionHPBToSL connection)
private

Definition at line 351 of file TGCSector.cxx.

352 {
353  if (!m_SL) return;
354 
355  // set pointers of HighPtBoard to connect to SectorLogic
356  for (unsigned int iHPB = 0; iHPB < m_HPB[WHPB].size(); iHPB++){
357  m_SL->setWireHighPtBoard(connection->getSLPortToHPB(WHPB,iHPB), m_HPB[WHPB].at(iHPB));
358  }
359  for (unsigned int iHPB = 0; iHPB < m_HPB[SHPB].size(); iHPB++) {
360  m_SL->setStripHighPtBoard(m_HPB[SHPB].at(iHPB));
361  }
362 }

◆ connectPPToSB()

void LVL1TGCTrigger::TGCSector::connectPPToSB ( const TGCConnectionPPToSB connection)
private

Definition at line 261 of file TGCSector.cxx.

262 {
263  int iPort;
264  int startType, endType;
265  if (m_moduleId <9) {
266  startType =0;
267  endType = SDPP;
268  } else {
269  startType = WIPP;
270  endType = SIPP;
271  }
272 
273  // set a Slave Board ID to connect for each Patch Panel.
274  // find the Slave Board and give a pointer of the Patch Panel to it.
275  for (int i=startType; i <= endType; i++) {
276 #ifdef TGCDEBUG
277  std::cerr << "connectionPPToSB :"
278  << " module:" << m_moduleId
279  << " type: " << i
280  << " #PP=" << m_PP[i].size()
281  << " #SB=" << m_SB[i].size()
282  << std::endl;
283 #endif
284  for(unsigned int iPP = 0; iPP < m_PP[i].size(); iPP++) {
285  for ( iPort = 0; iPort < connection->getNumberOfPort(); iPort += 1) {
286  m_PP[i][iPP]->setIdSlaveBoard(iPort,connection->getSBIdToPP(i,iPort,iPP));
287  for (unsigned int iSB = 0; iSB < m_SB[i].size(); iSB++) {
288  if (m_PP[i][iPP]->getIdSlaveBoard(iPort) == m_SB[i][iSB]->getId()) {
289  m_SB[i][iSB]->setPatchPanel(m_PP[i][iPP]);
290  break;
291  }
292  } // m_SB loop
293  } // Port loop
294  } // m_PP loop
295  } // type loop
296 
297 }

◆ connectSBToHPB()

void LVL1TGCTrigger::TGCSector::connectSBToHPB ( const TGCConnectionSBToHPB connection)
private

Definition at line 329 of file TGCSector.cxx.

330 {
331  for (int i=0; i < NumberOfSlaveBoardType; i++) {
332  if ( i==WISB ) continue; // Inner m_SB is not connected to m_HPB
333  if ( i==SISB ) continue; // Inner m_SB is not connected to m_HPB
334 
335  for (unsigned int iSB = 0; iSB < m_SB[i].size(); iSB++) {
336  m_SB[i][iSB]->setIdHighPtBoard(connection->getHPBIdToSB(i,iSB));
337  int type = i/2; // ! assume HighPtBoardType=SlaveBoardType/2
338  for (unsigned int iHPB = 0; iHPB < m_HPB[type].size(); iHPB += 1){
339  if ( m_SB[i][iSB]->getIdHighPtBoard() == m_HPB[type].at(iHPB)->getId()) {
340  if((i==WDSB)||(i==SDSB))
341  m_HPB[type].at(iHPB)->setDSB(connection->getHPBPortToSB(i,iSB),m_SB[i][iSB]);
342  else if((i==WTSB)||(i==STSB))
343  m_HPB[type].at(iHPB)->setTSB(connection->getHPBPortToSB(i,iSB),m_SB[i][iSB]);
344  break;
345  }
346  }
347  }
348  }
349 }

◆ distributeSignal()

int LVL1TGCTrigger::TGCSector::distributeSignal ( const TGCASDOut asdOut)

Definition at line 34 of file TGCSector.cxx.

35 {
36  int idPP,conPP,chPP;
37 
38  TGCSignalType signalType = ASDOut->GetSignalType();
39 
40  TGCReadoutIndex readoutIndex;
41  readoutIndex = ASDOut->GetTGCReadoutIndex();
42 
43  int layer = readoutIndex.GetLayerNumber();
44  int rNumber = readoutIndex.GetRNumber();
45  int ch = ASDOut->GetHitID();
46 
47  int PPType = getPatchPanelType(signalType,layer);
48  int notFound;
49  if (PPType<0){
50  notFound = -1;
51  } else {
52  notFound = m_ASDToPP[PPType]->getConnection(m_sideId,layer,rNumber,ch,&idPP,&conPP,&chPP);
53  }
54 
55  if (tgcArgs()->MSGLEVEL() <= MSG::DEBUG) {
56  IMessageSvc* msgSvc = 0;
57  ISvcLocator* svcLocator = Gaudi::svcLocator();
58  if (svcLocator->service("MessageSvc", msgSvc) == StatusCode::FAILURE) {
59  return -1;
60  };
61  MsgStream log(msgSvc, "LVL1TGCTrigger::TGCSector");
62  if (!notFound) {
63  log << MSG::DEBUG
64  << "signalType= " << ((signalType == WIRE) ? "Wire" : "Strip")
65  <<" layer= " <<layer <<" rNumber= " <<rNumber <<" ch= "<< ch
66  <<"id(PP)= " <<idPP <<" connector(PP)= " <<conPP <<" ch(PP)= " <<chPP
67  <<endmsg;
68  }
69  }
70 
71  if(!notFound){
72  m_PP[PPType][idPP]->setASDOut(chPP,conPP,ASDOut);
73  m_numberOfHit+=1;
74  return 0;
75  }
76  return -1;
77 }

◆ dumpModule()

void LVL1TGCTrigger::TGCSector::dumpModule ( )

Definition at line 411 of file TGCSector.cxx.

412 {
413  std::cout << "Side:" << m_sideId << " Octant:" << m_octantId
414  << " ModuleId:" << m_moduleId << std::endl;
415 
416  std::cout << "PatchPanel NumberOfPatchPanelType: " << NumberOfPatchPanelType << std::endl;
417  for (int j=0; j < NumberOfPatchPanelType; j++) {
418  std::cout << "numberOfPP(index in a type): " << m_PP[j].size() << std::endl;
419  for (TGCPatchPanel* ppasic : m_PP[j]) {
420  std::cout << " Type:" << ppasic->getType();
421  std::cout << " Id:" << ppasic->getId();
422  std::cout << " Region:" << (ppasic->getRegion()==TGCRegionType::FORWARD ? "FWD" : "END");
423  std::cout << ((ppasic->getRegion() == TGCRegionType::ENDCAP) ? ":Endcap" : ":Forward") << std::endl;
424  }
425  }
426 
427  std::cout << "SlaveBoard NumberOfSlaveBoardType: " << NumberOfSlaveBoardType << std::endl;
428  for (int j=0; j < NumberOfSlaveBoardType; j++) {
429  std::cout << "numberOfSB(index in a type): " << m_SB[j].size() << std::endl;
430  for (unsigned int i=0; i < m_SB[j].size(); i++) { // index in a type
431  std::cout << " Type:" << m_SB[j][i]->getType();
432  std::cout << " Id:" << m_SB[j][i]->getId();
433  std::cout << " Region: " << ((m_SB[j][i]->getRegion() == TGCRegionType::ENDCAP) ? "Endcap" : "Forward") << std::endl;
434  }
435  }
436 
437  std::cout << "HighPtBoard NumberOfHighPtBoardType:" << NumberOfHighPtBoardType << std::endl;
438  for(int j=0; j<NumberOfHighPtBoardType; j+=1){
439  std::cout << "numberOfHPB(index in a type):" << m_HPB[j].size() << std::endl;
440  for(unsigned int i=0; i < m_HPB[j].size(); i+=1) {
441  std::cout << " Type:" << m_HPB[j][i]->getType();
442  std::cout << " Id:" << m_HPB[j][i]->getId();
443  std::cout << " Region:" << (m_HPB[j][i]->getRegion()==TGCRegionType::ENDCAP ? "Endcap" : "Forward") << std::endl;
444  }
445  }
446 
447  std::cout << "SectorLogic" << std::endl;
448  if (m_SL) {
449  std::cout << "SL:" << m_SL << std::endl;
450  std::cout << " Id:" << m_SL->getId();
451  std::cout << " Region:";
453  std::cout << "Endcap" << std::endl;
454  }else{
455  std::cout << "Forward" << std::endl;
456  }
457  } else {
458  std::cout << "NO SL" << std::endl;
459  }
460 }

◆ getBIS78()

std::shared_ptr<const LVL1TGC::TGCBIS78> LVL1TGCTrigger::TGCSector::getBIS78 ( ) const
inlineprivate

Definition at line 86 of file TGCSector.h.

86 { return m_BIS78; }

◆ getHPB()

TGCHighPtBoard * LVL1TGCTrigger::TGCSector::getHPB ( int  type,
int  index 
) const
inline

Definition at line 148 of file TGCSector.h.

149 {
150  if ((type<0) || (index<0)) return 0;
151  return m_HPB[type].at(index);
152 }

◆ getId()

int LVL1TGCTrigger::TGCSector::getId ( ) const
inline

Definition at line 174 of file TGCSector.h.

175 { return m_id;}

◆ getModuleId()

int LVL1TGCTrigger::TGCSector::getModuleId ( ) const
inline

Definition at line 78 of file TGCSector.h.

78 { return m_moduleId; }

◆ getNSW()

std::shared_ptr<const LVL1TGC::TGCNSW> LVL1TGCTrigger::TGCSector::getNSW ( ) const
inlineprivate

Definition at line 85 of file TGCSector.h.

85 { return m_NSW; }

◆ getNumberOfHPB()

unsigned int LVL1TGCTrigger::TGCSector::getNumberOfHPB ( int  type) const
inline

Definition at line 165 of file TGCSector.h.

166 { if (type<0) return -1;
167  return m_HPB[type].size();
168 }

◆ getNumberOfPP()

unsigned int LVL1TGCTrigger::TGCSector::getNumberOfPP ( int  type) const
inline

Definition at line 154 of file TGCSector.h.

155 {
156  if (type<0) return -1;
157  return m_PP[type].size();
158 }

◆ getNumberOfSB()

unsigned int LVL1TGCTrigger::TGCSector::getNumberOfSB ( int  type) const
inline

Definition at line 160 of file TGCSector.h.

161 { if (type<0) return -1;
162  return m_SB[type].size();
163 }

◆ getOctantId()

int LVL1TGCTrigger::TGCSector::getOctantId ( ) const
inline

Definition at line 77 of file TGCSector.h.

77 { return m_octantId; }

◆ getPatchPanelType()

int LVL1TGCTrigger::TGCSector::getPatchPanelType ( TGCSignalType  signal,
int  layer 
) const
private

Definition at line 79 of file TGCSector.cxx.

80 {
81  if((layer>=0)&&(layer<=2)){
82  if (signal == WIRE) return WTPP;
83  else return STPP;
84  } else if((layer>=3)&&(layer<=6)){
85  if (signal == WIRE) return WDPP;
86  else return SDPP;
87  } else if (layer<=8) {
88  if (signal == WIRE) return WIPP;
89  else return SIPP;
90  } else {
91  return NOPP;
92  }
93 }

◆ getPP()

TGCPatchPanel * LVL1TGCTrigger::TGCSector::getPP ( int  type,
int  index 
) const
inline

Definition at line 136 of file TGCSector.h.

137 {
138  if ((type<0) || (index<0)) return 0;
139  return m_PP[type].at(index);
140 }

◆ getRegionType()

TGCRegionType LVL1TGCTrigger::TGCSector::getRegionType ( ) const
inline

Definition at line 170 of file TGCSector.h.

171 { return m_regionType;}

◆ getSB()

TGCSlaveBoard * LVL1TGCTrigger::TGCSector::getSB ( int  type,
int  index 
) const
inline

Definition at line 142 of file TGCSector.h.

143 {
144  if ((type<0) || (index<0)) return 0;
145  return m_SB[type].at(index);
146 }

◆ getSideId()

LVL1TGC::TGCSide LVL1TGCTrigger::TGCSector::getSideId ( ) const
inline

Definition at line 76 of file TGCSector.h.

76 { return m_sideId; }

◆ getSL()

TGCSectorLogic* LVL1TGCTrigger::TGCSector::getSL ( )
inline

Definition at line 66 of file TGCSector.h.

66 { return m_SL; }

◆ getTMDB()

std::shared_ptr<const LVL1TGC::TGCTMDB> LVL1TGCTrigger::TGCSector::getTMDB ( ) const
inlineprivate

Definition at line 84 of file TGCSector.h.

84 { return m_TMDB; }

◆ hasHit()

bool LVL1TGCTrigger::TGCSector::hasHit ( ) const
inline

Definition at line 128 of file TGCSector.h.

129 {
130  return (m_numberOfHit>0);
131 }

◆ operator=()

TGCSector& LVL1TGCTrigger::TGCSector::operator= ( const TGCSector right)
privatedelete

◆ setModule()

void LVL1TGCTrigger::TGCSector::setModule ( const TGCConnectionPPToSL connection)
private

Definition at line 171 of file TGCSector.cxx.

172 {
173  if (m_moduleId <9) { // BW Sectors
174  // PP ASIC
175  for (int jpp=0; jpp <= SDPP; jpp++) {
176  m_PP[jpp].resize(connection->getPPToSB()->getNumber(jpp));
177  for (unsigned int i=0; i < m_PP[jpp].size(); i++) {
178  if (jpp==WTPP) { m_PP[jpp][i] = new TGCWireTripletPP(tgcArgs()); }
179  else if(jpp==WDPP) { m_PP[jpp][i] = new TGCWireDoubletPP(tgcArgs()); }
180  else if(jpp==STPP) { m_PP[jpp][i] = new TGCStripTripletPP(tgcArgs());}
181  else if(jpp==SDPP) { m_PP[jpp][i] = new TGCStripDoubletPP(tgcArgs());}
182  m_PP[jpp][i]->setId(connection->getPPToSB()->getId(jpp,i));
183  m_PP[jpp][i]->setType(jpp);
184  m_PP[jpp][i]->setRegion(m_regionType);
185  }
186  }
187  for (int jpp=WIPP; jpp<NumberOfPatchPanelType; jpp++) {
188  m_PP[jpp].clear();
189  }
190 
191  // SLB
192  for (int jsb=0; jsb <= SDSB; jsb++) {
193  m_SB[jsb].resize(connection->getSBToHPB()->getNumber(jsb));
194  for (unsigned int i=0; i < m_SB[jsb].size(); i++) {
195  if (jsb == WTSB) { m_SB[jsb][i] = new TGCWireTripletSB(); }
196  else if (jsb == WDSB) { m_SB[jsb][i] = new TGCWireDoubletSB(); }
197  else if (jsb == STSB) { m_SB[jsb][i] = new TGCStripTripletSB();}
198  else if (jsb == SDSB) { m_SB[jsb][i] = new TGCStripDoubletSB();}
199  m_SB[jsb][i]->setId(connection->getSBToHPB()->getId(jsb,i));
200  m_SB[jsb][i]->setType(jsb);
201  m_SB[jsb][i]->setRegion(m_regionType);
202  }
203  }
204  for (int jsb=WISB; jsb < NumberOfSlaveBoardType; jsb++) {
205  m_SB[jsb].clear();
206  }
207 
208  // HPT
209  for (int jhp=0; jhp<NumberOfHighPtBoardType; jhp++) {
210  m_HPB[jhp].resize(connection->getHPBToSL()->getNumber(jhp));
211  for (unsigned int i=0; i < m_HPB[jhp].size(); i++) {
212  if(jhp == WHPB) m_HPB[jhp][i] = new TGCWireHighPtBoard;
213  if(jhp == SHPB) m_HPB[jhp][i] = new TGCStripHighPtBoard;
214  m_HPB[jhp][i]->setId(connection->getHPBToSL()->getId(jhp,i));
215  m_HPB[jhp][i]->setType(jhp);
216  m_HPB[jhp][i]->setRegion(m_regionType);
217  }
218  }
219 
220  // Sector Logic
221  m_SL = new TGCSectorLogic(tgcArgs(), m_dbMgr, m_regionType, m_id);
222  m_SL->getSSCController()->setNumberOfWireHighPtBoard(connection->getHPBToSL()->getNumber(WHPB));
223  } else { // Inner Small Wheel
224  // PP ASIC
225  for (int jpp=0; jpp <= SDPP; jpp++) {
226  m_PP[jpp].clear();
227  }
228  for (int jpp=WIPP; jpp < NumberOfPatchPanelType; jpp++) {
229  m_PP[jpp].resize(connection->getPPToSB()->getNumber(jpp));
230  for (unsigned int i=0; i < m_PP[jpp].size(); i++) {
231  if (jpp == WIPP) { m_PP[jpp][i] = new TGCWireInnerPP(tgcArgs()); }
232  else if (jpp == SIPP) { m_PP[jpp][i] = new TGCStripInnerPP(tgcArgs()); }
233  m_PP[jpp][i]->setId(connection->getPPToSB()->getId(jpp,i));
234  m_PP[jpp][i]->setType(jpp);
235  m_PP[jpp][i]->setRegion(m_regionType);
236  }
237  }
238 
239  // SLB
240  for (int jsb=0; jsb<=SDSB; jsb+=1) {
241  m_SB[jsb].clear();
242  }
243  for (int jsb=WISB; jsb<NumberOfSlaveBoardType; jsb++) {
244  m_SB[jsb].resize(1);
245  m_SB[jsb][0] = new TGCInnerSB();
246  m_SB[jsb][0]->setType(jsb);
247  m_SB[jsb][0]->setRegion(m_regionType);
248  m_SB[jsb][0]->setId(0);
249  }
250 
251  // HPT
252  for(int jhp=0; jhp<NumberOfHighPtBoardType; jhp+=1){
253  m_HPB[jhp].clear();
254  }
255 
256  // no specific Sector Logic
257  m_SL = 0;
258  }
259 }

◆ tgcArgs() [1/2]

TGCArguments* LVL1TGCTrigger::TGCSector::tgcArgs ( )
inline

Definition at line 80 of file TGCSector.h.

80 { return m_tgcArgs; }

◆ tgcArgs() [2/2]

const TGCArguments* LVL1TGCTrigger::TGCSector::tgcArgs ( ) const
inline

Definition at line 81 of file TGCSector.h.

81 { return m_tgcArgs; }

Friends And Related Function Documentation

◆ TGCTimingManager::startHighPtBoard

void TGCTimingManager::startHighPtBoard ( TGCSector sector)
friend

◆ TGCTimingManager::startPatchPanel

void TGCTimingManager::startPatchPanel ( TGCSector sector,
TGCDatabaseManager db 
)
friend

◆ TGCTimingManager::startSectorLogic

void TGCTimingManager::startSectorLogic ( TGCSector sector)
friend

◆ TGCTimingManager::startSlaveBoard

void TGCTimingManager::startSlaveBoard ( TGCSector sector)
friend

Member Data Documentation

◆ m_ASDToPP

const TGCConnectionASDToPP* LVL1TGCTrigger::TGCSector::m_ASDToPP[NumberOfPatchPanelType]
private

Definition at line 112 of file TGCSector.h.

◆ m_BIS78

std::shared_ptr<const LVL1TGC::TGCBIS78> LVL1TGCTrigger::TGCSector::m_BIS78
private

Definition at line 121 of file TGCSector.h.

◆ m_dbMgr

const TGCDatabaseManager* LVL1TGCTrigger::TGCSector::m_dbMgr
private

Definition at line 124 of file TGCSector.h.

◆ m_forwardBackward

TGCForwardBackwardType LVL1TGCTrigger::TGCSector::m_forwardBackward
private

Definition at line 111 of file TGCSector.h.

◆ m_HPB

std::vector<TGCHighPtBoard*> LVL1TGCTrigger::TGCSector::m_HPB[NumberOfHighPtBoardType]
private

Definition at line 116 of file TGCSector.h.

◆ m_id

int LVL1TGCTrigger::TGCSector::m_id {0}
private

Definition at line 104 of file TGCSector.h.

◆ m_moduleId

int LVL1TGCTrigger::TGCSector::m_moduleId
private

Definition at line 109 of file TGCSector.h.

◆ m_NSW

std::shared_ptr<const LVL1TGC::TGCNSW> LVL1TGCTrigger::TGCSector::m_NSW
private

Definition at line 120 of file TGCSector.h.

◆ m_numberOfHit

int LVL1TGCTrigger::TGCSector::m_numberOfHit
private

Definition at line 107 of file TGCSector.h.

◆ m_octantId

int LVL1TGCTrigger::TGCSector::m_octantId
private

Definition at line 108 of file TGCSector.h.

◆ m_PP

std::vector<TGCPatchPanel*> LVL1TGCTrigger::TGCSector::m_PP[NumberOfPatchPanelType]
private

Definition at line 114 of file TGCSector.h.

◆ m_regionType

TGCRegionType LVL1TGCTrigger::TGCSector::m_regionType
private

Definition at line 105 of file TGCSector.h.

◆ m_SB

std::vector<TGCSlaveBoard*> LVL1TGCTrigger::TGCSector::m_SB[NumberOfSlaveBoardType]
private

Definition at line 115 of file TGCSector.h.

◆ m_sideId

LVL1TGC::TGCSide LVL1TGCTrigger::TGCSector::m_sideId {LVL1TGC::TGCSide::ASIDE}
private

Definition at line 106 of file TGCSector.h.

◆ m_SL

TGCSectorLogic* LVL1TGCTrigger::TGCSector::m_SL
private

Definition at line 118 of file TGCSector.h.

◆ m_tgcArgs

TGCArguments* LVL1TGCTrigger::TGCSector::m_tgcArgs
private

Definition at line 123 of file TGCSector.h.

◆ m_TMDB

std::shared_ptr<const LVL1TGC::TGCTMDB> LVL1TGCTrigger::TGCSector::m_TMDB
private

Definition at line 119 of file TGCSector.h.


The documentation for this class was generated from the following files:
LVL1TGCTrigger::TGCRegionType::ENDCAP
@ ENDCAP
LVL1TGCTrigger::TGCSector::STPP
@ STPP
Definition: TGCSector.h:36
LVL1TGCTrigger::TGCSector::m_SL
TGCSectorLogic * m_SL
Definition: TGCSector.h:118
LVL1TGCTrigger::TGCSectorLogic::getRegion
TGCRegionType getRegion() const
Definition: TGCSectorLogic.h:62
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
LVL1TGCTrigger::SISB
@ SISB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::NumberOfSlaveBoardType
@ NumberOfSlaveBoardType
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::NOPP
@ NOPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCWireTripletPP
class TGCPatchPanel TGCWireTripletPP
Definition: TGCPatchPanel.h:22
index
Definition: index.py:1
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:43
LVL1TGCTrigger::TGCSector::getId
int getId() const
Definition: TGCSector.h:174
LVL1TGCTrigger::TGCSector::WTPP
@ WTPP
Definition: TGCSector.h:36
LVL1TGCTrigger::TGCSector::getPatchPanelType
int getPatchPanelType(TGCSignalType signal, int layer) const
Definition: TGCSector.cxx:79
LVL1TGCTrigger::SDSB
@ SDSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::connectPPToSB
void connectPPToSB(const TGCConnectionPPToSB *connection)
Definition: TGCSector.cxx:261
LVL1TGCTrigger::TGCSectorLogic::setBIS78
void setBIS78(std::shared_ptr< const LVL1TGC::TGCBIS78 > bis78)
Definition: TGCSectorLogic.cxx:110
LVL1TGCTrigger::TGCRegionType::FORWARD
@ FORWARD
LVL1TGCTrigger::TGCStripTripletPP
class TGCPatchPanel TGCStripTripletPP
Definition: TGCPatchPanel.h:24
LVL1TGCTrigger::TGCSector::m_dbMgr
const TGCDatabaseManager * m_dbMgr
Definition: TGCSector.h:124
LVL1TGCTrigger::TGCWireDoubletPP
class TGCPatchPanel TGCWireDoubletPP
Definition: TGCPatchPanel.h:23
LVL1TGCTrigger::TGCSectorLogic::setNSW
void setNSW(std::shared_ptr< const LVL1TGC::TGCNSW > nsw)
Definition: TGCSectorLogic.cxx:104
LVL1TGCTrigger::TGCSector::m_forwardBackward
TGCForwardBackwardType m_forwardBackward
Definition: TGCSector.h:111
LVL1TGCTrigger::TGCSector::m_TMDB
std::shared_ptr< const LVL1TGC::TGCTMDB > m_TMDB
Definition: TGCSector.h:119
LVL1TGCTrigger::TGCSector::m_octantId
int m_octantId
Definition: TGCSector.h:108
LVL1TGCTrigger::TGCSector::m_id
int m_id
Definition: TGCSector.h:104
LVL1TGCTrigger::TGCSector::WDPP
@ WDPP
Definition: TGCSector.h:36
LVL1TGCTrigger::TGCSector::connectHPBToSL
void connectHPBToSL(const TGCConnectionHPBToSL *connection)
Definition: TGCSector.cxx:351
LVL1TGCTrigger::TGCSectorLogic::getSSCController
TGCSSCController * getSSCController()
Definition: TGCSectorLogic.h:69
LVL1TGCTrigger::TGCSector::SIPP
@ SIPP
Definition: TGCSector.h:36
LVL1TGCTrigger::NumberOfOctant
const int NumberOfOctant
Definition: TGCElectronicsSystem.h:19
LVL1TGCTrigger::WDSB
@ WDSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::tgcArgs
TGCArguments * tgcArgs()
Definition: TGCSector.h:80
LVL1TGCTrigger::TGCSector::m_HPB
std::vector< TGCHighPtBoard * > m_HPB[NumberOfHighPtBoardType]
Definition: TGCSector.h:116
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
LVL1TGCTrigger::TGCSectorLogic::setTMDB
void setTMDB(std::shared_ptr< const LVL1TGC::TGCTMDB > tmdb)
Definition: TGCSectorLogic.cxx:98
lumiFormat.i
int i
Definition: lumiFormat.py:92
LVL1TGCTrigger::TGCSector::m_sideId
LVL1TGC::TGCSide m_sideId
Definition: TGCSector.h:106
LVL1TGCTrigger::WTSB
@ WTSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::m_PP
std::vector< TGCPatchPanel * > m_PP[NumberOfPatchPanelType]
Definition: TGCSector.h:114
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
LVL1TGCTrigger::TGCSector::m_moduleId
int m_moduleId
Definition: TGCSector.h:109
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LVL1TGCTrigger::TGCSectorLogic::setWireHighPtBoard
void setWireHighPtBoard(int port, TGCHighPtBoard *highPtBoard)
Definition: TGCSectorLogic.cxx:116
LVL1TGCTrigger::TGCSector::setModule
void setModule(const TGCConnectionPPToSL *connection)
Definition: TGCSector.cxx:171
LVL1TGCTrigger::WIRE
@ WIRE
Definition: TGCNumbering.h:52
LVL1TGCTrigger::STSB
@ STSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::WISB
@ WISB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCStripDoubletPP
class TGCPatchPanel TGCStripDoubletPP
Definition: TGCPatchPanel.h:25
LVL1TGCTrigger::TGCSector::WIPP
@ WIPP
Definition: TGCSector.h:36
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:64
LVL1TGCTrigger::TGCSector::connectSBToHPB
void connectSBToHPB(const TGCConnectionSBToHPB *connection)
Definition: TGCSector.cxx:329
LVL1TGCTrigger::TGCSector::SDPP
@ SDPP
Definition: TGCSector.h:36
LVL1TGCTrigger::TGCSector::m_ASDToPP
const TGCConnectionASDToPP * m_ASDToPP[NumberOfPatchPanelType]
Definition: TGCSector.h:112
LVL1TGCTrigger::TGCSector::m_SB
std::vector< TGCSlaveBoard * > m_SB[NumberOfSlaveBoardType]
Definition: TGCSector.h:115
LVL1TGCTrigger::TGCSector::WHPB
@ WHPB
Definition: TGCSector.h:34
LVL1TGCTrigger::TGCSignalType
TGCSignalType
Definition: TGCNumbering.h:51
LVL1TGCTrigger::TGCSector::SHPB
@ SHPB
Definition: TGCSector.h:34
LVL1TGCTrigger::TGCSSCController::setNumberOfWireHighPtBoard
void setNumberOfWireHighPtBoard(int iData)
Definition: TGCSSCController.h:23
LVL1TGCTrigger::TGCSector::m_regionType
TGCRegionType m_regionType
Definition: TGCSector.h:105
LVL1TGCTrigger::TGCStripInnerPP
class TGCPatchPanel TGCStripInnerPP
Definition: TGCPatchPanel.h:27
LVL1TGCTrigger::TGCRegionType
TGCRegionType
Definition: TGCNumbering.h:49
LVL1TGCTrigger::TGCSectorLogic::setStripHighPtBoard
void setStripHighPtBoard(TGCHighPtBoard *highPtBoard)
Definition: TGCSectorLogic.cxx:122
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1TGCTrigger::TGCSector::connectAdjacentPP
void connectAdjacentPP()
Definition: TGCSector.cxx:300
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
LVL1TGCTrigger::TGCWireInnerPP
class TGCPatchPanel TGCWireInnerPP
Definition: TGCPatchPanel.h:26
LVL1TGCTrigger::NumberOfModule
const int NumberOfModule
Definition: TGCElectronicsSystem.h:20
LVL1TGC::TGCSide
TGCSide
The sides of TGC (A- or C-side)
Definition: TGCNumbering.h:13
LVL1TGCTrigger::TGCSector::NumberOfHighPtBoardType
@ NumberOfHighPtBoardType
Definition: TGCSector.h:34
LVL1TGCTrigger::TGCSector::connectAdjacentHPB
void connectAdjacentHPB()
Definition: TGCSector.cxx:364
LVL1TGCTrigger::TGCSector::m_NSW
std::shared_ptr< const LVL1TGC::TGCNSW > m_NSW
Definition: TGCSector.h:120
LVL1TGCTrigger::TGCSector::m_BIS78
std::shared_ptr< const LVL1TGC::TGCBIS78 > m_BIS78
Definition: TGCSector.h:121
LVL1TGCTrigger::ForwardSector
@ ForwardSector
Definition: TGCNumbering.h:59
LVL1TGCTrigger::TGCSector::m_tgcArgs
TGCArguments * m_tgcArgs
Definition: TGCSector.h:123
LVL1TGCTrigger::TGCSectorLogic::getId
int getId() const
Definition: TGCSectorLogic.h:172
LVL1TGCTrigger::TGCConnectionASDToPP::getConnection
int getConnection(const int sideId, const int layer, const int chamber, const int line, int *pp, int *connector, int *channel) const
Definition: TGCConnectionASDToPP.cxx:20
LVL1TGCTrigger::TGCSector::NumberOfPatchPanelType
@ NumberOfPatchPanelType
Definition: TGCSector.h:37
LVL1TGCTrigger::TGCSector::m_numberOfHit
int m_numberOfHit
Definition: TGCSector.h:107