]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRawStreamTrigger.cxx
Fixing minor bug recognizing diffractive events in simulation
[u/mrichter/AliRoot.git] / MUON / AliMUONRawStreamTrigger.cxx
index 55822957c4a76f210c968d9bef1f34603ba79e3f..171156e1e96ffe64d53baf6e72bf7c9707d0b22f 100644 (file)
@@ -13,7 +13,7 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/* $Id $ */
+/* $Id$ */
 
 //-----------------------------------------------------------------------------
 /// \class AliMUONRawStreamTrigger
@@ -51,9 +51,30 @@ ClassImp(AliMUONRawStreamTrigger)
 
 const Int_t AliMUONRawStreamTrigger::fgkMaxDDL = 2;
 
+//___________________________________________
+AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(TRootIOCtor* /*dummy*/)
+:   AliMUONVRawStreamTrigger(),
+fPayload(0x0),
+fCurrentDDL(0x0),
+fCurrentDDLIndex(fgkMaxDDL),
+fCurrentDarcHeader(0x0),
+fCurrentRegHeader(0x0),
+fCurrentRegHeaderIndex(0),
+fCurrentLocalStruct(0x0),
+fCurrentLocalStructIndex(0),
+fLocalStructRead(kFALSE),
+fDDL(0),
+fNextDDL(kFALSE)
+{
+  ///
+  /// create an object to read MUON raw digits
+  /// Default ctor with no mem allocation for I/O
+  ///
+}
+
 //___________________________________________
 AliMUONRawStreamTrigger::AliMUONRawStreamTrigger()
-:   AliMUONRawStream(),
+:   AliMUONVRawStreamTrigger(),
     fPayload(new AliMUONPayloadTrigger()),
     fCurrentDDL(0x0),
     fCurrentDDLIndex(fgkMaxDDL),
@@ -64,8 +85,7 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger()
     fCurrentLocalStructIndex(0),
     fLocalStructRead(kFALSE),
     fDDL(0),
-    fNextDDL(kFALSE),
-    fEnableErrorLogger(kFALSE)
+    fNextDDL(kFALSE)
 {
   ///
   /// create an object to read MUON raw digits
@@ -77,7 +97,7 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger()
 
 //_________________________________________________________________
 AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(AliRawReader* rawReader)
-  : AliMUONRawStream(rawReader),
+  : AliMUONVRawStreamTrigger(rawReader),
     fPayload(new AliMUONPayloadTrigger()),
     fCurrentDDL(0x0),
     fCurrentDDLIndex(fgkMaxDDL),
@@ -88,8 +108,7 @@ AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(AliRawReader* rawReader)
     fCurrentLocalStructIndex(0),
     fLocalStructRead(kFALSE),
     fDDL(0),
-    fNextDDL(kFALSE),
-    fEnableErrorLogger(kFALSE)
+    fNextDDL(kFALSE)
 {
   ///
   /// ctor with AliRawReader as argument
@@ -184,6 +203,7 @@ Bool_t AliMUONRawStreamTrigger::GetNextDDL()
   /// Returns the next DDL present
   
   assert( GetReader() != 0 );
+
   
   Bool_t kFound(kFALSE);
   
@@ -212,11 +232,13 @@ Bool_t AliMUONRawStreamTrigger::GetNextDDL()
   
   Int_t totalDataWord  = GetReader()->GetDataSize(); // in bytes
   
+  Bool_t scalerEvent =  GetReader()->GetDataHeader()->GetL1TriggerMessage() & 0x1;
+
   AliDebug(3, Form("DDL Number %d totalDataWord %d\n", fCurrentDDLIndex,
                    totalDataWord));
 
   UInt_t *buffer = new UInt_t[totalDataWord/4];
-  
+
   if ( !GetReader()->ReadNext((UChar_t*)buffer, totalDataWord) )
   {
     // We have not actually been able to complete the loading of the new DDL so
@@ -232,7 +254,9 @@ Bool_t AliMUONRawStreamTrigger::GetNextDDL()
 
   fPayload->ResetDDL();
   
-  Bool_t ok = fPayload->Decode(buffer);
+
+
+  Bool_t ok = fPayload->Decode(buffer, scalerEvent);
 
   delete[] buffer;
   
@@ -353,6 +377,9 @@ Bool_t AliMUONRawStreamTrigger::NextDDL()
 
   Int_t totalDataWord = GetReader()->GetDataSize(); // in bytes
 
+  Bool_t scalerEvent =  GetReader()->GetDataHeader() && GetReader()->GetDataHeader()->GetL1TriggerMessage() & 0x1;
+
+
   UInt_t *buffer = new UInt_t[totalDataWord/4];
 
   // check not necessary yet, but for future developments
@@ -362,7 +389,7 @@ Bool_t AliMUONRawStreamTrigger::NextDDL()
   Swap(buffer, totalDataWord / sizeof(UInt_t)); // swap needed for mac power pc
 #endif
 
-  fPayload->Decode(buffer);
+  fPayload->Decode(buffer, scalerEvent);
 
 
   fDDL++;
@@ -392,7 +419,7 @@ void AliMUONRawStreamTrigger::AddErrorMessage()
 {
 /// add message into logger of AliRawReader per event
 
-  TString msg = 0;
+  TString msg;
   Int_t occurance = 0;
   AliMUONLogger* log = fPayload->GetErrorLogger();