- if( strcmp(GetName(), "") !=0 ){
-
- // Print parameters
-
- TString taskName(GetName()) ;
- taskName.ReplaceAll(Version(), "") ;
-
- printf("--------------- ");
- printf(taskName.Data()) ;
- printf(" ");
- printf(GetTitle()) ;
- printf("-----------\n");
- printf("Clusterizing digits from the file: ");
- printf(taskName.Data());
- printf("\n Branch: ");
- printf(GetName());
- printf("\n ECA Local Maximum cut = %f", fECALocMaxCut);
- printf("\n ECA Logarithmic weight = %f", fECAW0);
- if(fToUnfold)
- printf("\nUnfolding on\n");
- else
- printf("\nUnfolding off\n");
-
- printf("------------------------------------------------------------------");
- }
- else
- printf("AliEMCALClusterizerv1 not initialized ") ;
-}
-
-//____________________________________________________________________________
-void AliEMCALClusterizerv1::PrintRecPoints(Option_t * option)
-{
- // Prints list of RecPoints produced at the current pass of AliEMCALClusterizer
-
- TObjArray * aECARecPoints = AliEMCALGetter::Instance()->ECARecPoints() ;
- printf("PrintRecPoints: Clusterization result:") ;
+ TIter nextdigitC(digitsC);
+ while ( (digit = dynamic_cast<AliEMCALDigit *>(nextdigitC())) ) { // scan over the list of digitsC
+ TArrayI clusterECAdigitslist(fDigitsArr->GetEntries());
+ dEnergyCalibrated = digit->GetCalibAmp();
+ time = digit->GetTime();
+ if(fGeom->CheckAbsCellId(digit->GetId()) && ( dEnergyCalibrated > fECAClusteringThreshold ) ){
+ // start a new Tower RecPoint
+ if(fNumberOfECAClusters >= fRecPoints->GetSize()) fRecPoints->Expand(2*fNumberOfECAClusters+1);
+
+ AliEMCALRecPoint *recPoint = new AliEMCALRecPoint("");
+ fRecPoints->AddAt(recPoint, fNumberOfECAClusters);
+ recPoint = dynamic_cast<AliEMCALRecPoint *>(fRecPoints->At(fNumberOfECAClusters));
+ if (recPoint) {
+ fNumberOfECAClusters++;
+
+ recPoint->SetClusterType(AliVCluster::kEMCALClusterv1);
+ recPoint->AddDigit(*digit, digit->GetCalibAmp(), kFALSE); //Time or TimeR?
+ TObjArray clusterDigits;
+ clusterDigits.AddLast(digit);
+ digitsC->Remove(digit);
+
+ AliDebug(1,Form("MakeClusters: OK id = %d, ene = %f , cell.th. = %f \n", digit->GetId(), dEnergyCalibrated, fECAClusteringThreshold)); //Time or TimeR?
+
+ // Grow cluster by finding neighbours
+ TIter nextClusterDigit(&clusterDigits);
+
+ while ( (digit = dynamic_cast<AliEMCALDigit*>(nextClusterDigit())) ) { // scan over digits in cluster
+ TIter nextdigitN(digitsC);
+ AliEMCALDigit *digitN = 0; // digi neighbor
+ while ( (digitN = (AliEMCALDigit *)nextdigitN()) ) { // scan over all digits to look for neighbours
+ //Do not add digits with too different time
+ Bool_t shared = kFALSE;//cluster shared by 2 SuperModules?
+ if(TMath::Abs(time - digitN->GetTime()) > fTimeCut ) continue; //Time or TimeR?
+ if (AreNeighbours(digit, digitN, shared)==1) { // call (digit,digitN) in THAT order !!!!!
+ recPoint->AddDigit(*digitN, digitN->GetCalibAmp(), shared);
+ clusterDigits.AddLast(digitN);
+ digitsC->Remove(digitN);
+ } // if(ineb==1)
+ } // scan over digits
+ } // scan over digits already in cluster
+
+ AliDebug(2,Form("MakeClusters: %d digitd, energy %f \n", clusterDigits.GetEntries(), recPoint->GetEnergy()));
+ }//recpoint
+ else AliFatal("Null recpoint in array!");
+ } // If seed found
+ } // while digit