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 30 of file TGCSector.h.

Member Enumeration Documentation

◆ TGCHighPtBoardType

Enumerator
WHPB 
SHPB 
NumberOfHighPtBoardType 

Definition at line 33 of file TGCSector.h.

◆ TGCPatchPanelType

Enumerator
NOPP 
WTPP 
WDPP 
STPP 
SDPP 
WIPP 
SIPP 
NumberOfPatchPanelType 

Definition at line 34 of file TGCSector.h.

34  { NOPP=-1,
35  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 110 of file TGCSector.cxx.

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

◆ TGCSector() [2/3]

LVL1TGCTrigger::TGCSector::TGCSector ( )

Definition at line 90 of file TGCSector.cxx.

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

◆ TGCSector() [3/3]

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

◆ ~TGCSector()

LVL1TGCTrigger::TGCSector::~TGCSector ( )
virtual

Definition at line 379 of file TGCSector.cxx.

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

Member Function Documentation

◆ clearNumberOfHit()

void LVL1TGCTrigger::TGCSector::clearNumberOfHit ( )
inline

Definition at line 132 of file TGCSector.h.

133 { m_numberOfHit = 0;}

◆ connectAdjacentHPB()

void LVL1TGCTrigger::TGCSector::connectAdjacentHPB ( )
private

Definition at line 359 of file TGCSector.cxx.

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

◆ connectAdjacentPP()

void LVL1TGCTrigger::TGCSector::connectAdjacentPP ( )
private

Definition at line 295 of file TGCSector.cxx.

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

◆ connectHPBToSL()

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

Definition at line 346 of file TGCSector.cxx.

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

◆ connectPPToSB()

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

Definition at line 256 of file TGCSector.cxx.

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

◆ connectSBToHPB()

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

Definition at line 324 of file TGCSector.cxx.

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

◆ 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  MsgStream log(Athena::getMessageSvc(), "LVL1TGCTrigger::TGCSector");
57  if (!notFound) {
58  log << MSG::DEBUG
59  << "signalType= " << ((signalType == WIRE) ? "Wire" : "Strip")
60  <<" layer= " <<layer <<" rNumber= " <<rNumber <<" ch= "<< ch
61  <<"id(PP)= " <<idPP <<" connector(PP)= " <<conPP <<" ch(PP)= " <<chPP
62  <<endmsg;
63  }
64  }
65 
66  if(!notFound){
67  m_PP[PPType][idPP]->setASDOut(chPP,conPP,ASDOut);
68  m_numberOfHit+=1;
69  return 0;
70  }
71  return -1;
72 }

◆ dumpModule()

void LVL1TGCTrigger::TGCSector::dumpModule ( )

Definition at line 406 of file TGCSector.cxx.

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

◆ getBIS78()

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

Definition at line 85 of file TGCSector.h.

85 { return m_BIS78; }

◆ getHPB()

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

Definition at line 147 of file TGCSector.h.

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

◆ getId()

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

Definition at line 173 of file TGCSector.h.

174 { return m_id;}

◆ getModuleId()

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

Definition at line 77 of file TGCSector.h.

77 { return m_moduleId; }

◆ getNSW()

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

Definition at line 84 of file TGCSector.h.

84 { return m_NSW; }

◆ getNumberOfHPB()

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

Definition at line 164 of file TGCSector.h.

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

◆ getNumberOfPP()

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

Definition at line 153 of file TGCSector.h.

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

◆ getNumberOfSB()

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

Definition at line 159 of file TGCSector.h.

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

◆ getOctantId()

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

Definition at line 76 of file TGCSector.h.

76 { return m_octantId; }

◆ getPatchPanelType()

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

Definition at line 74 of file TGCSector.cxx.

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

◆ getPP()

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

Definition at line 135 of file TGCSector.h.

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

◆ getRegionType()

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

Definition at line 169 of file TGCSector.h.

170 { return m_regionType;}

◆ getSB()

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

Definition at line 141 of file TGCSector.h.

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

◆ getSideId()

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

Definition at line 75 of file TGCSector.h.

75 { return m_sideId; }

◆ getSL()

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

Definition at line 65 of file TGCSector.h.

65 { return m_SL; }

◆ getTMDB()

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

Definition at line 83 of file TGCSector.h.

83 { return m_TMDB; }

◆ hasHit()

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

Definition at line 127 of file TGCSector.h.

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

◆ operator=()

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

◆ setModule()

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

Definition at line 166 of file TGCSector.cxx.

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

◆ tgcArgs() [1/2]

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

Definition at line 79 of file TGCSector.h.

79 { return m_tgcArgs; }

