23 mass(mass_),q(q_),p(0),x(0),y(0),z(0),px(0),py(0),pz(0),ID(_ID), mother_ID(_mother_ID), pdg(_pdg),Points(),StsHits(),
24 nMCContStations(0),nHitContStations(0),maxNStaMC(0),maxNSensorMC(0),maxNStaHits(0),nStations(0),nMCStations(0),isReconstructable(0),isAdditional(),
57 for (
unsigned int iP = 0; iP <
Points.size(); iP++){
59 for (
unsigned int iH = 0; iH < point->
hitIds.size(); iH++){
60 const int iih = point->
hitIds[iH];
69 CalculateMaxNStaHits();
70 CalculateIsReconstructable();
73void CbmL1MCTrack::CalculateMCCont()
77 int nPoints =
Points.size();
79 int istaold = -1, ncont=0;
80 for(
int ih=0; ih<nPoints; ih++ ){
83 if (ista - istaold == 1) ncont++;
84 else if(ista - istaold > 1){
85 if( nMCContStations < ncont ) nMCContStations = ncont;
88 if (ista <= istaold )
continue;
91 if( nMCContStations < ncont ) nMCContStations = ncont;
94void CbmL1MCTrack::CalculateHitCont()
100 nHitContStations = 0;
101 int istaold = -1, ncont=0;
102 for(
int ih=0; ih<nhits; ih++ ){
105 int ista = algo->
vSFlag[h.
f]/4;
106 if (ista - istaold == 1) ncont++;
107 else if(ista - istaold > 1){
108 if( nHitContStations < ncont ) nHitContStations = ncont;
112 if ( !( ista >= istaold ) ) {
113 nHitContStations = 0;
116 if (ista == istaold )
continue;
119 if( nHitContStations<ncont ) nHitContStations=ncont;
122void CbmL1MCTrack::CalculateMaxNStaHits()
129 int cur_maxNStaHits = 0;
130 for(
unsigned int iH = 0; iH <
StsHits.size(); iH++){
140 if (cur_maxNStaHits > maxNStaHits) maxNStaHits = cur_maxNStaHits;
146 if (cur_maxNStaHits > maxNStaHits) maxNStaHits = cur_maxNStaHits;
150void CbmL1MCTrack::CalculateMaxNStaMC()
159 int cur_maxNStaMC = 0 , cur_maxNSensorMC = 0;
160 for(
unsigned int iH = 0; iH <
Points.size(); iH++){
165 if (cur_maxNStaMC > maxNStaMC) maxNStaMC = cur_maxNStaMC;
174 if (cur_maxNSensorMC > maxNSensorMC) maxNSensorMC = cur_maxNSensorMC;
175 cur_maxNSensorMC = 1;
179 if (cur_maxNStaMC > maxNStaMC) maxNStaMC = cur_maxNStaMC;
180 if (cur_maxNSensorMC > maxNSensorMC) maxNSensorMC = cur_maxNSensorMC;
184void CbmL1MCTrack::CalculateIsReconstructable()
197 f &= (maxNStaMC <= 4);
205 (nHitContStations == nStations) & (nMCContStations == nStations) & (nMCStations == nStations) &
206 (nHitContStations >= 3) &
207 (
L1->vMCPoints[
Points[0]].iStation == 0);
208 isAdditional &= !isReconstructable;
friend F32vec4 sqrt(const F32vec4 &a)
friend F32vec4 fabs(const F32vec4 &a)
static CbmL1 * Instance()
reconstructed tracks
vector< unsigned char > vSFlag
vector< L1StsHit > vStsHits
const double MinNStations
const double MinRecoMom
Performance constants.