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

#include <TGCSSCController.h>

Collaboration diagram for LVL1TGCTrigger::TGCSSCController:

Public Member Functions

 TGCSSCController (const TGCArguments *, const TGCSectorLogic *sL=0)
 
virtual ~TGCSSCController ()
 
TGCSSCControllerOutdistribute (TGCHighPtChipOut *wire[], TGCHighPtChipOut *strip)
 
void setNumberOfWireHighPtBoard (int iData)
 
int getNumberOfWireHighPtBoard ()
 
void setRegion (TGCRegionType regionIn)
 
const TGCArgumentstgcArgs () const
 

Private Member Functions

int getSSCId (int nHPB, int chip, int block) const
 
int convertPhi (int chip, int block, int pos) const
 
int getChamberNo (int chip, int block) const
 
int getPhiPosInSSC (int chip, int block) const
 

Private Attributes

const TGCSectorLogicm_sectorLogic
 
int m_NumberOfWireHighPtBoard
 
TGCRegionType m_region
 
const TGCArgumentsm_tgcArgs
 

Detailed Description

Definition at line 16 of file TGCSSCController.h.

Constructor & Destructor Documentation

◆ TGCSSCController()

LVL1TGCTrigger::TGCSSCController::TGCSSCController ( const TGCArguments tgcargs,
const TGCSectorLogic sL = 0 
)

Definition at line 14 of file TGCSSCController.cxx.

◆ ~TGCSSCController()

virtual LVL1TGCTrigger::TGCSSCController::~TGCSSCController ( )
inlinevirtual

Definition at line 20 of file TGCSSCController.h.

20 {}

Member Function Documentation

◆ convertPhi()

int LVL1TGCTrigger::TGCSSCController::convertPhi ( int  chip,
int  block,
int  pos 
) const
private

Definition at line 97 of file TGCSSCController.cxx.

98 {
99  return (pos + (block%2) * 2);
100 }

◆ distribute()

TGCSSCControllerOut * LVL1TGCTrigger::TGCSSCController::distribute ( TGCHighPtChipOut wire[],
TGCHighPtChipOut strip 
)

Definition at line 21 of file TGCSSCController.cxx.

22 {
23  TGCSSCControllerOut* out = new TGCSSCControllerOut(m_sectorLogic->getRegion());
24  out->clear();
25 
26  for(int HPBid=0; HPBid < m_sectorLogic->getNumberOfWireHighPtBoard(); HPBid++){
27  if(wire[HPBid]==0) continue; // NO wire HIT
28  for(int chip=0; chip<NumberOfChip; chip+=1){
29  for(int iCandidate=1; iCandidate>=0; iCandidate-=1){
30  if(wire[HPBid]->getSel(chip,iCandidate)){
31  // If both candidates has same HitID, ignore 2nd candidate(iCandidate==1).
32  if(iCandidate==1 && (wire[HPBid]->getHitID(chip,1)) == (wire[HPBid]->getHitID(chip,0))) continue;
33  int SSCId = getSSCId(HPBid,chip,wire[HPBid]->getHitID(chip,iCandidate));
34  if(SSCId<m_sectorLogic->getNumberOfSubSectorCluster()){
35  out->setR(SSCId,wire[HPBid]->getPos(chip,iCandidate));
36  out->setDR(SSCId,wire[HPBid]->getDev(chip,iCandidate));
37  out->setPtR(SSCId,wire[HPBid]->getPt(chip,iCandidate));
38  out->setHitR(SSCId,true);
39  }else{
40  std::cerr << "internal error in TGCSSCController::distribute() bid=" << m_sectorLogic->getBid() << " ";
41  std::cerr << " SSCId="<<SSCId<<std::endl;
42  }
43  }
44  }
45  }
46  }
47 
48  if(strip==0) return out;
49 
50  for(int chip=0; chip<NumberOfChip; chip+=1){
51  for(int iCandidate=1; iCandidate>=0; iCandidate-=1){
52  if( strip->getSel(chip,iCandidate) ){
53  // If both candidates has same HitID, ignore 2nd candidate(iCandidate==1).
54  if(iCandidate==1 && (strip->getHitID(chip,1)) == (strip->getHitID(chip,0))) continue;
55  int chamberNo = getChamberNo(chip,strip->getHitID(chip,iCandidate));
56  //if((chamberNo<0)||(chamberNo >= MaxNumberOfChamberInR)) continue;
57 
58  int iPhi = convertPhi(chip,
59  strip->getHitID(chip,iCandidate),
60  strip->getPos(chip,iCandidate) );
61  int PhiPosInSSC = iPhi;
62  if ( PhiPosInSSC > 3 ) continue;
63  out->setPhi(chamberNo, PhiPosInSSC, iPhi);
64  out->setDPhi(chamberNo, PhiPosInSSC,strip->getDev(chip,iCandidate));
65  out->setPtPhi(chamberNo, PhiPosInSSC, strip->getPt(chip,iCandidate));
66  out->setHitPhi(chamberNo, PhiPosInSSC, true);
67 
68  // chamber No3 and No4 can not be distiguished because of SHPT bug
69  // input from No3 or No4 are duplicated in both chamber
70  int oredChamber=-1;
71  if (chamberNo==4) oredChamber= 3;
72  if (chamberNo==3) oredChamber= 4;
73  if (tgcArgs()->SHPT_ORED() && (oredChamber>0)) {
74  if(!out->hasHitPhi(oredChamber, PhiPosInSSC)){
75  out->setPhi(oredChamber, PhiPosInSSC, iPhi);
76  out->setDPhi(oredChamber, PhiPosInSSC,strip->getDev(chip,iCandidate));
77  out->setPtPhi(oredChamber, PhiPosInSSC, strip->getPt(chip,iCandidate));
78  out->setHitPhi(oredChamber, PhiPosInSSC, true);
79  }
80  }
81 
82  }
83  }
84  }
85  return out;
86 }

