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;
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;
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;
DTSectCollThCand * getDTSectCollThCand(unsigned n) const
Return requested Theta candidate.
const DTConfigSectColl * config() const
Configuration set.
std::vector< DTSectCollPhCand * > _incand_ph[2]
std::vector< DTSectCollThCand * > _cand_th
DTSectCollThCand * getTrackTh(int n) const
Return the requested Theta track.
DTSectCollPhCand * getTrackPh(int n) const
Return the requested Phi track.
DTSectCollPhCand * DTSectCollsort2()
Phi Sort 2.
int nTracksPh() const
Return the number of output Phi tracks.
int nTracksTh() const
Return the number of output Theta tracks.
unsigned nCandPh(int ifs) const
Return the number of Phi input tracks (first/second)
void setBitsSectColl()
Set the bits for DTTSM analysis.
DTSC(int istat)
Constructor.
U second(std::pair< T, U > const &p)
unsigned nCandTh() const
Return the number of Theta input tracks.
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 * getDTSectCollPhCand(int ifs, unsigned n) const
Return requested TSS candidate.
int nFirstTPh() const
Return the number of input first tracks.
void run()
Run the Sector Collector algorithm.
DTSectCollPhCand * DTSectCollsort1()
Phi Sort 1.
deadvectors [0] push_back({0.0175431, 0.538005, 6.80997, 13.29})
void setSecondTrack()
Set the first track bit to second track (used for carry)
int nSecondTPh() const
Return the number of input second tracks.