* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.9 2002/10/14 14:57:00 hristov
-Merging the VirtualMC branch to the main development branch (HEAD)
-
-Revision 1.7.6.1 2002/10/14 13:14:08 hristov
-Updating VirtualMC to v3-09-02
-
-Revision 1.8 2002/09/09 17:23:28 nilsen
-Minor changes in support of changes to AliITSdigitS?D class'.
-
-*/
+/* $Id$ */
#include <Riostream.h>
#include "TArrayI.h"
#include "TClonesArray.h"
-#include "AliITSdigit.h"
+#include "AliITSdigitSSD.h"
#include "AliITSclusterSSD.h"
ClassImp(AliITSclusterSSD)
delete fCrossedClusterIndexes;
}
//______________________________________________________________________
-AliITSclusterSSD::AliITSclusterSSD(const AliITSclusterSSD &OneSCluster){
+AliITSclusterSSD::AliITSclusterSSD(const AliITSclusterSSD &OneSCluster) :
+ TObject(OneSCluster){
// copy constructor
if (this == &OneSCluster) return;
//______________________________________________________________________
Int_t *AliITSclusterSSD::GetTracks(Int_t &nt){
// return the track number of the cluster
+ Int_t ntrk = GetDigit(0)->GetNTracks();
+ Int_t ndig = GetNumOfDigits();
+ Int_t *idig = new Int_t[ndig];
+ Int_t *sdig = new Int_t[ndig];
+ Int_t *itrk = new Int_t[ndig*ntrk];
+ Int_t i,j,k,l,trk;
+ Bool_t b;
+
+ for(i=0;i<ndig;i++){idig[i] = i;sdig[i] = GetDigit(i)->GetSignal();}
+ TMath::Sort(ndig,sdig,idig,kTRUE);
+ for(i=0;i<ndig*ntrk;i++) itrk[i] = -3;
+ j = k = l = 0;
+ for(i=0;i<ndig;i++){ // fill itrk with track numbers in order of digit size
+ j = idig[i];
+ for(k=0;k<ntrk;k++) if((trk = GetDigit(j)->GetTrack(k))>=0) {
+ itrk[l] = trk;
+ l++;
+ } // end for k/if
+ } // end for i
+ for(i=0;i<10;i++) fTrack[i] = -3;
+ fTrack[0] = itrk[0]; // first element
+ k = 1;
+ b = kTRUE;
+ for(i=1;i<l;i++){
+ for(j=0;j<k;j++) if(fTrack[j]==itrk[i]) b = kFALSE;
+ if(b){fTrack[k] = itrk[i]; k++;}
+ if(k>9) break;
+ } // end for i
+ nt = k;
+
+ delete[] idig;
+ delete[] sdig;
+ delete[] itrk;
+
+ return fTrack;
+/*
Int_t *tidx=0;
Int_t i, j,n;
Int_t bit =0;
SetNTracks(ntracks);
nt = ntracks;
return &(fTrack[0]);
+*/
}
//______________________________________________________________________
Double_t AliITSclusterSSD::GetPosition(){