6 #include "TClonesArray.h"
29 bool * InclusionListStt,
30 Short_t *ListHitsinCluster,
31 Short_t (*ListParContiguous)[6],
33 Short_t * nParContiguous,
34 Short_t number_straws,
69 bool AlreadyConsidered[ number_straws ] ;
70 memset ( AlreadyConsidered,
false,
sizeof( AlreadyConsidered ));
74 Short_t nHitsinCluster = 1;
75 Short_t nHitsAnalyzed = 0;
76 ListHitsinCluster[0] = SeedHit;
77 CurrentListofTubes[0] = TubeID[ SeedHit ];
89 while(nHitsAnalyzed < nHitsinCluster && go){
90 CurrentTube = CurrentListofTubes[nHitsAnalyzed];
91 AlreadyConsidered[ CurrentTube-1 ] =
true;
93 for(i=0;i< nParContiguous[ CurrentTube-1 ] ; i++ ) {
95 ContiguousTube = ListParContiguous[ CurrentTube-1 ][
i];
97 if( AlreadyConsidered[ ContiguousTube-1 ])
continue;
99 if ( SttStrawOn[ ContiguousTube-1 ] > -1 ){
100 if(! InclusionListStt[ SttStrawOn[ ContiguousTube-1] ] )
continue;
104 ListHitsinCluster[nHitsinCluster] = SttStrawOn[ ContiguousTube -1 ] ;
105 CurrentListofTubes[nHitsinCluster] = ContiguousTube ;
106 AlreadyConsidered[ ContiguousTube-1 ] =
true;
108 if( nHitsinCluster == MAXHITSINCLUSTER){
116 return nHitsinCluster;
126 bool* InclusionListStt,
127 Short_t ListParContiguous[][6],
128 Short_t * ListSttParHits,
129 Short_t *nParContiguous,
135 const Short_t MAXSTTHITS,
136 const Short_t NUMBER_STRAWS,
138 Short_t * StrawCode2,
143 Short_t * ListHitsinCluster,
144 Short_t & nFoundClusters,
145 Short_t * nHitsinCluster
153 bool inclusion_list_stt[MAXSTTHITS];
160 for(i=0; i<MAXSTTHITS ; i++) {
161 inclusion_list_stt[
i]=InclusionListStt[
i];
166 for(iParHit=0; iParHit<nSttParHit ; iParHit++) {
170 if(! inclusion_list_stt[ListSttParHits[iParHit]])
continue;
171 icode = StrawCode[TubeID[ListSttParHits[iParHit]]-1];
172 icode2 = StrawCode2[TubeID[ListSttParHits[iParHit]]-1];
174 icode == 13 || icode == 23 ||
175 icode == 10 ||icode == 20 ||
176 icode == 15 ||icode == 25 ||
177 icode == 12 ||icode == 22 ||
179 icode2 == 13 ||icode2 == 23 ||
180 icode2 == 10 ||icode2 == 20 ||
181 icode2 == 15 ||icode2 == 25 ||
182 icode2 == 12 || icode2 == 22
193 nHitsinCluster[nFoundClusters] = FindTrackPattern(
202 &ListHitsinCluster[nFoundClusters*MAXHITSINCLUSTER],
207 ListSttParHits[iParHit],
214 for(i=0; i< nHitsinCluster[nFoundClusters]; i++) {
215 inclusion_list_stt[ ListHitsinCluster[nFoundClusters*MAXHITSINCLUSTER +
i] ]=
false;
218 if( nFoundClusters == MAXFOUNDCLUSTERS)
break;
void GetClusters(bool *InclusionListStt, Short_t ListParContiguous[][6], Short_t *ListSttParHits, Short_t *nParContiguous, Short_t nSttParHit, const Short_t MAXFOUNDCLUSTERS, const Short_t MAXHITSINCLUSTER, const Short_t MAXSTTHITS, const Short_t NUMBER_STRAWS, Short_t *StrawCode, Short_t *StrawCode2, Short_t *SttStrawOn, TClonesArray *SttTubeArray, Short_t *TubeID, Short_t *ListHitsinCluster, Short_t &nFoundClusters, Short_t *nHitsinCluster)
virtual ~PndTrkSttClusterFinder()
const int MAXFOUNDCLUSTERS
const int MAXHITSINCLUSTER
Short_t FindTrackPattern(bool *InclusionListStt, Short_t *ListHitsinCluster, Short_t(*ListParContiguous)[6], Short_t MAXHITSINCLUSTER, Short_t *nParContiguous, Short_t number_straws, Short_t SeedHit, Short_t *SttStrawOn, Short_t *TubeID)