+// $Id$
+
/**************************************************************************
* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
* *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-#include "AliHLTPHOSRcuCellEnergyDataStruct.h"
+//#include "AliHLTPHOSRcuCellEnergyDataStruct.h"
#include "AliHLTPHOSRcuHistogramProducer.h"
#include "AliHLTPHOSRcuHistogramProducerComponent.h"
#include "AliHLTPHOSRcuCellAccumulatedEnergyDataStruct.h"
-#include "AliHLTPHOSSharedMemoryInterface.h"
-#include "AliHLTPHOSValidCellDataStruct.h"
+#include "AliHLTPHOSSharedMemoryInterfacev2.h"
+//#include "AliHLTPHOSValidCellDataStruct.h"
+#include "AliHLTPHOSChannelDataHeaderStruct.h"
+#include "AliHLTPHOSChannelDataStruct.h"
+//#include "AliHLTPHOSUtilities.h"
+
AliHLTPHOSRcuHistogramProducerComponent gAliHLTPHOSRcuHistogramProducerComponent;
/*************************************************************************
* and it fills the histograms with amplitudes per channel. *
* Usage example see in PHOS/macros/Shuttle/AliPHOSCalibHistoProducer.C *
**************************************************************************/
-AliHLTPHOSRcuHistogramProducerComponent:: AliHLTPHOSRcuHistogramProducerComponent() :
- AliHLTPHOSRcuProcessor(), fHistoWriteFrequency(100), fRcuHistoProducerPtr(0), fOutPtr(NULL)
+AliHLTPHOSRcuHistogramProducerComponent:: AliHLTPHOSRcuHistogramProducerComponent() : AliHLTPHOSRcuProcessor(),
+ fHistoWriteFrequency(100),
+ fRcuHistoProducerPtr(0),
+ fOutPtr(0),
+ fShmPtr(0)
{
- fShmPtr = new AliHLTPHOSSharedMemoryInterface();
+ fShmPtr = new AliHLTPHOSSharedMemoryInterfacev2();
//Default constructor
}
{
//See html documentation of base class
cout << "AliHLTPHOSRcuHistogramProducerComponent::Deinit()" << endl;
- fRcuHistoProducerPtr->WriteAllHistograms("recreate");
+ char* arg = new char[9];
+ sprintf(arg, "recreate");
+ fRcuHistoProducerPtr->WriteAllHistograms(arg);
return 0;
}
-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*/ )
{
- //See html documentation of base class
- AliHLTPHOSValidCellDataStruct *currentChannel =0;
+ /*
+
+ cout << " AliHLTPHOSRcuHistogramProducerComponent::Doevent, entering event loop" << endl;
+
+ //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;
for( ndx = 0; ndx < evtData.fBlockCnt; ndx++ )
{
+ cout << " AliHLTPHOSRcuHistogramProducerComponent::DoEvent, recieved block" << endl;
iter = blocks+ndx;
if(iter->fDataType != AliHLTPHOSDefinitions::fgkCellEnergyDataType)
{
+ cout << " AliHLTPHOSRcuHistogramProducerComponent::DoEvent, recieved block of wrong type" << endl;
+ cout << "evtData.fSize =" << evtData.fStructSize << "evtData.fBlockCnt =" << evtData.fBlockCnt <<endl ;
+
continue;
}
- cellDataPtr = (AliHLTPHOSRcuCellEnergyDataStruct*)( iter->fPtr);
+ cellDataPtr = (AliHLTPHOSChannelDataStruct*)( iter->fPtr);
fShmPtr->SetMemory(cellDataPtr);
currentChannel = fShmPtr->NextChannel();
-
- while(currentChannel != 0)
+
+ Int_t* tmpDataPtr = 0;
+ Int_t nSamples = 0;
+ if(cellDataPtr->fHasRawData == true)
{
- fRcuHistoProducerPtr->FillEnergy(currentChannel->fX, currentChannel->fZ, currentChannel->fGain, currentChannel->fEnergy);
- fRcuHistoProducerPtr->FillLiveChannels(currentChannel->fData, fNTotalSamples, currentChannel->fX, currentChannel->fZ,currentChannel->fGain);
- currentChannel = fShmPtr->NextChannel();
+ 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
+ {
+
+ Logging(kHLTLogFatal, __FILE__ , IntToChar( __LINE__ ) , "AliHLTPHOSRcuHistogramProducerComponent::We are not pushing raw data, aborting");
+ return -1;
}
}
fOutPtr->fRcuX = fRcuX;
fOutPtr->fRcuZ = fRcuZ;
- for(unsigned int x=0; x < N_XCOLUMNS_RCU; x ++)
+ for(int x=0; x < NXCOLUMNSRCU; x ++)
{
- for(unsigned int z=0; z < N_ZROWS_RCU; z ++)
+ for(int z=0; z < NZROWSRCU; z ++)
{
- for(unsigned 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];
if( (fPhosEventCount%fHistoWriteFrequency == 0) && ( fPhosEventCount != 0))
{
- 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;
}