]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/PHOS/AliHLTPHOSRcuHistogramProducerComponent.cxx
- fixing warnings
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRcuHistogramProducerComponent.cxx
index 5fc970b04a63c81114e766b61ebcc329f5e85a59..473095fe6bb5a7cf4bfad872f2b29dc289e90440 100644 (file)
@@ -1,3 +1,5 @@
+// $Id$
+
 /**************************************************************************
  * Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved.      *
  *                                                                        *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-//#include <iostream>
-#include "AliHLTPHOSRcuCellEnergyDataStruct.h"
-//#include "AliHLTPHOSDebugRcuHistogramProducer.h"
-//#include "AliHLTPHOSDebugRcuHistogramProducerComponent.h"
+//#include "AliHLTPHOSRcuCellEnergyDataStruct.h"
 #include "AliHLTPHOSRcuHistogramProducer.h"
 #include "AliHLTPHOSRcuHistogramProducerComponent.h"
 #include "AliHLTPHOSRcuCellAccumulatedEnergyDataStruct.h"
+#include "AliHLTPHOSSharedMemoryInterfacev2.h"
+#include "AliHLTPHOSChannelDataHeaderStruct.h"
+#include "AliHLTPHOSChannelDataStruct.h"
 
 
 AliHLTPHOSRcuHistogramProducerComponent gAliHLTPHOSRcuHistogramProducerComponent;
-
-
-
 /*************************************************************************
 * Class AliHLTPHOSRcuHistogramProducerComponent accumulating histograms  *
 * with amplitudes per PHOS channel                                       *
@@ -34,9 +33,14 @@ AliHLTPHOSRcuHistogramProducerComponent gAliHLTPHOSRcuHistogramProducerComponent
 * and it fills the histograms with amplitudes per channel.               * 
 * Usage example see in PHOS/macros/Shuttle/AliPHOSCalibHistoProducer.C   *
 **************************************************************************/
-AliHLTPHOSRcuHistogramProducerComponent:: AliHLTPHOSRcuHistogramProducerComponent():AliHLTPHOSRcuProcessor(), fRcuHistoProducerPtr(0), fHistoWriteFrequency(100)
+AliHLTPHOSRcuHistogramProducerComponent:: AliHLTPHOSRcuHistogramProducerComponent() : AliHLTPHOSRcuProcessor(), 
+                                                                                     fHistoWriteFrequency(100), 
+                                                                                     fRcuHistoProducerPtr(0), 
+                                                                                     fOutPtr(0),
+                                                                                     fShmPtr(0)
 {
-  //Default constructor
+  fShmPtr = new AliHLTPHOSSharedMemoryInterfacev2();
+ //Default constructor
 } 
 
 
@@ -51,8 +55,9 @@ AliHLTPHOSRcuHistogramProducerComponent::Deinit()
 {
   //See html documentation of base class
   cout << "AliHLTPHOSRcuHistogramProducerComponent::Deinit()" << endl;
-  //  fRcuHistoProducerPtr->WriteAllHistograms("update");
-  fRcuHistoProducerPtr->WriteAllHistograms("recreate");
+  char* arg = new char[9];
+  sprintf(arg, "recreate");
+  fRcuHistoProducerPtr->WriteAllHistograms(arg);
   return 0;
 }
 
