X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=ITS%2FAliITSclusterSSD.cxx;h=43b2616df7a71fc7dde4c707f1f58874418fef0c;hb=e658398a50b3844e1cca15b5eb43fdf2da17f2fe;hp=3259728a05bfb2550910f11dd4cc141bca1cf61f;hpb=ee86d557899fd76d4819363d700acd227d13667e;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSclusterSSD.cxx b/ITS/AliITSclusterSSD.cxx index 3259728a05b..43b2616df7a 100644 --- a/ITS/AliITSclusterSSD.cxx +++ b/ITS/AliITSclusterSSD.cxx @@ -13,50 +13,60 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* -$Log$ -*/ +/* $Id$ */ +//////////////////////////////////////////////////////////////////////////// +//Piotr Krzysztof Skowronski // +//Warsaw University of Technology // +//skowron@if.pw.edu.pl // +// // +// Describes set of neighbouring digits on one side of detector, // +// that are supposed to be generated by one particle. // +// includes information about clusters on other side that it crosses with // +//////////////////////////////////////////////////////////////////////////// + +#include +#include +#include -#include -#include "TArrayI.h" -#include "TClonesArray.h" -#include "AliITSdigit.h" + +#include "AliITSdigitSSD.h" #include "AliITSclusterSSD.h" ClassImp(AliITSclusterSSD) //______________________________________________________________________ -AliITSclusterSSD::AliITSclusterSSD(){ +AliITSclusterSSD::AliITSclusterSSD(): +fSide(kTRUE), +fDigits(0), +fNDigits(0), +fDigitsIndex(0), +fNCrosses(0), +fCrossedClusterIndexes(0), +fLeftNeighbour(kFALSE), +fRightNeighbour(kFALSE), +fConsumed(kFALSE), +fTotalSignal(-1), +fNTracks(-1){ // default constructor - - fSide = kTRUE; - fDigits = 0; - fNDigits = 0; - fDigitsIndex = 0; - fNCrosses = 0; - fTotalSignal = -1; - fNTracks = -1; - fLeftNeighbour = kFALSE; - fRightNeighbour = kFALSE; - fCrossedClusterIndexes = 0; - fConsumed=kFALSE; } //______________________________________________________________________ AliITSclusterSSD::AliITSclusterSSD(Int_t ndigits, Int_t *DigitIndexes, - TObjArray *Digits, Bool_t side){ + TObjArray *Digits, Bool_t side): +fSide(side), +fDigits(Digits), +fNDigits(ndigits), +fDigitsIndex(0), +fNCrosses(0), +fCrossedClusterIndexes(0), +fLeftNeighbour(kFALSE), +fRightNeighbour(kFALSE), +fConsumed(kFALSE), +fTotalSignal(-1), +fNTracks(-1){ // non-default constructor - fNDigits = ndigits; - fDigits = Digits; - fSide = side; fDigitsIndex = new TArrayI(fNDigits,DigitIndexes ); - fNCrosses = 0; fCrossedClusterIndexes = new TArrayI(300); - fLeftNeighbour = kFALSE; - fRightNeighbour = kFALSE; - fTotalSignal =-1; - fNTracks = -1; - fConsumed=kFALSE; } //______________________________________________________________________ AliITSclusterSSD::~AliITSclusterSSD(){ @@ -66,20 +76,24 @@ AliITSclusterSSD::~AliITSclusterSSD(){ delete fCrossedClusterIndexes; } //______________________________________________________________________ -AliITSclusterSSD::AliITSclusterSSD(const AliITSclusterSSD &OneSCluster){ +AliITSclusterSSD::AliITSclusterSSD(const AliITSclusterSSD &OneSCluster) : +TObject(OneSCluster), +fSide(OneSCluster.fSide), +fDigits(OneSCluster.fDigits), +fNDigits(OneSCluster.fNDigits), +fDigitsIndex(0), +fNCrosses(OneSCluster.fNCrosses), +fCrossedClusterIndexes(0), +fLeftNeighbour(OneSCluster.fLeftNeighbour), +fRightNeighbour(OneSCluster.fRightNeighbour), +fConsumed(OneSCluster.fConsumed), +fTotalSignal(-1), +fNTracks(-1){ // copy constructor - if (this == &OneSCluster) return; - fNDigits = OneSCluster.fNDigits; - fSide=OneSCluster.fSide; - fDigits=OneSCluster.fDigits; fDigitsIndex = new TArrayI(fNDigits); - fLeftNeighbour = OneSCluster.fLeftNeighbour; - fRightNeighbour = OneSCluster.fRightNeighbour; fTotalSignal =-1; fNTracks = -1; - fNCrosses = OneSCluster.fNCrosses; - fConsumed = OneSCluster.fConsumed; Int_t i; for (i = 0; i< fNCrosses ; i++){ fCrossedClusterIndexes[i] = OneSCluster.fCrossedClusterIndexes[i]; @@ -161,7 +175,7 @@ void AliITSclusterSSD::AddCross(Int_t clIndex){ (*fCrossedClusterIndexes)[fNCrosses++] = clIndex; } //______________________________________________________________________ -Int_t AliITSclusterSSD::GetCross(Int_t crIndex){ +Int_t AliITSclusterSSD::GetCross(Int_t crIndex) const { // return crossing cluster return ((crIndex>-1)&&(crIndexGetNTracks(); + 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;iGetSignal();} + TMath::Sort(ndig,sdig,idig,kTRUE); + for(i=0;iGetTrack(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;i9) 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; @@ -280,6 +330,7 @@ Int_t *AliITSclusterSSD::GetTracks(Int_t &nt){ SetNTracks(ntracks); nt = ntracks; return &(fTrack[0]); +*/ } //______________________________________________________________________ Double_t AliITSclusterSSD::GetPosition(){ @@ -324,12 +375,12 @@ Double_t AliITSclusterSSD::EtaAlgorithm(){ } } //______________________________________________________________________ -Double_t AliITSclusterSSD::GetPositionError(){ +Double_t AliITSclusterSSD::GetPositionError() const { // return the position error return (GetNumOfDigits()+1)/2; } //______________________________________________________________________ -Bool_t AliITSclusterSSD::IsCrossingWith(Int_t idx){ +Bool_t AliITSclusterSSD::IsCrossingWith(Int_t idx) const{ // return the cluster to which he crosses for (Int_t i =0; i< fNCrosses;i++){