]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigitizerv2.cxx
Additional protection in case of negative indexes. More investigation is needed
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitizerv2.cxx
index b19d612a8287cd52f9a98fbf491d6b5d20fa22a1..2662d0b8e57c995cb318347c00cc41fdffea133c 100644 (file)
@@ -74,7 +74,7 @@ void AliMUONDigitizerv2::GenerateTransientDigits()
        for (Int_t ich = 0; ich < AliMUONConstants::NCh(); ich++)  // loop over chamber
        {
                fMUONData->ResetSDigits();
-               fMUONData->GetCathodeS(0);
+               fMUONData->GetSDigits();
                muonSDigits = fMUONData->SDigits(ich); 
                ndig = muonSDigits->GetEntriesFast();
                for (k = 0; k < ndig; k++)
@@ -82,15 +82,15 @@ void AliMUONDigitizerv2::GenerateTransientDigits()
                        sDigit = (AliMUONDigit*) muonSDigits->UncheckedAt(k);
                        MakeTransientDigitFromSDigit(ich,sDigit);
                }
-               fMUONData->ResetSDigits();
-               fMUONData->GetCathodeS(1);
-               muonSDigits = fMUONData->SDigits(ich); 
-               ndig=muonSDigits->GetEntriesFast();
-               for (k = 0; k < ndig; k++)
-               {
-                       sDigit = (AliMUONDigit*) muonSDigits->UncheckedAt(k);
-                       MakeTransientDigitFromSDigit(ich,sDigit);
-               }
+//             fMUONData->ResetSDigits();
+//             fMUONData->GetCathodeS(1);
+//             muonSDigits = fMUONData->SDigits(ich); 
+//             ndig=muonSDigits->GetEntriesFast();
+//             for (k = 0; k < ndig; k++)
+//             {
+//                     sDigit = (AliMUONDigit*) muonSDigits->UncheckedAt(k);
+//                     MakeTransientDigitFromSDigit(ich,sDigit);
+//             }
        } // SDigits loop, end loop over chamber
 }
 
@@ -114,10 +114,7 @@ void AliMUONDigitizerv2::MakeTransientDigitFromSDigit(Int_t iChamber, AliMUONDig
                digits[4] = 0;
                
        digits[5] = sDigit->Hit();    // Hit number in the list
-       if (GetSegmentation() == 1)
-         digits[6] = 0;
-       else
-         digits[6] = sDigit->DetElemId();
+       digits[6] = sDigit->DetElemId();
 
        AliDebug(5,Form("Made digit from sDigit 0x%X: PadX %d\tPadY %d\tPlane %d\tCharge %d\tHit %d\tidDE %d",
                        (void*)sDigit, digits[0], digits[1], digits[2], digits[3], digits[5], digits[6]));
@@ -125,7 +122,7 @@ void AliMUONDigitizerv2::MakeTransientDigitFromSDigit(Int_t iChamber, AliMUONDig
        
        AliMUONTransientDigit* mTD = new AliMUONTransientDigit(iChamber, digits);
        // Copy list of tracks and trackcharge
-       for(Int_t itrack = 0; itrack < kMAXTRACKS; itrack++)
+       for(Int_t itrack = 0; itrack < sDigit->Ntracks(); ++itrack)
        {
                Int_t track = sDigit->Track(itrack);
                if (track < 0) break;  // Check if we reached the end of the track list.
@@ -156,6 +153,10 @@ Int_t AliMUONDigitizerv2::GetSignalFrom(AliMUONTransientDigit* td)
        AliMUONChamber& chamber = fMUON->Chamber(td->Chamber());
        AliMUONResponse* response = chamber.ResponseModel();
        q = response->DigitResponse(q, td);
+  if ( q >= response->Saturation() )
+  {
+    td->Saturated(kTRUE);
+  }
        return q;
 }
 
@@ -251,7 +252,7 @@ void AliMUONDigitizerv2::CleanupTriggerArrays()
 void AliMUONDigitizerv2::AddDigitTrigger(
                Int_t chamber, Int_t tracks[kMAXTRACKS],
                Int_t charges[kMAXTRACKS], Int_t digits[7],
-               const Int_t digitindex
+               Int_t digitindex
        )
 {
 // Derived to add digits to TreeD for trigger.