@@ -96,51 +101,72 @@ AliHLTPHOSRcuHistogramProducerComponent::GetOutputDataSize(unsigned long& constB
 
 
 
-int  AliHLTPHOSRcuHistogramProducerComponent::DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks
-                                             AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr
-                                             AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks )
+int  AliHLTPHOSRcuHistogramProducerComponent::DoEvent( const AliHLTComponentEventData& /*evtData*/, const AliHLTComponentBlockData* /*blocks*/
+                                                      AliHLTComponentTriggerData& /*trigData*/, AliHLTUInt8_t* /*outputPtr*/
+                                                      AliHLTUInt32_t& /*size*/, vector<AliHLTComponentBlockData>& /*outputBlocks*/ )
 {
-  //  cout << "AliHLTPHOSRcuHistogramProducerComponent::DoEven TP0"   << endl;
+  /*
+  
+  cout <<  "  AliHLTPHOSRcuHistogramProducerComponent::Doevent, entering event loop" << endl;
 
-  //See html documentation of base class
+ //See html documentation of base class
+  // trigData++;
+  // trigData--; //shutting up the compiler, we dont use trigData now but will do in near future
+
+  AliHLTComponentTriggerData &trDta = trigData;  
+  trDta.fDataSize++;
+  trDta.fDataSize--; //shutting up the compiler, we dont use trigData now but will do in near future
+
+  // AliHLTPHOSValidCellDataStruct *currentChannel =0;
+  AliHLTPHOSChannelDataStruct  *currentChannel =0;
+   
   unsigned long ndx       = 0;
   UInt_t offset           = 0; 
   UInt_t mysize           = 0;
   UInt_t tSize            = 0;
   const AliHLTComponentBlockData* iter = NULL;   
+
   AliHLTPHOSRcuCellEnergyDataStruct *cellDataPtr;
   AliHLTUInt8_t* outBPtr;
-  int tmpCnt;
 
   for( ndx = 0; ndx < evtData.fBlockCnt; ndx++ )
     {
+      cout <<  "  AliHLTPHOSRcuHistogramProducerComponent::DoEvent, recieved block" << endl;
       iter = blocks+ndx;
       if(iter->fDataType != AliHLTPHOSDefinitions::fgkCellEnergyDataType)
        {
-         //      cout << "Warning: data type is not fgkCellEnergyDataType " << endl;
+         cout <<  "  AliHLTPHOSRcuHistogramProducerComponent::DoEvent, recieved block of wrong type" << endl;
+         cout << "evtData.fSize ="  << evtData.fStructSize  <<  "evtData.fBlockCnt =" << evtData.fBlockCnt   <<endl ;
+
          continue;
        }
-     cellDataPtr = (AliHLTPHOSRcuCellEnergyDataStruct*)( iter->fPtr);
-      tmpCnt =  cellDataPtr->fCnt;
-
-      for(int i= 0; i <  tmpCnt; i ++)
+      
+      cellDataPtr = (AliHLTPHOSChannelDataStruct*)( iter->fPtr);
+      fShmPtr->SetMemory(cellDataPtr);
+      currentChannel = fShmPtr->NextChannel();
+      
+      Int_t* tmpDataPtr = 0;
+      Int_t nSamples = 0;
+      if(cellDataPtr->fHasRawData == true)
+       {
+         while(currentChannel != 0)
+           {
+             tmpDataPtr = fShmPtr->GetRawData(nSamples);
+             fRcuHistoProducerPtr->FillEnergy(currentChannel->fX, currentChannel->fZ, currentChannel->fGain, currentChannel->fEnergy);
+             fRcuHistoProducerPtr->FillLiveChannels(tmpDataPtr, nSamples, currentChannel->fX, currentChannel->fZ,currentChannel->fGain);
+             currentChannel = fShmPtr->NextChannel();
+           }
+       }
+      else
        {
-         fRcuHistoProducerPtr->FillEnergy(cellDataPtr->fValidData[i].fX,
-                                          cellDataPtr->fValidData[i].fZ, 
-                                          cellDataPtr->fValidData[i].fGain, 
-                                          cellDataPtr->fValidData[i].fEnergy);
-
-         fRcuHistoProducerPtr->FillLiveChannels(cellDataPtr->fValidData[i].fData, 
-                                                fNTotalSamples,
-                                                cellDataPtr->fValidData[i].fX,
-                                                cellDataPtr->fValidData[i].fZ,
-                                                cellDataPtr->fValidData[i].fGain);
+         
+         Logging(kHLTLogFatal, __FILE__ , IntToChar(  __LINE__ ) , "AliHLTPHOSRcuHistogramProducerComponent::We are not pushing raw data, aborting");
+         return -1;
        }
     }
-  // cout << "Done filling\n";  
-  
+
   outBPtr = outputPtr;
   fOutPtr =  (AliHLTPHOSRcuCellAccumulatedEnergyDataStruct*)outBPtr;
   const AliHLTPHOSRcuCellAccumulatedEnergyDataStruct  &innPtr = fRcuHistoProducerPtr->GetCellAccumulatedEnergies();
@@ -148,12 +174,11 @@ int  AliHLTPHOSRcuHistogramProducerComponent::DoEvent( const AliHLTComponentEven
   fOutPtr->fRcuX     = fRcuX;
   fOutPtr->fRcuZ     = fRcuZ;
 
-
-  for(int x=0; x < N_XCOLUMNS_RCU; x ++)
+  for(int x=0; x < NXCOLUMNSRCU; x ++)
     {
-      for(int z=0; z < N_ZROWS_RCU; z ++)
+      for(int z=0; z < NZROWSRCU; z ++)
        {
-         for(int gain =0;  gain < N_GAINS; gain ++)
+         for(int gain =0;  gain < NGAINS; gain ++)
            {
              fOutPtr->fAccumulatedEnergies[x][z][gain] = innPtr.fAccumulatedEnergies[x][z][gain];
              fOutPtr->fHits[x][z][gain] = innPtr.fHits[x][z][gain];
@@ -162,10 +187,6 @@ int  AliHLTPHOSRcuHistogramProducerComponent::DoEvent( const AliHLTComponentEven
        }
     }
 
-
-  //    cout << "AliHLTPHOSRcuHistogramProducerComponent::DoEven TP1"   << endl;
-  //pushing data to shared output memory
-
   mysize += sizeof(AliHLTPHOSRcuCellAccumulatedEnergyDataStruct);
   AliHLTComponentBlockData bd;
   FillBlockData( bd );
@@ -176,9 +197,6 @@ int  AliHLTPHOSRcuHistogramProducerComponent::DoEvent( const AliHLTComponentEven
   outputBlocks.push_back( bd );
   tSize += mysize;
   outBPtr += mysize;
-  
-  //   cout << "AliHLTPHOSRcuHistogramProducerComponent::DoEven TP2"   << endl;
-
 
   if( tSize > size )
     {
@@ -190,35 +208,42 @@ int  AliHLTPHOSRcuHistogramProducerComponent::DoEvent( const AliHLTComponentEven
 
   fPhosEventCount++; 
 
   if( (fPhosEventCount%fHistoWriteFrequency == 0) &&  ( fPhosEventCount != 0))
-  //if( (fPhosEventCount%fHistoWriteFrequency == 0))
     {
-      cout << "AliHLTPHOSRcuHistogramProducerComponent::DoEvent, updating histograms " << endl;
-      fRcuHistoProducerPtr->WriteAllHistograms("recreate");
+      char* arg = new char[9];
+      sprintf(arg, "recreate");
+      fRcuHistoProducerPtr->WriteAllHistograms(arg);
     }
-
   return 0;
 
-  
+  */
+  return 0;
 }//end DoEvent
 
 
 int
