]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/PHOS/AliHLTPHOSDigitMaker.cxx
New interface for shared memory. The AliHLTPHOSValidDataStruct now has a pointer...
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSDigitMaker.cxx
index 0b092acec096c2c89ff435b90f6da7aa0096155d..d47fb70e94c51aa8a968a3ca957ced2822d4efef 100644 (file)
@@ -39,7 +39,7 @@
 #include "AliHLTPHOSRcuCellEnergyDataStruct.h"
 #include "AliHLTPHOSDigitDataStruct.h"
 #include "AliHLTPHOSDigitContainerDataStruct.h"
-
+#include "AliHLTPHOSSharedMemoryInterface.h" // added by PTH
 
 ClassImp(AliHLTPHOSDigitMaker);
 
@@ -54,8 +54,10 @@ AliHLTPHOSDigitMaker::AliHLTPHOSDigitMaker() :
   // fDigitStructPtr(0),
   fDigitCount(0), 
   fNrPresamples(10),
-  fDigitThreshold(0)
+  fDigitThreshold(0),
+  fShmPtr(0)
 {
+  fShmPtr = new AliHLTPHOSSharedMemoryInterface();
   // See header file for documentation
 }
   
@@ -64,6 +66,10 @@ AliHLTPHOSDigitMaker::~AliHLTPHOSDigitMaker()
   //See header file for documentation
 }
 
+
+/*
+ *modified by PTH to use new interface too shared memory
+ */
 Int_t
 AliHLTPHOSDigitMaker::MakeDigits(AliHLTPHOSRcuCellEnergyDataStruct* rcuData)
 {
@@ -73,6 +79,53 @@ AliHLTPHOSDigitMaker::MakeDigits(AliHLTPHOSRcuCellEnergyDataStruct* rcuData)
   Int_t x = -1;
   Int_t z = -1;
   Float_t amplitude = 0;
+
+  fShmPtr->SetMemory(rcuData);
+  // for ( i = 0; i < rcuData->fCnt; i++ )
+    //  {
+  fCellDataPtr = fShmPtr->NextChannel();
+
+  while(fCellDataPtr != 0)
+    {
+  
+      fCellDataPtr = & ( rcuData->fValidData[i] );
+      x = fCellDataPtr->fX + rcuData->fRcuX * N_XCOLUMNS_RCU;
+      z = fCellDataPtr->fZ + rcuData->fRcuZ * N_ZROWS_RCU;
+      amplitude = fCellDataPtr->fEnergy;
+  
+      if ( amplitude > fDigitThreshold )
+       {
+         fDigitStructPtr = & ( fDigitContainerStructPtr->fDigitDataStruct[j + fDigitCount] );
+         fDigitStructPtr->fX = ( fCellDataPtr->fX + rcuData->fRcuX * N_XCOLUMNS_RCU );
+         fDigitStructPtr->fZ = ( fCellDataPtr->fZ + rcuData->fRcuZ * N_ZROWS_RCU );
+         fDigitStructPtr->fAmplitude = ( amplitude );
+         fDigitStructPtr->fTime = ( fCellDataPtr->fTime );
+         fDigitStructPtr->fGain = ( fCellDataPtr->fGain );
+         fDigitStructPtr->SetRawData ( fCellDataPtr->fData );
+         fDigitStructPtr->fCrazyness = ( fCellDataPtr->fCrazyness );
+         fDigitStructPtr->fBaseline = -1;
+         j++;
+       }
+      
+      fCellDataPtr = fShmPtr->NextChannel();
+    }
+  //  }
+  fDigitCount += j;
+  return fDigitCount; 
+}
+
+
+/*
+Int_t
+AliHLTPHOSDigitMaker::MakeDigits(AliHLTPHOSRcuCellEnergyDataStruct* rcuData)
+{
+
+  //See header file for documentation
+  Int_t i = 0;
+  Int_t j = 0;
+  Int_t x = -1;
+  Int_t z = -1;
+  Float_t amplitude = 0;
   for ( i = 0; i < rcuData->fCnt; i++ )
   {
     fCellDataPtr = & ( rcuData->fValidData[i] );
@@ -96,6 +149,8 @@ AliHLTPHOSDigitMaker::MakeDigits(AliHLTPHOSRcuCellEnergyDataStruct* rcuData)
   fDigitCount += j;
   return fDigitCount; 
 }
+*/
+
 /*
 Int_t
 AliHLTPHOSDigitMaker::SetDigitsTree(TTree *tree)