◆ getChamberNo()

int LVL1TGCTrigger::TGCSSCController::getChamberNo ( int  chip,
int  block 
) const
private

Definition at line 102 of file TGCSSCController.cxx.

103 {
105  int chamber = ((block+chip*MaxNumberOfHPBData)/2);
106  if(chamber==5) return (chamber-1);
107  else if(chamber==4) return 0;
108  else return chamber;
109  }
110 
111  else return 0;
112 }

◆ getNumberOfWireHighPtBoard()

int LVL1TGCTrigger::TGCSSCController::getNumberOfWireHighPtBoard ( )
inline

Definition at line 24 of file TGCSSCController.h.

◆ getPhiPosInSSC()

int LVL1TGCTrigger::TGCSSCController::getPhiPosInSSC ( int  chip,
int  block 
) const
private

Definition at line 114 of file TGCSSCController.cxx.

115 {
116  return block%2;
117 }

◆ getSSCId()

int LVL1TGCTrigger::TGCSSCController::getSSCId ( int  nHPB,
int  chip,
int  block 
) const
private

Definition at line 88 of file TGCSSCController.cxx.

89 {
91  return (block+chip*MaxNumberOfHPBData);
92  } else {
93  return (block+chip*MaxNumberOfHPBData+nHPB*MaxNumberOfHPBData*NumberOfChip-5);
94  }
95 }

◆ setNumberOfWireHighPtBoard()

void LVL1TGCTrigger::TGCSSCController::setNumberOfWireHighPtBoard ( int  iData)
inline

Definition at line 23 of file TGCSSCController.h.

23 {m_NumberOfWireHighPtBoard = iData;};

◆ setRegion()

void LVL1TGCTrigger::TGCSSCController::setRegion ( TGCRegionType  regionIn)
inline

Definition at line 25 of file TGCSSCController.h.

25 { m_region=regionIn;};

◆ tgcArgs()

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

Definition at line 27 of file TGCSSCController.h.

27 { return m_tgcArgs; }

Member Data Documentation

◆ m_NumberOfWireHighPtBoard

int LVL1TGCTrigger::TGCSSCController::m_NumberOfWireHighPtBoard
private

Definition at line 35 of file TGCSSCController.h.

◆ m_region

TGCRegionType LVL1TGCTrigger::TGCSSCController::m_region
private

Definition at line 36 of file TGCSSCController.h.

◆ m_sectorLogic

const TGCSectorLogic* LVL1TGCTrigger::TGCSSCController::m_sectorLogic
private

Definition at line 30 of file TGCSSCController.h.

◆ m_tgcArgs

const TGCArguments* LVL1TGCTrigger::TGCSSCController::m_tgcArgs
private

Definition at line 37 of file TGCSSCController.h.


The documentation for this class was generated from the following files:
LVL1TGCTrigger::TGCRegionType::ENDCAP
@ ENDCAP
LVL1TGCTrigger::TGCSectorLogic::getRegion
TGCRegionType getRegion() const
Definition: TGCSectorLogic.h:62
calibdata.chamber
chamber
Definition: calibdata.py:32
LVL1TGCTrigger::TGCSSCController::m_sectorLogic
const TGCSectorLogic * m_sectorLogic
Definition: TGCSSCController.h:30
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
LVL1TGCTrigger::TGCRegionType::FORWARD
@ FORWARD
LVL1TGCTrigger::TGCSSCController::m_NumberOfWireHighPtBoard
int m_NumberOfWireHighPtBoard
Definition: TGCSSCController.h:35
keylayer_zslicemap.strip
strip
Definition: keylayer_zslicemap.py:151
LVL1TGCTrigger::TGCSSCController::getChamberNo
int getChamberNo(int chip, int block) const
Definition: TGCSSCController.cxx:102
LVL1TGCTrigger::NumberOfChip
const int NumberOfChip
Definition: TGCHighPtBoard.h:20
LVL1TGCTrigger::MaxNumberOfHPBData
const int MaxNumberOfHPBData
Definition: TGCHighPtBoardOut.h:12
LVL1TGCTrigger::TGCSSCController::m_region
TGCRegionType m_region
Definition: TGCSSCController.h:36
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
LVL1TGCTrigger::TGCSSCController::m_tgcArgs
const TGCArguments * m_tgcArgs
Definition: TGCSSCController.h:37
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:53
LVL1TGCTrigger::TGCSSCController::tgcArgs
const TGCArguments * tgcArgs() const
Definition: TGCSSCController.h:27
LVL1TGCTrigger::TGCSSCController::getSSCId
int getSSCId(int nHPB, int chip, int block) const
Definition: TGCSSCController.cxx:88
LVL1TGCTrigger::TGCSectorLogic::getBid
int getBid() const
Definition: TGCSectorLogic.h:81
LVL1TGCTrigger::TGCSectorLogic::getNumberOfWireHighPtBoard
int getNumberOfWireHighPtBoard() const
Definition: TGCSectorLogic.h:165
LVL1TGCTrigger::TGCSSCController::convertPhi
int convertPhi(int chip, int block, int pos) const
Definition: TGCSSCController.cxx:97