]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSClusterFinderV2SDD.cxx
Fix up a warning about casts
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderV2SDD.cxx
index 0c95c6674fabfab302315c2977833dedec509a6d..a565b63ef064117ff04a0f458dbc8dd6928e0c3b 100644 (file)
@@ -250,6 +250,9 @@ FindClustersSDD(AliBin* bins[2], TBits* anodeFired[2],
                }
              }
            }
+         } 
+         else { // raw data
+           if (fRawID2ClusID) milab[0] = fNClusters+1; // RS: store clID+1 as a reference to the cluster
          }
          
 
@@ -291,8 +294,8 @@ FindClustersSDD(AliBin* bins[2], TBits* anodeFired[2],
          y=trk[1];
          z=trk[2]; 
          
+         q+=(driftTime*rsdd->GetADCvsDriftTime(fModule)); // correction for zero supp.
          q/=rsdd->GetADCtokeV(fModule);
-         q+=(driftTime*rsdd->GetChargevsTime()); // correction for zero supp.
          if(cal-> IsAMAt20MHz()) q*=2.; // account for 1/2 sampling freq.
          if(q<repa->GetMinClusterChargeSDD()) continue; // remove noise clusters
          
@@ -309,6 +312,7 @@ FindClustersSDD(AliBin* bins[2], TBits* anodeFired[2],
          else {
            fDetTypeRec->AddRecPoint(cc);
          }
+         fNClusters++; // RS
          ncl++;
        }
       }
@@ -322,7 +326,7 @@ void AliITSClusterFinderV2SDD::RawdataToClusters(AliRawReader* rawReader){
     //------------------------------------------------------------
   // This function creates ITS clusters from raw data
   //------------------------------------------------------------
-
+  fNClusters = 0; //RS
   AliITSRawStream* inputSDD=AliITSRawStreamSDD::CreateRawStreamSDD(rawReader);
   AliDebug(1,Form("%s is used",inputSDD->ClassName()));
 
@@ -367,6 +371,9 @@ void AliITSClusterFinderV2SDD::FindClustersSDD(AliITSRawStream* input)
   for(Int_t iMod=0; iMod<kModulesPerDDL; iMod++) vectModId[iMod]=-1;
 
   // read raw data input stream
+  int countRW = 0; //RS
+  if (fRawID2ClusID) fRawID2ClusID->Reset(); //RS if array was provided, we shall store the rawID -> ClusterID
+  //
   while (input->Next()) {
     Int_t iModule = input->GetModuleID();
     if(iModule<0){
@@ -438,6 +445,7 @@ void AliITSClusterFinderV2SDD::FindClustersSDD(AliITSRawStream* input)
            fDDLBins[iHybrid][index].SetQ(q);
            fDDLBins[iHybrid][index].SetMask(1);
            fDDLBins[iHybrid][index].SetIndex(index);
+           fDDLBins[iHybrid][index].SetRawID(countRW); //RS register raw id
            ddlAnodeFired[iHybrid]->SetBitNumber(iz);
          }else{
            AliWarning(Form("Invalid SDD cell: Anode=%d   TimeBin=%d",iz,itb));   
@@ -445,6 +453,7 @@ void AliITSClusterFinderV2SDD::FindClustersSDD(AliITSRawStream* input)
        }
       }
     }
+    countRW++; //RS
   }
   for(Int_t iHyb=0;iHyb<kHybridsPerDDL;iHyb++){ 
    delete ddlAnodeFired[iHyb];
@@ -453,7 +462,7 @@ void AliITSClusterFinderV2SDD::FindClustersSDD(AliITSRawStream* input)
 }
 
 //______________________________________________________________________
-Bool_t AliITSClusterFinderV2SDD::NoiseSuppress(Int_t k, Int_t sid, AliBin* bins, AliITSCalibrationSDD* cal) const {
+Bool_t AliITSClusterFinderV2SDD::NoiseSuppress(Int_t k, Int_t sid, AliBin* bins, const AliITSCalibrationSDD* cal) const {
   // applies zero suppression using the measured noise of each anode
   // threshold values from ALICE-INT-1999-28 V10
   // returns kTRUE if the digit should eb noise suppressed, kFALSE if it should be kept