#include "AliITSclusterSSD.h"
#include "AliITSpackageSSD.h"
#include "AliITSsegmentationSSD.h"
-//#include "AliITSgeom.h"
+#include "AliITSgeom.h"
#include "AliITSCalibrationSSD.h"
#include "AliLog.h"
const Bool_t AliITSClusterFinderSSD::fgkSIDEP=kTRUE;
const Bool_t AliITSClusterFinderSSD::fgkSIDEN=kFALSE;
const Int_t AliITSClusterFinderSSD::fgkNoiseThreshold=5;
-const Int_t debug=0;
+//const Int_t debug=0;
ClassImp(AliITSClusterFinderSSD)
//fSegmentation->Angles(stereoP,stereoN);
GetSeg()->Angles(stereoP,stereoN);
CalcStepFactor(stereoP,stereoN);
- if (debug) cout<<"fSFF = "<<fSFF<<" fSFB = "<<fSFB<<"\n";
+ // if (debug) cout<<"fSFF = "<<fSFF<<" fSFB = "<<fSFB<<"\n";
}
//______________________________________________________________________
void AliITSClusterFinderSSD::FindRawClusters(Int_t module){
dbuffer[0]=lDigitsIndexP[0];
//If next digit is a neigh. of previous, adds to last clust. this digit
+ /*
+ cout<<"----------------------------------------------------------------"<<endl;
+ cout<<"module="<<module<<" , # of Pdigits="<<fNDigitsP<<" , # of Ndigits="<<fNDigitsN<<endl;
+
+ cout<<" Pside"<<endl;
+ cout<<" "<<((AliITSdigitSSD*)lDigits[lDigitsIndexP[0]])->GetStripNumber()<<" "<<
+ ((AliITSdigitSSD*)lDigits[lDigitsIndexP[0]])->GetSignal()<<endl;
+ */
+
for (i=1; i<fNDigitsP; i++) {
//reads new digit
currentstripNo = ((AliITSdigitSSD*)lDigits[lDigitsIndexP[i]])->GetStripNumber();
+ // cout<<" "<<currentstripNo<<" "<<((AliITSdigitSSD*)lDigits[lDigitsIndexP[i]])->GetSignal()<<endl;
if((((AliITSdigitSSD*)lDigits[lDigitsIndexP[i-1]])->GetStripNumber()) == (currentstripNo-1) )
dbuffer[dnumber++]=lDigitsIndexP[i];
//if(flag==dnumber) {
if(flag>0) {
//create a new one side cluster
+
+ // cout<<" new cluster with "<<dnumber<<" digits"<<endl;
+
new(lClusterP[fNClusterP++]) AliITSclusterSSD(dnumber,dbuffer,
Digits(),
fgkSIDEP);
//if(flag==dnumber) {
if(flag>0) {
//create a new one side cluster
+
+ // cout<<" new cluster with "<<dnumber<<" digits"<<endl;
+
new(lClusterP[fNClusterP++]) AliITSclusterSSD(dnumber,dbuffer,
Digits(),
fgkSIDEP);
dbuffer[0]=lDigitsIndexN[0];
//If next digit is a neigh. of previous, adds to last clust. this digit
+ // cout<<" Nside"<<endl;
+ // cout<<" "<<((AliITSdigitSSD*)lDigits[lDigitsIndexN[0]])->GetStripNumber()<<" "<<
+ // ((AliITSdigitSSD*)lDigits[lDigitsIndexN[0]])->GetSignal()<<endl;
+
for (i=1; i<fNDigitsN; i++) {
currentstripNo = ((AliITSdigitSSD*)(lDigits[lDigitsIndexN[i]]))->GetStripNumber();
+ // cout<<" "<<currentstripNo<<" "<<((AliITSdigitSSD*)lDigits[lDigitsIndexN[i]])->GetSignal()<<endl;
if ( (((AliITSdigitSSD*)lDigits[lDigitsIndexN[i-1]])->GetStripNumber()) == (currentstripNo-1) )
dbuffer[dnumber++]=lDigitsIndexN[i];
//if(flag==dnumber) {
if(flag>0) {
//create a new one side cluster
+
+ // cout<<" new cluster with "<<dnumber<<" digits"<<endl;
+
new(lClusterN[fNClusterN++]) AliITSclusterSSD(dnumber,dbuffer,
Digits(),
fgkSIDEN);
//if(flag==dnumber) {
if(flag>0) {
//create a new one side cluster
+
+ // cout<<" new cluster with "<<dnumber<<" digits"<<endl;
+
new(lClusterN[fNClusterN++]) AliITSclusterSSD(dnumber,dbuffer,
Digits(),
fgkSIDEN);
flag=0;
delete [] dbuffer;
- if (debug) cout<<"\n Found clusters: fNClusterP = "<<fNClusterP
- <<" fNClusterN ="<<fNClusterN<<"\n";
+ // if (debug) cout<<"\n Found clusters: fNClusterP = "<<fNClusterP
+ // <<" fNClusterN ="<<fNClusterN<<"\n";
}
//______________________________________________________________________
void AliITSClusterFinderSSD::SeparateOverlappedClusters(){
// delete [] psidx;
//delete [] nsidx;
- if (debug) cout<<"Digits : P = "<<fNDigitsP<<" N = "<<fNDigitsN<<endl;
+ // if (debug) cout<<"Digits : P = "<<fNDigitsP<<" N = "<<fNDigitsN<<endl;
}
//______________________________________________________________________
void AliITSClusterFinderSSD::SortDigits(){
fDetTypeRec->AddCluster(2,&cnew);
//fITS->AddCluster(2,&cnew);
//AliITSRecPoint rnew;
- AliITSRecPoint rnew(fDetTypeRec->GetITSgeom());
- rnew.SetXZ(fModule,P*kconv,N*kconv);
- //rnew.SetX(P*kconv);
- //rnew.SetZ(N*kconv);
- rnew.SetQ(signal);
- rnew.SetdEdX(dedx);
- rnew.SetSigmaDetLocX2( kRMSx* kRMSx);
- // rnew.SetSigmaX2( kRMSx* kRMSx);
- rnew.SetSigmaZ2( kRMSz* kRMSz);
-
- rnew.SetLabel(tr[0],0);
- rnew.SetLabel(tr[1],1);
- rnew.SetLabel(tr[2],2);
- rnew.SetDetectorIndex(ind);
- rnew.SetLayer(lyr);
-
- //rnew.fTracks[0]=tr[0];
- // rnew.fTracks[1]=tr[1];
- //rnew.fTracks[2]=tr[2];
- //rnew.SetMultP(nstripsP);
- //rnew.SetMultN(nstripsN);
- fDetTypeRec->AddRecPoint(rnew);
- // fITS->AddRecPoint(rnew);
+ Int_t lab[4] = {tr[0],tr[1],tr[2],ind};
+ Float_t hit[5] = {P*kconv,N*kconv,kRMSx*kRMSx,kRMSz*kRMSz,signal};
+ Int_t info[3] = {nstripsP,nstripsN,lyr};
+
+ AliITSRecPoint rnew(lab,hit,info,kTRUE);
+ rnew.SetdEdX(dedx);
+
+ fDetTypeRec->AddRecPoint(rnew);
+ // fITS->AddRecPoint(rnew);
return kTRUE;
} // end if
return kFALSE;