41 DTSC::DTSC(
int istat) : _ignoreSecondTrack(0), _stat(istat) {
60 for (
int itk = 0; itk <= 1; itk++) {
71 std::cout <<
"DTSC::run: Processing DTSectColl: ";
84 std::cout <<
"Vector of first Phi tracks in DTSectColl: " << std::endl;
85 std::vector<DTSectCollPhCand*>::const_iterator
p;
94 std::cout <<
"SC: DTSC::run: first Phi track is = " << first << std::endl;
96 if (first !=
nullptr) {
108 std::vector<DTSectCollPhCand*>::const_iterator
p;
109 std::cout <<
"Vector of second Phi tracks in DTSectColl: " << std::endl;
117 if (second !=
nullptr) {
126 std::vector<DTSectCollPhCand*>::iterator
p;
135 if (best ==
nullptr) {
137 }
else if ((*curr) < (*best)) {
140 }
else if (carry ==
nullptr) {
142 }
else if ((*curr) < (*carry)) {
147 if (best ==
nullptr) {
149 }
else if ((*curr) < (*best)) {
154 if (carry !=
nullptr &&
config()->SCGetCarryFlag(
_stat)) {
167 std::cout <<
"DTSC::DTSectCollsort2: called with no first Phi track.";
168 std::cout <<
" empty pointer returned!" << std::endl;
181 std::vector<DTSectCollPhCand*>::iterator
p;
186 if (second ==
nullptr) {
188 }
else if ((*curr) < (*second)) {
201 if (ifs < 1 || ifs > 2) {
202 std::cout <<
"DTSC::nCandPh: wrong track number: " << ifs;
203 std::cout <<
" 0 returned!" << std::endl;
212 if (ifs < 1 || ifs > 2) {
213 std::cout <<
"DTSC::getDTSectCollPhCand: wrong track number: " << ifs;
214 std::cout <<
" empty pointer returned!" << std::endl;
217 if (n < 1 || n >
nCandPh(ifs)) {
218 std::cout <<
"DTSC::getDTSectCollPhCand: requested trigger not present: " <<
n;
219 std::cout <<
" empty pointer returned!" << std::endl;
223 std::vector<DTSectCollPhCand*>::const_iterator
p =
_incand_ph[ifs - 1].begin() + n - 1;
229 std::cout <<
"DTSC::getDTSectCollThCand: requested trigger not present: " <<
n;
230 std::cout <<
" empty pointer returned!" << std::endl;
234 std::vector<DTSectCollThCand*>::const_iterator
p =
_cand_th.begin() + n - 1;
239 int ifs = (cand->
isFirst()) ? 0 : 1;
246 std::cout <<
"DTSC::getTrackPh: requested track not present: " <<
n;
247 std::cout <<
" empty pointer returned!" << std::endl;
251 std::vector<DTSectCollPhCand*>::const_iterator
p =
_outcand_ph.begin() + n - 1;
258 std::cout <<
"DTSC::getTrackTh: requested track not present: " <<
n;
259 std::cout <<
" empty pointer returned!" << std::endl;
263 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)