]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONDigitStoreV2S.cxx
Using detector quality flag (taken from ALICE logbook) to decide whether to rpodcue...
[u/mrichter/AliRoot.git] / MUON / AliMUONDigitStoreV2S.cxx
index 2d77dcc9d98601f6b96b34acc4a47d36440951c8..0138b43d4567c240ad85f03226fe830cc2f6e728 100644 (file)
 
 #include "AliMUONDigitStoreV2S.h"
 
+//-----------------------------------------------------------------------------
 /// \class AliMUONDigitStoreV2S
 ///
 /// Concrete implementation of AliMUONVDigitStore for simulated digits, using
 /// the AliMUONDigitStoreVImpl base implementation
 /// 
 /// \author Laurent Aphecetche
+//-----------------------------------------------------------------------------
 
 
 #include "AliMUONDigit.h"
@@ -51,12 +53,20 @@ AliMUONDigitStoreV2S::AddConcreteDigit(TClonesArray& a,
                                        const AliMUONVDigit& digit,
                                        Int_t index)
 {
-  /// add a digit to this store
-  const AliMUONDigit* d = dynamic_cast<const AliMUONDigit*>(&digit);
+  /// add a digit to this store  
   
-  if ( !d ) return 0x0;
-  
-  return new(a[index]) AliMUONDigit(*d);
+  if ( digit.IsA() != AliMUONDigit::Class() ) 
+  {
+    AliMUONDigit d(digit.DetElemId(),digit.ManuId(),digit.ManuChannel(),digit.Cathode());
+    d.SetCharge(digit.Charge());
+    d.SetADC(digit.ADC());
+    d.SetPadXY(digit.PadX(),digit.PadY());
+    d.ChargeInFC();
+    d.Converted();
+    return new(a[index]) AliMUONDigit(d);
+  }
+
+  return new(a[index]) AliMUONDigit(static_cast<const AliMUONDigit&>(digit));
 }
 
 //_____________________________________________________________________________