]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigitMaker.cxx
New class AliMUONRecoParamto handle reconstruction parameters
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitMaker.cxx
index 52dc820bc70d124afa031761c1594d13f2c27b62..c8de1ccf91928732548f40efc2cb8f1ccf1bcd28 100644 (file)
@@ -13,6 +13,9 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
+// $Id$
+
+//-----------------------------------------------------------------------------
 /// \class AliMUONDigitMaker
 /// MUON Digit maker from rawdata.
 ///
@@ -37,6 +40,7 @@
 /// and for trigger. Create trigger inverse mapping.
 ///
 /// \author Ch. Finck, oct 06 
+//-----------------------------------------------------------------------------
 
 #include "AliMUONDigitMaker.h"
 
@@ -69,7 +73,7 @@ ClassImp(AliMUONDigitMaker) // Class implementation in ROOT context
 /// \endcond
 
 //__________________________________________________________________________
-AliMUONDigitMaker::AliMUONDigitMaker()
+AliMUONDigitMaker::AliMUONDigitMaker(Bool_t enableErrorLogger)
   : TObject(),
     fScalerEvent(kFALSE),
     fMakeTriggerDigits(kFALSE),
@@ -86,6 +90,10 @@ AliMUONDigitMaker::AliMUONDigitMaker()
   AliDebug(1,"");
 
   // Standard Constructor
+  if (enableErrorLogger) {
+    fRawStreamTracker->EnabbleErrorLogger();
+    fRawStreamTrigger->EnabbleErrorLogger();
+  }
 
   fTrackerTimer.Start(kTRUE); fTrackerTimer.Stop();
   fTriggerTimer.Start(kTRUE); fTriggerTimer.Stop();
@@ -328,6 +336,8 @@ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard,
 
   AliMpLocalBoard* localBoard = AliMpDDLStore::Instance()->GetLocalBoard(nBoard);
 
+  Int_t n,b;
+
   // loop over x1-4 and y1-4
   for (Int_t iChamber = 0; iChamber < 4; ++iChamber)
   {
@@ -360,14 +370,20 @@ Int_t AliMUONDigitMaker::TriggerDigits(Int_t nBoard,
                               detElemId, nBoard, ibitxy));
               continue;
             }
-            
-            AliMUONVDigit* digit = digitStore.Add(detElemId,nBoard,ibitxy,iCath,AliMUONVDigitStore::kDeny);
+
+            n = pad.GetLocation(0).GetFirst(); // always take first location so that digits are not inserted several times
+           b = pad.GetLocation(0).GetSecond();
+
+           AliDebug(1,Form("Using localBoard %d ixy %d instead of %d,%d",
+                           n,b,nBoard,ibitxy));
+
+           AliMUONVDigit* digit = digitStore.Add(detElemId,n,b,iCath,AliMUONVDigitStore::kDeny);
             
             if (!digit)
             {
-              AliError(Form("Could not add digit DE %04d LocalBoard %03d ibitxy %02d cath %d",
-                            detElemId,nBoard,ibitxy,iCath));
-              continue;
+               AliDebug(1, Form("Digit DE %04d LocalBoard %03d ibitxy %02d cath %d already in store",
+                                detElemId,nBoard,ibitxy,iCath));
+               continue;
             }
             
             Int_t padX = pad.GetIndices().GetFirst();