ATLAS Offline Software
Loading...
Searching...
No Matches
TGCSSCControllerOut.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include <iostream>
7
8namespace LVL1TGCTrigger {
9
11 = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
12 { 0, 0, 0, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4 }
13 };
14
16 m_regionType(region)
17{
18 for(int i=0; i<MaxNumberOfChamberInR; i++ ){
19 for(int j=0; j<MaxNumberOfPhiInSSC; j++) {
20 m_phi[i][j] =0;
21 m_dPhi[i][j] = 0;
22 m_ptPhi[i][j] =0;
23 m_hitPhi[i][j] = false;
24 }
25 }
26
27 for (size_t i=0; i < LVL1TGC::kNMaxSSC; i++ ){
28 m_r[i] = 0;
29 m_dR[i] = 0;
30 m_ptR[i] = 0;
31 m_hitR[i] = false;
32 }
33}
34
35bool TGCSSCControllerOut::hasHit(int ssc, bool ored) const
36{
37 for(int phiposInSSC = 0; phiposInSSC < MaxNumberOfPhiInSSC; phiposInSSC++){
38 if(!ored){
39 if(m_hitR[ssc]&&m_hitPhi[getChamberNumber(ssc)][phiposInSSC]) return true;
40 } else if(hasChamberBoundary(ssc)){
41 int idx =getOredChamberNumber(ssc);
42 if( m_hitR[ssc] && (idx>=0) &&
43 m_hitPhi[idx][phiposInSSC]) return true;
44 }
45 }
46 return false;
47}
48
49bool TGCSSCControllerOut::hasHit(int ssc, int phiposInSSC, bool ored) const
50{
51 if(!ored){
52 if(m_hitR[ssc]&&m_hitPhi[getChamberNumber(ssc)][phiposInSSC]) return true;
53 } else if(hasChamberBoundary(ssc)){
54 int idx =getOredChamberNumber(ssc);
55 if( m_hitR[ssc] && (idx>=0) &&
56 m_hitPhi[idx][phiposInSSC]) return true;
57 }
58 return false;
59}
60
62{
63#ifdef TGCCOUT
64 int i,j,k;
65 std::cout<<std::endl;
66 std::cout<<"TGCSSCControllerOut::print() begin"<<std::endl;
67
68 for( j=0; j<getNumberOfChamberInR(); j+=1)
69 for( k=0; k<MaxNumberOfPhiInSSC; k++)
70 if(m_hitPhi[j][k]) std::cout<<"#Chamber= "<< j << " Phi" << k
71 <<" phi= "<<m_phi[j][k]<<" dPhi= "<<m_dPhi[j][k]
72 <<" H/L= "<<m_ptPhi[j][k]<<std::endl;
73
74 for( i=0; i<getNumberOfSubSectorCluster(); i+=1)
75 if(m_hitR[i]) std::cout<<"#SSC= "<<i
76 <<" r= "<<m_r[i]<<" dR= "<<m_dR[i]
77 <<" H/L= "<<m_ptR[i]<<std::endl;
78
79 std::cout<<"TGCSSCControllerOut::print() end"<<std::endl;
80#endif
81}
82
84{
85 int i, j;
86 for( i=0; i<getNumberOfChamberInR(); i+=1)
87 for( j=0; j<MaxNumberOfPhiInSSC; j++)
88 m_hitPhi[i][j]=false;
89
90 for( i=0; i<getNumberOfSubSectorCluster(); i+=1)
91 m_hitR[i]=false;
92}
93
94
95} //end of namespace bracket
int m_phi[MaxNumberOfChamberInR][MaxNumberOfPhiInSSC]
bool hasHit(int ssc, bool ored=false) const
int m_ptPhi[MaxNumberOfChamberInR][MaxNumberOfPhiInSSC]
TGCSSCControllerOut(TGCRegionType region=TGCRegionType::ENDCAP)
bool m_hitPhi[MaxNumberOfChamberInR][MaxNumberOfPhiInSSC]
int m_dPhi[MaxNumberOfChamberInR][MaxNumberOfPhiInSSC]
static const int s_chamber[NumberOfRegionType][LVL1TGC::kNMaxSSC]
const int NumberOfRegionType
static constexpr unsigned int kNMaxSSC
The maximim number of SubSector-Clusters (SSC) (i.e.