-AliHLTPHOSRcuHistogramProducerComponent::DoInit( int argc, const char** argv )
+AliHLTPHOSRcuHistogramProducerComponent::DoInit( int /*argc*/, const char** /*argv*/ )
 {
   //See html documentation of base class
-  fPrintInfo = kFALSE;
+  //  fPrintInfo = kFALSE;
   int iResult=0;
   TString argument="";
-  iResult = ScanArguments(argc, argv);
+  // iResult = ScanArguments(argc, argv);
+
+  /*
   if(fIsSetEquippmentID == kFALSE)
     {
       Logging( kHLTLogFatal, "HLT::AliHLTPHOSRcuHistogramProducerComponent::DoInt( int argc, const char** argv )", "Missing argument",
               "The argument equippmentID is not set: set it with a component argumet like this: -equippmentID  <number>");
       iResult = -2; 
     }
-  fRcuHistoProducerPtr = new AliHLTPHOSRcuHistogramProducer( fModuleID, fRcuX, fRcuZ);
+  */
+
+  
+  //fRcuHistoProducerPtr = new AliHLTPHOSRcuHistogramProducer( fModuleID, fRcuX, fRcuZ);
+
   return iResult; 
   
 }
@@ -232,3 +257,4 @@ AliHLTPHOSRcuHistogramProducerComponent::Spawn()
 }
 
 
+