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 107 of file TGCSector.cxx.

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

◆ TGCSector() [2/3]

LVL1TGCTrigger::TGCSector::TGCSector ( )

Definition at line 87 of file TGCSector.cxx.

89  m_numberOfHit(0),
90  m_octantId(0), m_moduleId(0),
92  m_SL(0), m_TMDB(0), m_NSW(0),m_BIS78(0),
93  m_tgcArgs(nullptr), m_dbMgr(nullptr)
94 {
95  for(unsigned int iPatchPanelType=0; iPatchPanelType<NumberOfPatchPanelType; iPatchPanelType++) {
96  m_ASDToPP[iPatchPanelType] = 0;
97  m_PP[iPatchPanelType].clear();
98  }
99  for(unsigned int iSlaveBoardType=0; iSlaveBoardType<NumberOfSlaveBoardType; iSlaveBoardType++) {
100  m_SB[iSlaveBoardType].clear();
101  }
102  for(unsigned int iHighPtBoardType=0; iHighPtBoardType<NumberOfHighPtBoardType; iHighPtBoardType++) {
103  m_HPB[iHighPtBoardType].clear();
104  }
105 }

◆ TGCSector() [3/3]

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

◆ ~TGCSector()

LVL1TGCTrigger::TGCSector::~TGCSector ( )
virtual

Definition at line 376 of file TGCSector.cxx.

377 {
378  // Don't delete m_ASDToPP! 22 May 2001 (MT, KH)
379  for (int i=0; i < NumberOfPatchPanelType; i++) {
380  for (unsigned int j=0; j<m_PP[i].size(); j++) {
381  if (m_PP[i][j] != nullptr) delete m_PP[i][j];
382  }
383  m_PP[i].clear();
384  }
385 
386  for (int i=0; i < NumberOfSlaveBoardType; i++) {
387  for (unsigned int j=0; j < m_SB[i].size(); j+=1) {
388  if(m_SB[i][j] != nullptr) delete m_SB[i][j];
389  }
390  m_SB[i].clear();
391  }
392 
393  for(int i=0; i<NumberOfHighPtBoardType; i+=1){
394  for(unsigned int j=0; j < m_HPB[i].size(); j+=1) {
395  if(m_HPB[i][j] != nullptr) delete m_HPB[i][j];
396  }
397  m_HPB[i].clear();
398  }
399  if (m_SL) delete m_SL;
400  m_SL = 0;
401 }

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 356 of file TGCSector.cxx.

357 {
358  switch(m_regionType){
360  // assume there are only two WireHighPtBoards.
361  if((m_HPB[WHPB][1]) && (m_HPB[WHPB][0])){
362  m_HPB[WHPB][0]->setAdjacentHPB(1,m_HPB[WHPB][1]);
363  m_HPB[WHPB][1]->setAdjacentHPB(0,m_HPB[WHPB][0]);
364  }
365  break;
367  if(m_HPB[WHPB][0]){
368  m_HPB[WHPB][0]->setAdjacentHPB(1,0);
369  }
370  break;
371  default:
372  break;
373  }
374 }

◆ connectAdjacentPP()

void LVL1TGCTrigger::TGCSector::connectAdjacentPP ( )
private

Definition at line 292 of file TGCSector.cxx.

293 {
294  for (unsigned int iPP = 1; iPP < m_PP[WDPP].size(); iPP++) {
295  m_PP[WDPP][iPP-1]->setAdjacentPP(1,m_PP[WDPP][iPP]);
296  m_PP[WDPP][iPP]->setAdjacentPP(0,m_PP[WDPP][iPP-1]);
297  }
298 
299  for (unsigned int iPP = 1; iPP < m_PP[WTPP].size(); iPP++) {
300  m_PP[WTPP][iPP-1]->setAdjacentPP(1,m_PP[WTPP][iPP]);
301  m_PP[WTPP][iPP]->setAdjacentPP(0,m_PP[WTPP][iPP-1]);
302  }
303 
304  for (unsigned int iPP = 1; iPP < m_PP[STPP].size(); iPP++) {
305  m_PP[STPP][iPP-1]->setAdjacentPP(1,m_PP[STPP][iPP]);
306  m_PP[STPP][iPP]->setAdjacentPP(0,m_PP[STPP][iPP-1]);
307  }
308 
309  for (unsigned int iPP = 1; iPP < m_PP[SDPP].size(); iPP++) {
310  m_PP[SDPP][iPP-1]->setAdjacentPP(1,m_PP[SDPP][iPP]);
311  m_PP[SDPP][iPP]->setAdjacentPP(0,m_PP[SDPP][iPP-1]);
312  }
313 
314  for (int i=0; i<=SDPP; i++) {
315  for (TGCPatchPanel* ppasic : m_PP[i]) {
316  ppasic->connect();
317  }
318  }
319 }

◆ connectHPBToSL()

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

Definition at line 343 of file TGCSector.cxx.

344 {
345  if (!m_SL) return;
346 
347  // set pointers of HighPtBoard to connect to SectorLogic
348  for (unsigned int iHPB = 0; iHPB < m_HPB[WHPB].size(); iHPB++){
349  m_SL->setWireHighPtBoard(connection->getSLPortToHPB(WHPB,iHPB), m_HPB[WHPB].at(iHPB));
350  }
351  for (unsigned int iHPB = 0; iHPB < m_HPB[SHPB].size(); iHPB++) {
352  m_SL->setStripHighPtBoard(m_HPB[SHPB].at(iHPB));
353  }
354 }

◆ connectPPToSB()

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

Definition at line 253 of file TGCSector.cxx.

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

◆ connectSBToHPB()

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

Definition at line 321 of file TGCSector.cxx.

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

◆ distributeSignal()

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

Definition at line 31 of file TGCSector.cxx.

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

◆ dumpModule()

void LVL1TGCTrigger::TGCSector::dumpModule ( )

Definition at line 403 of file TGCSector.cxx.

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

◆ 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 71 of file TGCSector.cxx.

72 {
73  if((layer>=0)&&(layer<=2)){
74  if (signal == WIRE) return WTPP;
75  else return STPP;
76  } else if((layer>=3)&&(layer<=6)){
77  if (signal == WIRE) return WDPP;
78  else return SDPP;
79  } else if (layer<=8) {
80  if (signal == WIRE) return WIPP;
81  else return SIPP;
82  } else {
83  return NOPP;
84  }
85 }

◆ 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 163 of file TGCSector.cxx.

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

◆ 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:71
LVL1TGCTrigger::SDSB
@ SDSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::connectPPToSB
void connectPPToSB(const TGCConnectionPPToSB *connection)
Definition: TGCSector.cxx:253
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
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
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:343
LVL1TGCTrigger::TGCSectorLogic::getSSCController
TGCSSCController * getSSCController()
Definition: TGCSectorLogic.h:69
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:67
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
LVL1TGCTrigger::TGCSectorLogic::setTMDB
void setTMDB(std::shared_ptr< const LVL1TGC::TGCTMDB > tmdb)
Definition: TGCSectorLogic.cxx:98
lumiFormat.i
int i
Definition: lumiFormat.py:85
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:163
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
LVL1TGCTrigger::TGCSector::connectSBToHPB
void connectSBToHPB(const TGCConnectionSBToHPB *connection)
Definition: TGCSector.cxx:321
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:292
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:356
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