◆ tgcArgs() [2/2]

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

Definition at line 80 of file TGCSector.h.

80 { 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 111 of file TGCSector.h.

◆ m_BIS78

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

Definition at line 120 of file TGCSector.h.

◆ m_dbMgr

const TGCDatabaseManager* LVL1TGCTrigger::TGCSector::m_dbMgr
private

Definition at line 123 of file TGCSector.h.

◆ m_forwardBackward

TGCForwardBackwardType LVL1TGCTrigger::TGCSector::m_forwardBackward
private

Definition at line 110 of file TGCSector.h.

◆ m_HPB

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

Definition at line 115 of file TGCSector.h.

◆ m_id

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

Definition at line 103 of file TGCSector.h.

◆ m_moduleId

int LVL1TGCTrigger::TGCSector::m_moduleId
private

Definition at line 108 of file TGCSector.h.

◆ m_NSW

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

Definition at line 119 of file TGCSector.h.

◆ m_numberOfHit

int LVL1TGCTrigger::TGCSector::m_numberOfHit
private

Definition at line 106 of file TGCSector.h.

◆ m_octantId

int LVL1TGCTrigger::TGCSector::m_octantId
private

Definition at line 107 of file TGCSector.h.

◆ m_PP

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

Definition at line 113 of file TGCSector.h.

◆ m_regionType

TGCRegionType LVL1TGCTrigger::TGCSector::m_regionType
private

Definition at line 104 of file TGCSector.h.

◆ m_SB

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

Definition at line 114 of file TGCSector.h.

◆ m_sideId

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

Definition at line 105 of file TGCSector.h.

◆ m_SL

TGCSectorLogic* LVL1TGCTrigger::TGCSector::m_SL
private

Definition at line 117 of file TGCSector.h.

◆ m_tgcArgs

TGCArguments* LVL1TGCTrigger::TGCSector::m_tgcArgs
private

Definition at line 122 of file TGCSector.h.

◆ m_TMDB

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

Definition at line 118 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:35
LVL1TGCTrigger::TGCSector::m_SL
TGCSectorLogic * m_SL
Definition: TGCSector.h:117
LVL1TGCTrigger::TGCSectorLogic::getRegion
TGCRegionType getRegion() const
Definition: TGCSectorLogic.h:61
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:34
LVL1TGCTrigger::TGCWireTripletPP
class TGCPatchPanel TGCWireTripletPP
Definition: TGCPatchPanel.h:22
index
Definition: index.py:1
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:42
LVL1TGCTrigger::TGCSector::getId
int getId() const
Definition: TGCSector.h:173
LVL1TGCTrigger::TGCSector::WTPP
@ WTPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCSector::getPatchPanelType
int getPatchPanelType(TGCSignalType signal, int layer) const
Definition: TGCSector.cxx:74
LVL1TGCTrigger::SDSB
@ SDSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::connectPPToSB
void connectPPToSB(const TGCConnectionPPToSB *connection)
Definition: TGCSector.cxx:256
LVL1TGCTrigger::TGCSectorLogic::setBIS78
void setBIS78(std::shared_ptr< const LVL1TGC::TGCBIS78 > bis78)
Definition: TGCSectorLogic.cxx:115
LVL1TGCTrigger::TGCRegionType::FORWARD
@ FORWARD
LVL1TGCTrigger::TGCStripTripletPP
class TGCPatchPanel TGCStripTripletPP
Definition: TGCPatchPanel.h:24
LVL1TGCTrigger::TGCSector::m_dbMgr
const TGCDatabaseManager * m_dbMgr
Definition: TGCSector.h:123
LVL1TGCTrigger::TGCWireDoubletPP
class TGCPatchPanel TGCWireDoubletPP
Definition: TGCPatchPanel.h:23
LVL1TGCTrigger::TGCSectorLogic::setNSW
void setNSW(std::shared_ptr< const LVL1TGC::TGCNSW > nsw)
Definition: TGCSectorLogic.cxx:109
LVL1TGCTrigger::TGCSector::m_forwardBackward
TGCForwardBackwardType m_forwardBackward
Definition: TGCSector.h:110
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
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:118
LVL1TGCTrigger::TGCSector::m_octantId
int m_octantId
Definition: TGCSector.h:107
LVL1TGCTrigger::TGCSector::m_id
int m_id
Definition: TGCSector.h:103
LVL1TGCTrigger::TGCSector::WDPP
@ WDPP
Definition: TGCSector.h:35
LVL1TGCTrigger::TGCSector::connectHPBToSL
void connectHPBToSL(const TGCConnectionHPBToSL *connection)
Definition: TGCSector.cxx:346
LVL1TGCTrigger::TGCSectorLogic::getSSCController
TGCSSCController * getSSCController()
Definition: TGCSectorLogic.h:68
LVL1TGCTrigger::TGCSector::SIPP
@ SIPP
Definition: TGCSector.h:35
LVL1TGCTrigger::NumberOfOctant
const int NumberOfOctant
Definition: TGCElectronicsSystem.h:19
LVL1TGCTrigger::WDSB
@ WDSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::tgcArgs
TGCArguments * tgcArgs()
Definition: TGCSector.h:79
LVL1TGCTrigger::TGCSector::m_HPB
std::vector< TGCHighPtBoard * > m_HPB[NumberOfHighPtBoardType]
Definition: TGCSector.h:115
LVL1TGCTrigger::TGCSectorLogic::setTMDB
void setTMDB(std::shared_ptr< const LVL1TGC::TGCTMDB > tmdb)
Definition: TGCSectorLogic.cxx:103
lumiFormat.i
int i
Definition: lumiFormat.py:85
LVL1TGCTrigger::TGCSector::m_sideId
LVL1TGC::TGCSide m_sideId
Definition: TGCSector.h:105
LVL1TGCTrigger::WTSB
@ WTSB
Definition: TGCNumbering.h:57
LVL1TGCTrigger::TGCSector::m_PP
std::vector< TGCPatchPanel * > m_PP[NumberOfPatchPanelType]
Definition: TGCSector.h:113
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
LVL1TGCTrigger::TGCSector::m_moduleId
int m_moduleId
Definition: TGCSector.h:108
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LVL1TGCTrigger::TGCSectorLogic::setWireHighPtBoard
void setWireHighPtBoard(int port, TGCHighPtBoard *highPtBoard)
Definition: TGCSectorLogic.cxx:121
LVL1TGCTrigger::TGCSector::setModule
void setModule(const TGCConnectionPPToSL *connection)
Definition: TGCSector.cxx:166
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:35
LVL1TGCTrigger::TGCSector::connectSBToHPB
void connectSBToHPB(const TGCConnectionSBToHPB *connection)
Definition: TGCSector.cxx:324
LVL1TGCTrigger::TGCSector::SDPP
@ SDPP
Definition: TGCSector.h:35
Cut::signal
@ signal
Definition: SUSYToolsAlg.cxx:67
LVL1TGCTrigger::TGCSector::m_ASDToPP
const TGCConnectionASDToPP * m_ASDToPP[NumberOfPatchPanelType]
Definition: TGCSector.h:111
LVL1TGCTrigger::TGCSector::m_SB
std::vector< TGCSlaveBoard * > m_SB[NumberOfSlaveBoardType]
Definition: TGCSector.h:114
LVL1TGCTrigger::TGCSector::WHPB
@ WHPB
Definition: TGCSector.h:33
LVL1TGCTrigger::TGCSignalType
TGCSignalType
Definition: TGCNumbering.h:51
LVL1TGCTrigger::TGCSector::SHPB
@ SHPB
Definition: TGCSector.h:33
LVL1TGCTrigger::TGCSSCController::setNumberOfWireHighPtBoard
void setNumberOfWireHighPtBoard(int iData)
Definition: TGCSSCController.h:23
LVL1TGCTrigger::TGCSector::m_regionType
TGCRegionType m_regionType
Definition: TGCSector.h:104
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:127
LVL1TGCTrigger::TGCSector::connectAdjacentPP
void connectAdjacentPP()
Definition: TGCSector.cxx:295
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:33
LVL1TGCTrigger::TGCSector::connectAdjacentHPB
void connectAdjacentHPB()
Definition: TGCSector.cxx:359
LVL1TGCTrigger::TGCSector::m_NSW
std::shared_ptr< const LVL1TGC::TGCNSW > m_NSW
Definition: TGCSector.h:119
LVL1TGCTrigger::TGCSector::m_BIS78
std::shared_ptr< const LVL1TGC::TGCBIS78 > m_BIS78
Definition: TGCSector.h:120
LVL1TGCTrigger::ForwardSector
@ ForwardSector
Definition: TGCNumbering.h:59
LVL1TGCTrigger::TGCSector::m_tgcArgs
TGCArguments * m_tgcArgs
Definition: TGCSector.h:122
LVL1TGCTrigger::TGCSectorLogic::getId
int getId() const
Definition: TGCSectorLogic.h:171
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:36
LVL1TGCTrigger::TGCSector::m_numberOfHit
int m_numberOfHit
Definition: TGCSector.h:106