ATLAS Offline Software
Loading...
Searching...
No Matches
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 )

◆ ~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}
int getSSCId(int nHPB, int chip, int block) const
const TGCArguments * tgcArgs() const
int convertPhi(int chip, int block, int pos) const
int getChamberNo(int chip, int block) const
const int NumberOfChip
@ iPhi
Definition ParamDefs.h:47

◆ 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}
const int MaxNumberOfHPBData

◆ 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.

◆ 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: