Fix by Hermes that resets -1 and adds additional checks
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 4 Dec 2008 14:28:54 +0000 (14:28 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 4 Dec 2008 14:28:54 +0000 (14:28 +0000)
TRD/AliTRDarrayADC.cxx
TRD/AliTRDarrayADC.h
TRD/AliTRDclusterizer.cxx
TRD/AliTRDmcmSim.cxx
TRD/AliTRDmcmSim.h
TRD/AliTRDrawData.cxx

index bb0b3cf..da85ef6 100644 (file)
@@ -433,6 +433,22 @@ void AliTRDarrayADC::Expand()
   // Expand the array
   //
 
+  //Check if the array has not been already expanded
+  Int_t verif=0;
+  for(Int_t i=0; i<fNAdim; i++)
+    {
+      if(fADC[i]<-1)
+       {
+         verif++;
+       }
+    }
+  
+  if(verif==0)
+    {
+      //       AliDebug(1,"Nothing to expand");
+      return;
+    }
+
   Int_t *longz;
   longz = new Int_t[fNAdim];
   Int_t *longm;
@@ -526,3 +542,20 @@ void AliTRDarrayADC::Expand()
   if(longz) delete [] longz;
 
 }
+//____________________________________________________________________________________
+void AliTRDarrayADC::DeleteNegatives()
+{
+
+  //
+  //This method modifies the digits array, changing the negative values (-1)
+  //Produced during digitization into zero.
+  //
+
+  for(Int_t a=0; a<fNAdim; a++)
+    {
+      if(fADC[a]==-1)
+       {
+         fADC[a]=0;
+       }
+    }
+}
index 9bcba83..ca724e1 100644 (file)
@@ -41,6 +41,7 @@ class AliTRDarrayADC: public TObject
   Int_t   GetNrow() const {return fNrow;};
   Int_t   GetNcol() const {return fNcol;};
   Int_t   GetDim() const {return fNAdim;};
+  void    DeleteNegatives();
 
  protected:
 
index bbfae1d..dc7b75b 100644 (file)
@@ -564,6 +564,7 @@ Bool_t AliTRDclusterizer::MakeClusters()
     // This is to take care of switched off super modules
     if (!digitsIn->HasData()) continue;
     digitsIn->Expand();
+    digitsIn->DeleteNegatives();  // Restore digits array to >=0 values
     AliTRDSignalIndex* indexes = fDigitsManager->GetIndexes(i);
     if (indexes->IsAllocated() == kFALSE){
       fDigitsManager->BuildIndexes(i);
index 27b203f..aee5fd2 100644 (file)
@@ -2735,5 +2735,25 @@ void AliTRDmcmSim::FlagDigitsArray(AliTRDarrayADC *tempdigs, Int_t valrow)
        }
     }
 }
+//_______________________________________________________________________________________
+void AliTRDmcmSim::RestoreZeros()
+{
+  //
+  // Restore the zero-suppressed values (set as -1) to the value 0
+  //
+
+  for( Int_t iadc = 1 ; iadc < fNADC-1; iadc++ ) 
+    {
+      for( Int_t it = 0 ; it < fNTimeBin ; it++ ) 
+       {
+         
+         if(fADCF[iadc][it]==-1)  //if is a supressed zero, reset to zero
+           {
+             fADCF[iadc][it]=0;
+             fADCR[iadc][it]=0;
+           }     
+       }
+    }
 
+}
 
index 9399cf9..1994e8d 100644 (file)
@@ -59,6 +59,7 @@ class AliTRDmcmSim : public TObject {
          void      GeneratefZSM1Dim();                        // Generate the ZSM1Dim based on digits array info
          void      StartfastZS(Int_t pads, Int_t timebis);                    // For ZS in the digitizer
          void      FlagDigitsArray(AliTRDarrayADC *tempdigs, Int_t valrow);   //Set flags on the digits array
+         void      RestoreZeros(); 
 
  protected:
 
index f24638d..5fdbb74 100644 (file)
@@ -381,6 +381,7 @@ Int_t AliTRDrawData::ProduceHcData(AliTRDarrayADC *digits, Int_t side, Int_t det
                //              mcm[entry]->ZSMapping();  // Calculate zero suppression mapping
                mcm[entry]->CopyArrays();
                mcm[entry]->GeneratefZSM1Dim();
+               mcm[entry]->RestoreZeros();
 
                if (tracklet_on) {
                    mcm[entry]->Tracklet(); 
@@ -724,6 +725,7 @@ Int_t AliTRDrawData::ProduceHcDataV3(AliTRDarrayADC *digits, Int_t side , Int_t
        //      mcm[entry]->ZSMapping();  // Calculate zero suppression mapping
        mcm[entry]->CopyArrays();
        mcm[entry]->GeneratefZSM1Dim();
+       mcm[entry]->RestoreZeros();
 
        if (tracklet_on) {
            mcm[entry]->Tracklet();