|
|
Go to the documentation of this file.
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;
DTSectCollPhCand * getDTSectCollPhCand(int ifs, unsigned n) const
Return requested TSS candidate.
void addThCand(DTSectCollThCand *cand)
Add a Theta candidate to sect coll.
void setBitsSectColl()
Set the bits for DTTSM analysis.
void addDTSectCollPhCand(DTSectCollPhCand *cand)
Add a Sector Collector.
int nFirstTPh() const
Return the number of input first tracks.
U second(std::pair< T, U > const &p)
void run()
Run the Sector Collector algorithm.
DTSectCollPhCand * DTSectCollsort1()
Phi Sort 1.
int nSecondTPh() const
Return the number of input second tracks.
DTSectCollThCand * getDTSectCollThCand(unsigned n) const
Return requested Theta candidate.
DTSectCollPhCand * getTrackPh(int n) const
Return the requested Phi track.
const DTConfigSectColl * config() const
Configuration set.
std::vector< DTSectCollPhCand * > _incand_ph[2]
DTSectCollPhCand * DTSectCollsort2()
Phi Sort 2.
std::vector< DTSectCollThCand * > _cand_th
void setSecondTrack()
Set the first track bit to second track (used for carry)
DTSC(int istat)
Constructor.
int nTracksPh() const
Return the number of output Phi tracks.
DTSectCollThCand * getTrackTh(int n) const
Return the requested Theta track.
int nTracksTh() const
Return the number of output Theta tracks.
unsigned nCandTh() const
Return the number of Theta input tracks.
std::vector< DTSectCollPhCand * > _outcand_ph
unsigned nCandPh(int ifs) const
Return the number of Phi input tracks (first/second)
void addPhCand(DTSectCollPhCand *cand)
Add a TSM candidate to the Sect Coll, ifs is first/second track flag.