186 TString ts_pattern(pattern);
187 TObjArray toa_tokenized_pattern(4,0);
188 toa_tokenized_pattern = * ts_pattern.Tokenize(
"_");
189 if(toa_tokenized_pattern.GetEntries() != 4){
190 std::runtime_error(
"AlfaLocalHits: Pattern of wrong length!!! " + ts_pattern);
192 TString patternitem(
"");
194 for(
int i1 = 0; i1 <
m_nhits; i1++){
195 int i1last = (i1 ==
m_nhits-1);
197 TString patternitem0 = TString(((TObjString*) toa_tokenized_pattern.At(0))->GetString());
198 if((h1.GetPotName().Contains(patternitem0))
199 || (i1last && patternitem0.Contains(
"X"))
201 for(
int i2 = 0; i2 <
m_nhits; i2++){
202 int i2last = (i2 ==
m_nhits-1);
203 if(i2 == i1 && !i2last)
continue;
205 TString patternitem1 = TString(((TObjString*) toa_tokenized_pattern.At(1))->GetString());
207 ||(i2last && patternitem1.Contains(
"X"))
209 for(
int i3 = 0; i3 <
m_nhits; i3++){
210 int i3last = (i3 ==
m_nhits-1);
211 if(i3 == i1 && !i3last)
continue;
212 if(i3 == i2 && !i3last)
continue;
214 TString patternitem2 = TString(((TObjString*) toa_tokenized_pattern.At(2))->GetString());
216 ||(i3last && patternitem2.Contains(
"X"))
218 for(
int i4 = 0; i4 <
m_nhits; i4++){
219 int i4last = (i4 ==
m_nhits-1);
220 if(i4 == i1 && !i4last)
continue;
221 if(i4 == i2 && !i4last)
continue;
222 if(i4 == i3 && !i4last)
continue;
224 TString patternitem3 = TString(((TObjString*) toa_tokenized_pattern.At(3))->GetString());
226 ||(i4last && patternitem3.Contains(
"X"))
228 if(patternitem0!=
'X') {alh_tmp.
AddHit(h1);}
229 if(patternitem1!=
'X') {alh_tmp.
AddHit(h2);}
230 if(patternitem2!=
'X') {alh_tmp.
AddHit(h3);}
231 if(patternitem3!=
'X') {alh_tmp.
AddHit(h4);}
241 m_paths.push_back(std::move(alh_tmp));
456 std::ios oldState(
nullptr);
457 oldState.copyfmt(std::cout);
458 cout <<
"Dumping AlfaTrackCand:" << endl;
459 cout <<
" arm = " << std::setprecision(8) <<
m_arm
460 <<
" x = " << std::setprecision(8) <<
m_x
461 <<
" y = " << std::setprecision(8) <<
m_y
462 <<
" z = " << std::setprecision(8) <<
m_z
463 <<
" x'= " << std::setprecision(8) <<
m_xslope
464 <<
" y' = " << std::setprecision(8) <<
m_yslope
466 std::cout.copyfmt(oldState);