64 {
65
67
68
70
71
74
75 unsigned int strawcount(0);
76 unsigned int nBAA[3][3] = {{0}};
77 unsigned int nBAC[3][3] = {{0}};
78 unsigned int nECA[14][3] = {{0}};
79 unsigned int nECC[14][3] = {{0}};
80
82
83 const double strawLength((*it)->strawLength());
84 const Identifier
id((*it)->identify());
85
86 const int ringwheel(
m_id_helper->layer_or_wheel(
id));
90
91 int endcap, isneg;
92 switch ( side ) {
93 case -2: endcap = 1; isneg = 1; break;
94 case -1: endcap = 0; isneg = 1; break;
95 case 1: endcap = 0; isneg = 0; break;
96 case 2: endcap = 1; isneg = 0; break;
97 default:
98 std::cout << "TRTDigitization::TRTDigCondBase::createListOfValidStraws "
99 << "FATAL - identifier problems - skipping detector element!!" << std::endl;
100 continue;
101 }
102
103 for (unsigned int iStraw(0); iStraw <(*it)->nStraws(); ++iStraw) {
104
105
106 const int hitid(hitid_helper->buildHitId( endcap, isneg, ringwheel, phisector, layer, iStraw));
107 Identifier strawId =
m_id_helper->straw_id(side, phisector, ringwheel, layer, iStraw);
108 const int statusHT =
m_sumTool->getStatusHT(strawId, Gaudi::Hive::currentContext());
110
111
112 double noiselevel, relative_noiseamplitude;
113 setStrawStateInfo( strawId, strawLength, noiselevel, relative_noiseamplitude, rndmEngine );
116 strawstate.lowthreshold = ( !(hitid & 0x00200000) ) ?
m_settings->lowThresholdBar(strawGasType) :
m_settings->lowThresholdEC(strawGasType);
117 strawstate.noiseamplitude= relative_noiseamplitude;
119
120
121 ++strawcount;
122
123
124 if ( side==+1 && ringwheel>=0 && ringwheel<=2 ) nBAA[ringwheel][strawGasType]++;
125 if ( side==-1 && ringwheel>=0 && ringwheel<=2 ) nBAC[ringwheel][strawGasType]++;
126 if ( side==+2 && ringwheel>=0 && ringwheel<=13 ) nECA[ringwheel][strawGasType]++;
127 if ( side==-2 && ringwheel>=0 && ringwheel<=13 ) nECC[ringwheel][strawGasType]++;
128
129 };
130
131 };
132
135
136
138
140 ATH_MSG_ERROR(
"TRTDigCondBase::initialize it seems that ALL straws are dead/masked! This wont work.");
141 }
142
143
145
146
147 if (
m_UseGasMix==0) std::cout <<
"TRTDigCondBase INFO Gas Geometry: UseGasMix==0; using StatusHT to determine the gas geometry." << std::endl;
148 if (
m_UseGasMix==1) std::cout <<
"TRTDigCondBase INFO Gas Geometry: UseGasMix==1; expect Xenon in the entire detector." << std::endl;
149 if (
m_UseGasMix==2) std::cout <<
"TRTDigCondBase INFO Gas Geometry: UseGasMix==2; expect Krypton in the entire detector." << std::endl;
150 if (
m_UseGasMix==3) std::cout <<
"TRTDigCondBase INFO Gas Geometry: UseGasMix==3; expect Argon in the entire detector." << std::endl;
152 std::cout <<
"TRTDigCondBase ERROR Gas Geometry: UseGasMix==" <<
m_UseGasMix <<
", must be 0,1,2or 3!" << std::endl;
153 throw std::exception();
154 }
155 std::cout << "TRTDigCondBase INFO Gas Geometry: strawcount=" << strawcount << std::endl;
156
157 std::cout << "TRTDigCondBase INFO Gas Geometry: BA_A[Xe] = " << nBAA[0][0] << " " << nBAA[1][0] << " " << nBAA[2][0] << std::endl;
158 std::cout << "TRTDigCondBase INFO Gas Geometry: BA_A[Kr] = " << nBAA[0][1] << " " << nBAA[1][1] << " " << nBAA[2][1] << std::endl;
159 std::cout << "TRTDigCondBase INFO Gas Geometry: BA_A[Ar] = " << nBAA[0][2] << " " << nBAA[1][2] << " " << nBAA[2][2] << std::endl;
160
161 std::cout << "TRTDigCondBase INFO Gas Geometry: BA_C[Xe] = " << nBAC[0][0] << " " << nBAC[1][0] << " " << nBAC[2][0] << std::endl;
162 std::cout << "TRTDigCondBase INFO Gas Geometry: BA_C[Kr] = " << nBAC[0][1] << " " << nBAC[1][1] << " " << nBAC[2][1] << std::endl;
163 std::cout << "TRTDigCondBase INFO Gas Geometry: BA_C[Ar] = " << nBAC[0][2] << " " << nBAC[1][2] << " " << nBAC[2][2] << std::endl;
164
165 std::cout <<
"TRTDigCondBase INFO Gas Geometry: EC_A[Xe] = ";
for (
auto & i : nECA) std::cout <<
i[0] <<
" "; std::cout << std::endl;
166 std::cout <<
"TRTDigCondBase INFO Gas Geometry: EC_A[Kr] = ";
for (
auto & i : nECA) std::cout <<
i[1] <<
" "; std::cout << std::endl;
167 std::cout <<
"TRTDigCondBase INFO Gas Geometry: EC_A[Ar] = ";
for (
auto & i : nECA) std::cout <<
i[2] <<
" "; std::cout << std::endl;
168
169 std::cout <<
"TRTDigCondBase INFO Gas Geometry: EC_C[Xe] = ";
for (
auto & i : nECC) std::cout <<
i[0] <<
" "; std::cout << std::endl;
170 std::cout <<
"TRTDigCondBase INFO Gas Geometry: EC_C[Kr] = ";
for (
auto & i : nECC) std::cout <<
i[1] <<
" "; std::cout << std::endl;
171 std::cout <<
"TRTDigCondBase INFO Gas Geometry: EC_C[Ar] = ";
for (
auto & i : nECC) std::cout <<
i[2] <<
" "; std::cout << std::endl;
172
173}
MsgStream & msg() const
The standard message stream.
DataModel_detail::const_iterator< DataVector > const_iterator
virtual void setStrawStateInfo(Identifier &TRT_Identifier, const double &strawlength, double &noiselevel, double &relative_noiseamplitude, CLHEP::HepRandomEngine *rndmEngine)=0
Get straw state info based on hitid and strawlength.
static const TRTHitIdHelper * GetHelper()
int StrawGasType(int statusHT, int useGasMix, MsgStream *log)
float noiselevel
Noise level.