42 DTSC::DTSC(
int istat) : _ignoreSecondTrack(0) ,_stat(istat){
71 for(
int itk=0;itk<=1;itk++){
87 std::cout <<
"DTSC::run: Processing DTSectColl: ";
100 std::cout <<
"Vector of first Phi tracks in DTSectColl: " << std::endl;
101 std::vector<DTSectCollPhCand*>::const_iterator
p;
110 std::cout <<
"SC: DTSC::run: first Phi track is = " << first << std::endl;
124 std::vector<DTSectCollPhCand*>::const_iterator
p;
125 std::cout <<
"Vector of second Phi tracks in DTSectColl: " << std::endl;
133 if(second!=
nullptr) {
146 std::vector<DTSectCollPhCand*>::iterator
p;
158 else if((*curr)<(*best)){
162 else if(carry==
nullptr){
165 else if((*curr)<(*carry)){
174 else if((*curr)<(*best)){
181 if(carry!=
nullptr &&
config()->SCGetCarryFlag(
_stat)) {
199 std::cout <<
"DTSC::DTSectCollsort2: called with no first Phi track.";
200 std::cout <<
" empty pointer returned!" << std::endl;
215 std::vector<DTSectCollPhCand*>::iterator
p;
223 else if((*curr)<(*second)){
253 std::cout <<
"DTSC::nCandPh: wrong track number: " << ifs;
254 std::cout <<
" 0 returned!" << std::endl;
273 std::cout <<
"DTSC::getDTSectCollPhCand: wrong track number: " << ifs;
274 std::cout <<
" empty pointer returned!" << std::endl;
278 std::cout <<
"DTSC::getDTSectCollPhCand: requested trigger not present: " <<
n;
279 std::cout <<
" empty pointer returned!" << std::endl;
283 std::vector<DTSectCollPhCand*>::const_iterator
p =
_incand_ph[ifs-1].begin()+n-1;
292 std::cout <<
"DTSC::getDTSectCollThCand: requested trigger not present: " <<
n;
293 std::cout <<
" empty pointer returned!" << std::endl;
297 std::vector<DTSectCollThCand*>::const_iterator
p =
_cand_th.begin()+n-1;
305 int ifs = (cand->
isFirst()) ? 0 : 1;
315 std::cout <<
"DTSC::getTrackPh: requested track not present: " <<
n;
316 std::cout <<
" empty pointer returned!" << std::endl;
320 std::vector<DTSectCollPhCand*>::const_iterator
p =
_outcand_ph.begin()+n-1;
331 std::cout <<
"DTSC::getTrackTh: requested track not present: " <<
n;
332 std::cout <<
" empty pointer returned!" << std::endl;
336 std::vector<DTSectCollThCand*>::const_iterator
p =
_cand_th.begin()+n-1;
int nFirstTPh() const
Return the number of input first tracks.
std::vector< DTSectCollPhCand * > _incand_ph[2]
unsigned nCandPh(int ifs) const
Return the number of Phi input tracks (first/second)
std::vector< DTSectCollThCand * > _cand_th
int isFirst() const
Return first/second track bit value.
DTSectCollPhCand * DTSectCollsort2()
Phi Sort 2.
void setBitsSectColl()
Set the bits for DTTSM analysis.
DTSC(int istat)
Constructor.
DTSectCollThCand * getTrackTh(int n) const
Return the requested Theta track.
U second(std::pair< T, U > const &p)
DTSectCollPhCand * getDTSectCollPhCand(int ifs, unsigned n) const
Return requested TSS candidate.
const DTConfigSectColl * config() const
Configuration set.
void addDTSectCollPhCand(DTSectCollPhCand *cand)
Add a Sector Collector.
std::vector< DTSectCollPhCand * > _outcand_ph
void addThCand(DTSectCollThCand *cand)
Add a Theta candidate to sect coll.
void addPhCand(DTSectCollPhCand *cand)
Add a TSM candidate to the Sect Coll, ifs is first/second track flag.
DTSectCollPhCand * getTrackPh(int n) const
Return the requested Phi track.
void run()
Run the Sector Collector algorithm.
DTSectCollThCand * getDTSectCollThCand(unsigned n) const
Return requested Theta candidate.
int nTracksPh() const
Return the number of output Phi tracks.
DTSectCollPhCand * DTSectCollsort1()
Phi Sort 1.
unsigned nCandTh() const
Return the number of Theta input tracks.
int nSecondTPh() const
Return the number of input second tracks.
int nTracksTh() const
Return the number of output Theta tracks.
void setSecondTrack()
Set the first track bit to second track (used for carry)