From 9c9d15d63ae86a79e17701c6fdea7bc963e286da Mon Sep 17 00:00:00 2001 From: phille Date: Thu, 26 Jul 2007 07:50:13 +0000 Subject: [PATCH] Effective C++ & documentation, bug fix in Online display --- HLT/PHOS/AliHLTAltroData.cxx | 8 +- HLT/PHOS/AliHLTDDLDecoder.cxx | 263 ++++++++-------- HLT/PHOS/AliHLTDDLDecoder.h | 96 +++--- HLT/PHOS/AliHLTPHOSBase.cxx | 1 + HLT/PHOS/AliHLTPHOSBase.h | 18 +- HLT/PHOS/AliHLTPHOSClusterizer.cxx | 14 +- HLT/PHOS/AliHLTPHOSClusterizer.h | 8 +- HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx | 14 +- HLT/PHOS/AliHLTPHOSClusterizerComponent.h | 15 +- HLT/PHOS/AliHLTPHOSDDLDecoderComponent.cxx | 269 ++++++++++++++++ HLT/PHOS/AliHLTPHOSDDLDecoderComponent.h | 48 +++ HLT/PHOS/AliHLTPHOSEmcCalibData.h | 2 - HLT/PHOS/AliHLTPHOSFileWriterComponent.h | 2 - HLT/PHOS/AliHLTPHOSLinkDef.h | 24 +- HLT/PHOS/AliHLTPHOSMapper.cxx | 287 +----------------- HLT/PHOS/AliHLTPHOSMapper.h | 75 +---- ...HLTPHOSModuleCellAverageEnergyDataStruct.h | 9 +- ...LTPHOSPhysicsAnalyzerSpectrumComponent.cxx | 7 +- ...iHLTPHOSPhysicsAnalyzerSpectrumComponent.h | 6 +- HLT/PHOS/AliHLTPHOSProcessor.cxx | 1 + HLT/PHOS/AliHLTPHOSProcessor.h | 2 + HLT/PHOS/AliHLTPHOSRawAnalyzer.cxx | 10 +- HLT/PHOS/AliHLTPHOSRawAnalyzer.h | 23 +- HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.cxx | 4 +- HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx | 17 +- HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h | 14 +- HLT/PHOS/AliHLTPHOSRcuChannelDataStruct.h | 9 +- HLT/PHOS/AliHLTPHOSValidChannelDataStruct.h | 9 +- HLT/PHOS/Makefile.am | 4 +- .../OnlineDisplay/AliHLTPHOSOnlineDisplay.cxx | 2 +- .../OnlineDisplay/AliHLTPHOSOnlineDisplay.h | 1 + .../AliHLTPHOSOnlineDisplayRawTab.cxx | 93 +++++- .../AliHLTPHOSOnlineDisplayRawTab.h | 4 +- HLT/PHOS/OnlineDisplay/Makefile | 12 +- HLT/PHOS/PeakFinderTest.cxx | 2 +- HLT/PHOS/testDecoder.cxx | 49 ++- 36 files changed, 766 insertions(+), 656 deletions(-) create mode 100644 HLT/PHOS/AliHLTPHOSDDLDecoderComponent.cxx create mode 100644 HLT/PHOS/AliHLTPHOSDDLDecoderComponent.h diff --git a/HLT/PHOS/AliHLTAltroData.cxx b/HLT/PHOS/AliHLTAltroData.cxx index b813a5f9c8a..2a972ee2bbf 100644 --- a/HLT/PHOS/AliHLTAltroData.cxx +++ b/HLT/PHOS/AliHLTAltroData.cxx @@ -2,7 +2,13 @@ -AliHLTAltroData::AliHLTAltroData(): fBunchCounter(0), fBunchData(0), fData(0), fDataSize(0), fWc(0), fHadd(0), fIsComplete(true) +AliHLTAltroData::AliHLTAltroData(): fData(0), + fBunchData(0), + fDataSize(0), + fWc(0), + fHadd(0), + fBunchCounter(0), + fIsComplete(0) { diff --git a/HLT/PHOS/AliHLTDDLDecoder.cxx b/HLT/PHOS/AliHLTDDLDecoder.cxx index 085e97ba3dd..bb2778606f8 100644 --- a/HLT/PHOS/AliHLTDDLDecoder.cxx +++ b/HLT/PHOS/AliHLTDDLDecoder.cxx @@ -19,65 +19,75 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -AliHLTDDLDecoder::AliHLTDDLDecoder() : f32DtaPtr(0), f8DtaPtr(0),fN32HeaderWords(8), fN32RcuTrailerWords(1), fNDDLBlocks(0), - fBufferPos(0), fN40AltroWords(0), fN40RcuAltroWords(0), fSize(0), fSegmentation(0), - f32LastDDLBlockSize(5), f32PayloadSize(0),fBufferIndex(0), fN10bitWords(0), fBad(0),fGood(0) -{ +AliHLTDDLDecoder::AliHLTDDLDecoder() : f32DtaPtr(0), + f8DtaPtr(0), + fN32HeaderWords(8), + fN32RcuTrailerWords(1), + fN40AltroWords(0), + fN40RcuAltroWords(0), + fNDDLBlocks(0), + f32LastDDLBlockSize(5), + f32PayloadSize(0), + fOutBufferIndex(0), + fSize(0), + fNAltro10bitWords(0), + fComplete(0), + fInComplete(0), + fDecodeIfCorruptedTrailer(true), + fIsDecoded(false) +{ + // see header file for class documentation } AliHLTDDLDecoder::~AliHLTDDLDecoder() { - + // see header file for class documentation } bool AliHLTDDLDecoder::CheckPayload() { + // see header file for class documentation if(fN40AltroWords != fN40RcuAltroWords) { return false; } else { - return true; - } } + + + + + + bool AliHLTDDLDecoder::Decode() { - // int naaa; + // see header file for class documentation fComplete = 0; fInComplete = 0; - if((CheckPayload() == true) && (fSize > 32) ) + if( ((CheckPayload() == true) || fDecodeIfCorruptedTrailer == true ) && (fSize > 32) ) { - fDDLBlockCnt = 0; - fBufferIndex = 0; - fN10bitWords = 0; - - // for(fI=0; fI < fNDDLBlocks; fI++) + // fDDLBlockCnt = 0; + fOutBufferIndex = 0; + for(int i = 0; i < fNDDLBlocks; i++) { DecodeDDLBlock(); } - DecodeLastDDLBlock(); - fGood ++; - - /* - printf("\n"); - DumpData(fBuffer, 1000, 4); - printf("\n"); - */ - - return true; + fOutBufferIndex = fN40AltroWords*4 - 1; + fIsDecoded = true; + return true; } else @@ -86,96 +96,89 @@ AliHLTDDLDecoder::Decode() cout << "Size of datablock is " << fSize << endl; cout << "fN40AltroWords = " << fN40AltroWords << endl; cout << "fN40RcuAltroWords = " << fN40RcuAltroWords << endl; - fBad ++; - float badPercent = (100*(float)fBad)/((float)fBad + (float)fGood); - - cout << "there are" << badPercent <<" % corrupted DDL corrupted blocks" << endl; - - fDDLBlockCnt = 0; - fBufferIndex = 0; - fN10bitWords = 0; - - // for(fI=0; fI < fNDDLBlocks; fI++) - for(int i = 0; i < fNDDLBlocks; i++) - { - DecodeDDLBlock(); - } - - - DecodeLastDDLBlock(); - - /* - printf("\n"); - DumpData(fBuffer, 1000, 4); - printf("\n"); - */ - - return true; - - // return false; + return false; } } + bool AliHLTDDLDecoder::NextChannel(AliHLTAltroData *altroDataPtr) { + // see header file for class documentation + + // if(fIsDecoded == true) + // { + if(fIsDecoded != true) + { + cout <<"AliHLTDDLDecoder::NextChanne, WARNING, buffer not decoded "<< endl; + Decode(); + } + - if(fBufferPos > fN32HeaderWords) + if(fOutBufferIndex > fN32HeaderWords) { - if((fBuffer[fBufferPos] << 4 ) | ((fBuffer[fBufferPos-1] & 0x3c0) >> 6) == 0x2aaa) + if((fOutBuffer[fOutBufferIndex] << 4 ) | ((fOutBuffer[fOutBufferIndex-1] & 0x3c0) >> 6) == 0x2aaa) { altroDataPtr->fIsComplete = true; - // printf("\nAliHLTDDLDecoder::NextChannel data is complete 0x2aaa endmarker present\n"); fComplete ++; } else { - // printf("\nAliHLTDDLDecoder::NextChannel ERROR, data is incomplete 0x2aaa endmarker missing\n"); altroDataPtr->fIsComplete = false; fInComplete ++; } - fBufferPos --; - fNAltro10bitWords = ( (fBuffer[fBufferPos] & 0x3f) << 4 ) | ((fBuffer[fBufferPos -1] & (0xF << 6)) >> 6) ; - fBufferPos --; - fHadd = ((fBuffer[fBufferPos] & 0x3)) << 10 | ( fBuffer[fBufferPos-1] ); - fBufferPos --; + fOutBufferIndex --; + fNAltro10bitWords = ( (fOutBuffer[fOutBufferIndex] & 0x3f) << 4 ) | ((fOutBuffer[fOutBufferIndex -1] & (0xF << 6)) >> 6) ; + fOutBufferIndex --; + altroDataPtr->fHadd = ((fOutBuffer[fOutBufferIndex] & 0x3)) << 10 | ( fOutBuffer[fOutBufferIndex-1] ); + fOutBufferIndex --; if(fNAltro10bitWords%4 == 0) { - fBufferPos = fBufferPos - fNAltro10bitWords; + fOutBufferIndex = fOutBufferIndex - fNAltro10bitWords; } else { - fBufferPos = fBufferPos - fNAltro10bitWords -(4 - fNAltro10bitWords%4); + fOutBufferIndex = fOutBufferIndex - fNAltro10bitWords -(4 - fNAltro10bitWords%4); } - altroDataPtr->fData = &fBuffer[fBufferPos]; - fBufferPos --; - altroDataPtr->fDataSize = fNAltro10bitWords ; - altroDataPtr->fHadd = fHadd; + altroDataPtr->fData = &fOutBuffer[fOutBufferIndex]; + fOutBufferIndex --; + altroDataPtr->fDataSize = fNAltro10bitWords; - return true; + } else { return false; } } + +// else +// { +// cout <<"AliHLTDDLDecoder::NextChanne, WARNING, buffer not decoded "<< endl; +// Decode(); +// } +//} + +//} int AliHLTDDLDecoder::countAAApaddings() { - - + // see header file for class documentation + int cnt = 0; + return cnt; } float AliHLTDDLDecoder::GetFailureRate() { + // see header file for class documentation float tmp = 0; cout << "Number of Complete channles = " << fComplete <> 10; //s1 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0x3ff00000) >> 20; //s2 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xc0000000) >> 30; //s3_1 + // see header file for class documentation + fOutBuffer[fOutBufferIndex] = *f32DtaPtr & 0x3ff; //s0 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xffc00) >> 10; //s1 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0x3ff00000) >> 20; //s2 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xc0000000) >> 30; //s3_1 f32DtaPtr ++; - fBuffer[fBufferIndex] = fBuffer[fBufferIndex] | ((*f32DtaPtr & 0xff) << 2); //s3_2 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0x3ff00) >> 8; //s4 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xffc0000) >> 18; //s5 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xf0000000) >> 28; //s6_1 + fOutBuffer[fOutBufferIndex] = fOutBuffer[fOutBufferIndex] | ((*f32DtaPtr & 0xff) << 2); //s3_2 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0x3ff00) >> 8; //s4 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xffc0000) >> 18; //s5 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xf0000000) >> 28; //s6_1 f32DtaPtr ++; - fBuffer[fBufferIndex] = fBuffer[fBufferIndex] | ((*f32DtaPtr & 0x3f) << 4); //s6_2 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xffc0) >> 6; //s7 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0x3ff0000) >> 16; //s8 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xFC000000) >> 26; //s9_1 + fOutBuffer[fOutBufferIndex] = fOutBuffer[fOutBufferIndex] | ((*f32DtaPtr & 0x3f) << 4); //s6_2 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xffc0) >> 6; //s7 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0x3ff0000) >> 16; //s8 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xFC000000) >> 26; //s9_1 f32DtaPtr ++; - fBuffer[fBufferIndex] = fBuffer[fBufferIndex] | ((*f32DtaPtr & 0xf) << 6); //s9_2 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0x3ff0) >> 4; //s10 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xffc000) >> 14; //s11 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xff000000) >> 24; //s12_1 + fOutBuffer[fOutBufferIndex] = fOutBuffer[fOutBufferIndex] | ((*f32DtaPtr & 0xf) << 6); //s9_2 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0x3ff0) >> 4; //s10 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xffc000) >> 14; //s11 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xff000000) >> 24; //s12_1 f32DtaPtr ++; - fBuffer[fBufferIndex] = fBuffer[fBufferIndex] | ((*f32DtaPtr & 0x3) << 8); //s12_2 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xffc) >> 2; //s13 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0x3ff000) >> 12; //s14 - fBufferIndex ++; - fBuffer[fBufferIndex] = (*f32DtaPtr & 0xffc00000) >> 22; //s15 - fN10bitWords =fN10bitWords + 16 ; + fOutBuffer[fOutBufferIndex] = fOutBuffer[fOutBufferIndex] | ((*f32DtaPtr & 0x3) << 8); //s12_2 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xffc) >> 2; //s13 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0x3ff000) >> 12; //s14 + fOutBufferIndex ++; + fOutBuffer[fOutBufferIndex] = (*f32DtaPtr & 0xffc00000) >> 22; //s15 f32DtaPtr ++; - fBufferIndex ++; - fDDLBlockCnt ++; + fOutBufferIndex ++; + // fDDLBlockCnt ++; } void AliHLTDDLDecoder::DecodeLastDDLBlock() { - for(unsigned fI=0; fI < f32LastDDLBlockSize; fI++) + // see header file for class documentation + for(int i=0; i < f32LastDDLBlockSize; i++) { - fDDLBlockDummy[fI] = *f32DtaPtr; + fDDLBlockDummy[i] = *f32DtaPtr; f32DtaPtr ++; } @@ -304,11 +288,6 @@ AliHLTDDLDecoder::DecodeLastDDLBlock() DecodeDDLBlock(); } -/* -void -AliHLTDDLDecoder::SetNTrailerWords(int n) -{ - fN32RcuTrailerWords = n; -} -*/ + + diff --git a/HLT/PHOS/AliHLTDDLDecoder.h b/HLT/PHOS/AliHLTDDLDecoder.h index 4ca83e0a056..41abc5629af 100644 --- a/HLT/PHOS/AliHLTDDLDecoder.h +++ b/HLT/PHOS/AliHLTDDLDecoder.h @@ -20,24 +20,46 @@ * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ +#define DDL_32BLOCK_SIZE 5 #include "Rtypes.h" #include +#include "AliHLTPHOSConstants.h" + using std::cout; using std::endl; -#define DDL_32BLOCK_SIZE 5 -#include "AliHLTPHOSConstants.h" using namespace PhosHLTConst; + + class AliHLTAltroData; class AliHLTDDLDecoder { public: + + /* + *Default constructor + */ AliHLTDDLDecoder(); + + /* + *Default destructor + */ virtual ~AliHLTDDLDecoder(); + + /* + *Check wether or not there is consistency between the number of 40 bit altro words given by + *the RCU payload and the number of 40 bit words calculated from the size of the RCU payload. + */ bool CheckPayload(); + + /* + *Decode the RCU/DDL payload + */ bool Decode(); + + bool NextChannel(AliHLTAltroData *altroDataPtr); template @@ -57,52 +79,50 @@ class AliHLTDDLDecoder } - void SetMemory(UChar_t *dtaPtr, UInt_t size); - // void SetNTrailerWords(int N); + + + void SetMemory(UChar_t *dtaPtr, UInt_t size); void PrintInfo(AliHLTAltroData &altrodata, int n = 0, int nPerLine = 4); - float GetFailureRate(); + /* + * + */ + float GetFailureRate(); private: + /* + *Decode one 160 bit DDL block into 16 x 16 bit integers (only least significant 10 bits are filled) + */ void DecodeDDLBlock(); - void DecodeLastDDLBlock(); - int GetMarker(UInt_t *buffer, int index); - int countAAApaddings(); - - UInt_t *f32DtaPtr; - UChar_t *f8DtaPtr; - - const long int fN32HeaderWords; - const long int fN32RcuTrailerWords; + /* + *Decode one 160 bit DDL block into 16 integers, + *if the las blaock does not align with 160 bits then first pad with zeroes + */ + void DecodeLastDDLBlock(); - unsigned int fNDDLBlocks; - long int fBufferPos; - - unsigned long fN40AltroWords; - unsigned long fN40RcuAltroWords; - - UInt_t fSize; - unsigned int fSegmentation; - unsigned int f32LastDDLBlockSize; - UInt_t f32PayloadSize; - UInt_t fBufferIndex; - UInt_t fN10bitWords; - UInt_t fBuffer[N_FEECS*N_BRANCHES*8*N_ALTROCHANNELS*(ALTRO_MAX_SAMPLES + ALTRO_MAX_TRALER_SIZE)]; - UInt_t fDDLBlockDummy[DDL_BLOCK_SIZE]; - UInt_t fDDLBlockCnt; - UInt_t fNAltro10bitWords; - UInt_t fNAltroLastSequence10bitWords; - UInt_t fHadd; - UInt_t fI; - int fComplete; - int fInComplete; - - int fBad; - int fGood; + int countAAApaddings(); + UInt_t *f32DtaPtr; /** #include "TString.h" #include "AliHLTDataTypes.h" -#include "AliHLTPHOSDefinitions.h" +//#include "AliHLTPHOSDefinitions.h" +//#include "AliHLTPHOSCommonDefs.h" #include "AliHLTPHOSConstants.h" -#include "AliHLTPHOSCommonDefs.h" using namespace PhosHLTConst; + + + using namespace std; + class AliHLTPHOSBase { public: AliHLTPHOSBase(); virtual ~AliHLTPHOSBase(); + template void DumpData(T *array, int N, int nPerLine) { @@ -64,7 +69,9 @@ class AliHLTPHOSBase template T MaxValue(T *array, int N) { - Double_t tmpMax = 0; + // Double_t tmpMax = 0; + + T tmpMax = 0; for(int i = 0; i < N; i++) { @@ -79,8 +86,9 @@ class AliHLTPHOSBase private: - AliHLTPHOSBase(const AliHLTPHOSBase & ); - AliHLTPHOSBase & operator = (const AliHLTPHOSBase &); + // AliHLTPHOSBase(const AliHLTPHOSBase & ); + // AliHLTPHOSBase & operator = (const AliHLTPHOSBase &); + /// const struct THIS IS STRANGE; diff --git a/HLT/PHOS/AliHLTPHOSClusterizer.cxx b/HLT/PHOS/AliHLTPHOSClusterizer.cxx index bc2aa18803d..fe9d825657a 100644 --- a/HLT/PHOS/AliHLTPHOSClusterizer.cxx +++ b/HLT/PHOS/AliHLTPHOSClusterizer.cxx @@ -45,17 +45,21 @@ ClassImp(AliHLTPHOSClusterizer); AliHLTPHOSClusterizer::AliHLTPHOSClusterizer():AliHLTPHOSBase(),fPHOSModule(0), fThreshold(0), fClusterThreshold(0), fHighGainFactor(0.005), fLowGainFactor(0.08), fArraySize(3), fMultiplicity(fArraySize*fArraySize) +//AliHLTPHOSClusterizer::AliHLTPHOSClusterizer():AliHLTPHOSProcessor(),fPHOSModule(0), fThreshold(0), fClusterThreshold(0), +// fHighGainFactor(0.005), fLowGainFactor(0.08), +// fArraySize(3), fMultiplicity(fArraySize*fArraySize) { //See header file for documentation }//end -AliHLTPHOSClusterizer::AliHLTPHOSClusterizer(const AliHLTPHOSClusterizer &):AliHLTPHOSBase(),fPHOSModule(0), fThreshold(0), fClusterThreshold(0), - fHighGainFactor(0.005), fLowGainFactor(0.08), - fArraySize(3), fMultiplicity(fArraySize*fArraySize) -{ +// PTH AliHLTPHOSClusterizer::AliHLTPHOSClusterizer(const AliHLTPHOSClusterizer &):AliHLTPHOSBase(),fPHOSModule(0), fThreshold(0), fClusterThreshold(0), +// fHighGainFactor(0.005), fLowGainFactor(0.08), +// fArraySize(3), fMultiplicity(fArraySize*fArraySize) + +//{ //Copy constructor, not implemented -}//end +//}//end AliHLTPHOSClusterizer:: ~AliHLTPHOSClusterizer() { diff --git a/HLT/PHOS/AliHLTPHOSClusterizer.h b/HLT/PHOS/AliHLTPHOSClusterizer.h index 92c6fc8f872..a0b8f724ebe 100644 --- a/HLT/PHOS/AliHLTPHOSClusterizer.h +++ b/HLT/PHOS/AliHLTPHOSClusterizer.h @@ -11,8 +11,9 @@ #ifndef ALIHLTPHOSCLUSTERIZER_H #define ALIHLTPHOSCLUSTERIZER_H -//#include "AliHLTPHOSProcessor.h" + +//#include "AliHLTPHOSProcessor.h" #include "AliHLTPHOSBase.h" @@ -28,6 +29,7 @@ struct AliHLTPHOSRecPointListDataStruct; struct AliHLTPHOSRcuCellEnergyDataStruct; //class AliHLTPHOSClusterizer: public AliHLTPHOSProcessor + class AliHLTPHOSClusterizer: public AliHLTPHOSBase { @@ -35,8 +37,8 @@ class AliHLTPHOSClusterizer: public AliHLTPHOSBase AliHLTPHOSClusterizer(); virtual ~AliHLTPHOSClusterizer(); - AliHLTPHOSClusterizer(const AliHLTPHOSClusterizer &); - AliHLTPHOSClusterizer & operator = (const AliHLTPHOSClusterizer &) {return *this;} + // AliHLTPHOSClusterizer(const AliHLTPHOSClusterizer &); + //AliHLTPHOSClusterizer & operator = (const AliHLTPHOSClusterizer &) {return *this;} void SetThreshold(float threshold) {fThreshold = threshold;} void SetClusterThreshold(float clusterThreshold) {fClusterThreshold = clusterThreshold;} diff --git a/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx b/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx index 175bf7fc5ff..3d5c55c962e 100644 --- a/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx +++ b/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx @@ -30,8 +30,10 @@ const AliHLTComponentDataType AliHLTPHOSClusterizerComponent::fgkInputDataTypes[ AliHLTPHOSClusterizerComponent gAliHLTPHOSClusterizerComponent; -AliHLTPHOSClusterizerComponent::AliHLTPHOSClusterizerComponent(): AliHLTPHOSBase(), AliHLTProcessor(), fClusterizerPtr(0), fOutPtr(0), - fRecPointStructArrayPtr(0), fRecPointListPtr(0) +//AliHLTPHOSClusterizerComponent::AliHLTPHOSClusterizerComponent(): AliHLTPHOSBase(), AliHLTProcessor(), fClusterizerPtr(0), fOutPtr(0), +// fRecPointStructArrayPtr(0), fRecPointListPtr(0) +AliHLTPHOSClusterizerComponent::AliHLTPHOSClusterizerComponent(): AliHLTPHOSProcessor(), fClusterizerPtr(0), fOutPtr(0), + fRecPointStructArrayPtr(0), fRecPointListPtr(0) { //Constructor } @@ -64,6 +66,14 @@ AliHLTPHOSClusterizerComponent::~AliHLTPHOSClusterizerComponent() } +/* +int +AliHLTPHOSClusterizerComponent::AliHLTPHOSClusterizerComponent::Deinit() +{ + ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor +} +*/ + // PTH AliHLTPHOSClusterizerComponent::AliHLTPHOSClusterizerComponent(const AliHLTPHOSClusterizerComponent &):AliHLTProcessor(), // fClusterizerPtr(0), // fOutPtr(0), diff --git a/HLT/PHOS/AliHLTPHOSClusterizerComponent.h b/HLT/PHOS/AliHLTPHOSClusterizerComponent.h index 08131ecbc90..2fd72d54df3 100644 --- a/HLT/PHOS/AliHLTPHOSClusterizerComponent.h +++ b/HLT/PHOS/AliHLTPHOSClusterizerComponent.h @@ -13,8 +13,9 @@ -#include "AliHLTProcessor.h" -#include "AliHLTPHOSBase.h" +#include "AliHLTPHOSProcessor.h" + +//#include "AliHLTPHOSBase.h" //#include "AliHLTPHOSDefinitions.h" //#include "AliHLTProcessor.h" @@ -28,7 +29,10 @@ struct AliHLTPHOSRecPointDataStruct; struct AliHLTPHOSRecPointListDataStruct; -class AliHLTPHOSClusterizerComponent: public AliHLTPHOSBase, public AliHLTProcessor + +// PTH class AliHLTPHOSClusterizerComponent: public AliHLTPHOSBase, public AliHLTProcessor +class AliHLTPHOSClusterizerComponent: public AliHLTPHOSProcessor +//class AliHLTPHOSClusterizerComponent: public AliHLTPHOSBase, public AliHLTProcessor { public: @@ -42,6 +46,8 @@ class AliHLTPHOSClusterizerComponent: public AliHLTPHOSBase, public AliHLTProce // return *this; // } + + const char* GetComponentID(); void GetInputDataTypes(std::vector& list); @@ -57,8 +63,9 @@ class AliHLTPHOSClusterizerComponent: public AliHLTPHOSBase, public AliHLTProce protected: + int DoInit(int argc, const char** argv); - int Deinit(); + virtual int Deinit(); ////////// PTH WARNING you should Define a class AliHLTPHOSModuleProcessor int DoDeinit(); private: diff --git a/HLT/PHOS/AliHLTPHOSDDLDecoderComponent.cxx b/HLT/PHOS/AliHLTPHOSDDLDecoderComponent.cxx new file mode 100644 index 00000000000..34a1230ceea --- /dev/null +++ b/HLT/PHOS/AliHLTPHOSDDLDecoderComponent.cxx @@ -0,0 +1,269 @@ +/************************************************************************** + * This file is property of and copyright by the Experimental Nuclear * + * Physics Group, Dep. of Physics * + * University of Oslo, Norway, 2007 * + * * + * Author: Per Thomas Hille for the ALICE HLT Project.* + * Contributors are mentioned in the code where appropriate. * + * Please report bugs to perthi@fys.uio.no * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ + + +#include "AliHLTPHOSDDLDecoderComponent.h" +#include "AliRawReaderMemory.h" +#include "AliCaloRawStream.h" +#include "AliHLTPHOSRcuChannelDataStruct.h" +#include "AliHLTPHOSPulseGenerator.h" +#include "AliHLTPHOSDataCorruptor.h" +#include "AliHLTDDLDecoder.h" +#include "AliHLTPHOSMapper.h" +#include "AliHLTAltroData.h" +//#include "AliHLTPHOSBase.h" + +using namespace std; + + +AliHLTPHOSDDLDecoderComponent gAliHLTPHOSDDLDecoderComponent; + + +AliHLTPHOSDDLDecoderComponent::AliHLTPHOSDDLDecoderComponent():AliHLTPHOSRcuProcessor(), + fOutPtr(0), fDataCorruptorPtr(0), fDecoderPtr(0), fAltroDataPtr(0), fMapperPtr(0) +{ + //Default constructor + fDataCorruptorPtr = new AliHLTPHOSDataCorruptor(); + fAltroDataPtr = new AliHLTAltroData(); + fDecoderPtr = new AliHLTDDLDecoder(); + fMapperPtr = new AliHLTPHOSMapper(); +} + +AliHLTPHOSDDLDecoderComponent::~AliHLTPHOSDDLDecoderComponent() +{ + +} + +int +AliHLTPHOSDDLDecoderComponent::Deinit() +{ + //Se html documentation of base class + cout << "Deinit" << endl; + Logging(kHLTLogInfo, "HLT", "PHOS", ",AliHLTPHOSRawAnalyzerComponen DoDeinit"); + return 0; +} + + +const char* +AliHLTPHOSDDLDecoderComponent::GetComponentID() +{ + //Se html documentation of base class + return "PhosDDLDecoder"; +} + + + +void +AliHLTPHOSDDLDecoderComponent::GetInputDataTypes(vector& list) +{ + //Se html documentation of base class + const AliHLTComponentDataType* pType=fgkInputDataTypes; + while (pType->fID!=0) { + list.push_back(*pType); + pType++; + } +} + +AliHLTComponentDataType +AliHLTPHOSDDLDecoderComponent::GetOutputDataType() +{ + //See html documentation of base class + return AliHLTPHOSDefinitions::fgkCellChannelDataDataType; +} + +void +AliHLTPHOSDDLDecoderComponent::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier ) + +{ + //Se html documentation of base class + constBase = 30; + inputMultiplier = 1; +} + + +int +AliHLTPHOSDDLDecoderComponent::DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, + AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, + AliHLTUInt32_t& size, vector& outputBlocks ) +{ + + cout <<"AliHLTPHOSDDLDecoderComponent::DoEvent()" << endl; + + Int_t sampleCnt = 0; + Int_t processedChannels = 0; + UInt_t offset = 0; + UInt_t mysize = 0; + UInt_t tSize = 0; + Int_t tmpChannelCnt = 0; + AliHLTUInt8_t* outBPtr; + + outBPtr = outputPtr; + const AliHLTComponentBlockData* iter = NULL; + unsigned long ndx; + + // cout << "evtData.fBlockCnt = " << evtData.fBlockCnt << endl; + + for( ndx = 0; ndx < evtData.fBlockCnt; ndx++ ) + { + // cout << "AliHLTPHOSDDLDecoderComponent::DoEven ndx = " << ndx <fDataType != AliHLTPHOSDefinitions::fgkDDLPackedRawDataType ) + { + // cout << "iter->fDataType != AliHLTPHOSDefinitions::fgkDDLPackedRawDataType" << endl; + continue; + } + + // fRawMemoryReader->SetMemory( reinterpret_cast( iter->fPtr ), iter->fSize ); + + fDecoderPtr->SetMemory( reinterpret_cast( iter->fPtr ), iter->fSize ); + fDecoderPtr->Decode(); + + fOutPtr = (AliHLTPHOSRcuChannelDataStruct*)outBPtr; + mysize += sizeof(AliHLTPHOSRcuChannelDataStruct); + + fOutPtr->fRcuX = fRcuX; + fOutPtr->fRcuZ = fRcuZ; + fOutPtr->fModuleID = fModuleID; + tmpChannelCnt = 0; + + while(fDecoderPtr->NextChannel(fAltroDataPtr) == true) + { + for(int i= 0; ifDataSize;i ++ ) + { + fOutPtr->fValidData[tmpChannelCnt].fChannelData[i] = fAltroDataPtr->fData[i]; + } + + + fOutPtr->fValidData[tmpChannelCnt].fDataSize = fAltroDataPtr->fDataSize; + fOutPtr->fValidData[tmpChannelCnt].fX = fMapperPtr->hw2geomapPtr[fAltroDataPtr->fHadd].xCol; + fOutPtr->fValidData[tmpChannelCnt].fZ = fMapperPtr->hw2geomapPtr[fAltroDataPtr->fHadd].zRow; + fOutPtr->fRcuX = fRcuX; + fOutPtr->fRcuZ = fRcuZ; + fOutPtr->fModuleID = fModuleID; + tmpChannelCnt++; + + // DumpData(); + // printf("\n"); + // DumpData(fOutPtr->fValidData[tmpChannelCnt].fChannelData, fOutPtr->fValidData[tmpChannelCnt].fDataSize, 16); + // printf("\n"); + + } + + /* + for(int i=0; iNext()) + { + if (fPHOSRawStream->IsNewHWAddress()) + { + sampleCnt = 0; + fOutPtr->fValidData[tmpChannelCnt].fZ = (AliHLTUInt8_t)fPHOSRawStream->GetColumn() - fRcuZOffset; + fOutPtr->fValidData[tmpChannelCnt].fX = (AliHLTUInt8_t)fPHOSRawStream->GetRow() - fRcuXOffset; + fOutPtr->fValidData[tmpChannelCnt].fGain = fPHOSRawStream->IsLowGain(); + fOutPtr->fValidData[tmpChannelCnt].fNSamples = 0; + tmpChannelCnt++; + } + fOutPtr->fValidData[tmpChannelCnt-1].fNSamples ++; + fOutPtr->fValidData[tmpChannelCnt-1].fChannelData[sampleCnt] = fPHOSRawStream->GetSignal(); + sampleCnt ++; + } + */ + + + fOutPtr->fNValidChannels = tmpChannelCnt-1; + // cout << "AliHLTPHOSDDLDecoderComponent::DoEven: setting fOutPtr->fNValidChannels =" << tmpChannelCnt-1< size ) + { + cout <<"kHLTLogFatal, HLT::AliHLTPHOSDDLDecoderComponent::DoEvent Too much data Data written over allowed buffer. Amount written:" << tSize << " allowed" << size << endl; + Logging( kHLTLogFatal, "HLT::AliHLTPHOSDDLDecoderComponent::DoEvent", "Too much data", "Data written over allowed buffer. Amount written: %lu, allowed amount: %lu.", tSize, size ); + return EMSGSIZE; + } + + fPhosEventCount++; + + if(fPrintInfo == kTRUE) + { + if(fPhosEventCount%fPrintInfoFrequncy == 0) + { + cout <<"Analyzing event " << fPhosEventCount << "for Equippment " << fkEquippmentID << endl; + } + } + size = tSize; + return 0; +}//end DoEvent + + +int +AliHLTPHOSDDLDecoderComponent::DoInit( int argc, const char** argv ) +{ + //See html documentation of base class + fPrintInfo = kFALSE; + // fRawMemoryReader = new AliRawReaderMemory(); + // fPHOSRawStream = new AliCaloRawStream(fRawMemoryReader,"PHOS"); + // fPHOSRawStream->SetOldRCUFormat(kFALSE); + + int iResult=0; + TString argument=""; + ScanArguments(argc, argv); + + if(fIsSetEquippmentID == kFALSE) + + { + cout << "The argument equippmentID is not set: set it with a component argumet like this: -equippmentID " << endl; + 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 "); + iResult = -2; + } + else + { + // fRawMemoryReader->SetEquipmentID(fkEquippmentID); + } + + return iResult; +} + +AliHLTComponent* +AliHLTPHOSDDLDecoderComponent::Spawn() +{ + //See html documentation of base class + return new AliHLTPHOSDDLDecoderComponent; +} diff --git a/HLT/PHOS/AliHLTPHOSDDLDecoderComponent.h b/HLT/PHOS/AliHLTPHOSDDLDecoderComponent.h new file mode 100644 index 00000000000..6da1c285a2a --- /dev/null +++ b/HLT/PHOS/AliHLTPHOSDDLDecoderComponent.h @@ -0,0 +1,48 @@ +#ifndef ALIHLTPHOSDDLDECODERCOMPONENT_H +#define ALIHLTPHOSDDLDECODERCOMPONENT_H + +/* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ + +#include "AliHLTPHOSRcuProcessor.h" + + + +class AliHLTPHOSRcuCellEnergyDataStruct; +class AliHLTPHOSRcuChannelDataStruct; +class AliHLTPHOSPulseGenerator; +class AliHLTPHOSDataCorruptor; +class AliHLTDDLDecoder; +class AliHLTAltroData; +class AliHLTPHOSMapper; + + + +class AliHLTPHOSDDLDecoderComponent:public AliHLTPHOSRcuProcessor +{ + public: + AliHLTPHOSDDLDecoderComponent(); + virtual ~AliHLTPHOSDDLDecoderComponent(); + virtual int DoInit( int argc, const char** argv ); + virtual int Deinit(); + virtual const char* GetComponentID(); + virtual void GetInputDataTypes( vector & list); + virtual AliHLTComponentDataType GetOutputDataType(); + virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier); + virtual AliHLTComponent* Spawn(); + + virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, + AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, + AliHLTUInt32_t& size, vector& outputBlocks ); + + + private: + AliHLTPHOSDataCorruptor *fDataCorruptorPtr; /** -#include "AliHLTPHOSCommonDefs.h" #include "Rtypes.h" #include "AliHLTFileWriter.h" #include diff --git a/HLT/PHOS/AliHLTPHOSLinkDef.h b/HLT/PHOS/AliHLTPHOSLinkDef.h index 1a5e9c94de3..ca472d459fa 100644 --- a/HLT/PHOS/AliHLTPHOSLinkDef.h +++ b/HLT/PHOS/AliHLTPHOSLinkDef.h @@ -1,4 +1,3 @@ - #ifdef __CINT__ #pragma link off all globals; @@ -6,19 +5,18 @@ #pragma link off all functions; /* -#pragma link C++ class AliHLTPHOSRawAnalyzerPeakFinder+; -#pragma link C++ class AliHLTPHOSRawAnalyzerCrude+; -#pragma link C++ class AliHLTPHOSRawAnalyzerChiSquareFit+; -#pragma link C++ class AliHLTPHOSRawAnalyzerKLevel+; -#pragma link C++ class AliHLTPHOSRawAnalyzerLMS+; -#pragma link C++ class AliHLTPHOSPulseGenerator+; +#pragma link C++ class AliHLTPHOSClusterizer+; #pragma link C++ class AliHLTPHOSEmcCalibData+; -#pragma link C++ class AliHLTPHOSDefinitions+; -#pragma link C++ class AliHLTPHOSPhysicsAnalyzer+; -#pragma link C++ class AliHLTPHOSPhysicsAnalyzerSpectrum+; -#pragma link C++ class AliHLTPHOSClusterizer+; -#pragma link C++ class AliHLTPHOSPhysicsAnalyzerPeakFitter+; -#pragma link C++ class AliHLTPHOSPhysicsDefinitions+; +#pragma link C++ class AliHLTPHOSPhysicsAnalyzer+; +#pragma link C++ class AliHLTPHOSPhysicsAnalyzerPeakFitter+; +#pragma link C++ class AliHLTPHOSPhysicsAnalyzerSpectrum+; +#pragma link C++ class AliHLTPHOSPulseGenerator+; +#pragma link C++ class AliHLTPHOSRawAnalyzerChiSquareFit+; +#pragma link C++ class AliHLTPHOSRawAnalyzerCrude+; +#pragma link C++ class AliHLTPHOSRawAnalyzerKLevel+; +#pragma link C++ class AliHLTPHOSRawAnalyzerLMS+; +#pragma link C++ class AliHLTPHOSRawAnalyzerPeakFinder+; */ + #endif diff --git a/HLT/PHOS/AliHLTPHOSMapper.cxx b/HLT/PHOS/AliHLTPHOSMapper.cxx index cff07b237fe..b4ef3c1e460 100644 --- a/HLT/PHOS/AliHLTPHOSMapper.cxx +++ b/HLT/PHOS/AliHLTPHOSMapper.cxx @@ -31,16 +31,13 @@ AliHLTPHOSMapper::~AliHLTPHOSMapper() } - void AliHLTPHOSMapper::InitAltroMapping() { char filename[256]; char *base = getenv("ALICE_ROOT"); - int nChannels = 0; int maxaddr = 0; - int tmpHwaddr = 0; int tmpZRow = 0; int tmpXCol = 0; @@ -60,29 +57,28 @@ AliHLTPHOSMapper::InitAltroMapping() printf("maxaddr = %d", maxaddr); hw2geomapPtr = new altromap[maxaddr +1]; - for(int i=0; i< maxaddr + 1 ; i ++) { - hw2geomapPtr[i].col = 0; - hw2geomapPtr[i].row = 0; + hw2geomapPtr[i].xCol = 0; + hw2geomapPtr[i].zRow = 0; hw2geomapPtr[i].gain = 0; } - printf("\n"); + // printf("\n"); for(int i=0; i7)row=23-row; - // Check if arguments Ok - assert((col>=0)&&(col<2)); - assert((row>=0)&&(row<16)); - assert((csp>=0)&&(csp<32)); - assert((numHi>=0)&&(numHi<64)); - assert((numLo>=0)&&(numLo<64)); - assert((chHi>=0)&&(chHi< N_ALTROCHANNELS)); - assert((chLo>=0)&&(chLo< N_ALTROCHANNELS)); - assert((chip>=0)&&(chip=0)&&(row< N_XCOLUMNS_MOD)) - if((col>=0)&&(col=0)&&(gain= 0); - } - // - // Check if hdw2geo map table is filled - // - for(int m=0; m= 0); - } -} - - -*/ - -/* - -//////////////////////////////////////////////////////////////////////// -// Return histogramm id from histogramm name or -1 on error. -// extractHid("hMax011426")=11426; -//////////////////////////////////////////////////////////////////////// -//inline int -int -AliHLTPHOSMapper::ExtractHid(char *objName){ - // char *perr= NULL; - char *perr= 0; - if(strlen(objName)<7) return -1; - int hid=strtol(&objName[strlen(objName)-6],&perr,10); - if(strlen(perr))return -1; - return hid; -} - -//////////////////////////////////////////////////////////////////////// -// Print geometry and hardware information for given histogramm -// printHistMapInfo("hMax011426"); -// hid mod gain row col rcu bran fee chip chan csp num -// 011426 0 1 14 26 0 0 13 3 14 14 62 -//////////////////////////////////////////////////////////////////////// -//inline void -void -AliHLTPHOSMapper::PrintHistMapInfo(char *objName){ - int hid=ExtractHid(objName); - if(hid>=0){ - int mod=Hid2mod(hid); - int gain=Hid2gain(hid); - int row=Hid2row(hid); - int col=Hid2col(hid); - int index=geo2hdw[mod][gain][row][col]; assert(index>=0); - int rcu = ALTRO_MAP[index].rcu; - int bran = ALTRO_MAP[index].branch; - int fec = ALTRO_MAP[index].card; - int chip = ALTRO_MAP[index].chip; - int chan = ALTRO_MAP[index].chan; - int csp = ALTRO_MAP[index].csp; - int num = ALTRO_MAP[index].num; - printf("%s attributes:\nhid\tmod\tgain\trow\tcol\trcu\tbran\tfee\tchip\tchan\tcsp\tnum\n",objName); - printf("%06d\t%d\t%d\t%02d\t%02d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",hid,mod,gain,row,col,rcu,bran,fec,chip,chan,csp,num); - } -} - - -*/ diff --git a/HLT/PHOS/AliHLTPHOSMapper.h b/HLT/PHOS/AliHLTPHOSMapper.h index 8d9b8bda035..592d10a8987 100644 --- a/HLT/PHOS/AliHLTPHOSMapper.h +++ b/HLT/PHOS/AliHLTPHOSMapper.h @@ -39,12 +39,11 @@ class AliHLTPHOSMapper : public AliHLTPHOSBase AliHLTPHOSMapper(); virtual ~AliHLTPHOSMapper(); void InitAltroMapping(); - struct altromap{ // int mod; - int row; - int col; + int zRow; + int xCol; int gain; // int rcu; // int branch; @@ -59,76 +58,6 @@ class AliHLTPHOSMapper : public AliHLTPHOSBase altromap *hw2geomapPtr; - - /* - struct FEE_CSP_MAP{ - int row; - int col; - int gain; - int csp; - int num; - }; - */ - - /* - struct ALTRO_GEO_MAP{ - int mod; - int gain; - int row; - int col; - int rcu; - int branch; - int card; - int chip; - int chan; - int csp; - int num; - int hid; - }; - */ - - // void AddCsp(int csp, int chip, int chHi, int chLo, int numHi, int numLo); - - - //Function to generate Active Channel List (ACL)for each of the four readout partitions - //Of the Phos Module. The ACL register is 256x16 bit big. - // void GenerateACL(int startZ, int endZ, int startX, int endX, int mID, int acl[RCUS_PER_MODULE][256], unsigned long int afl[RCUS_PER_MODULE]); - - // void InitAltroCspMapping(); - - /* - inline int Geo2hid(int mod, int gain, int row, int col); - inline int Hid2mod(int hid); - inline int Hid2gain(int hid); - inline int Hid2row(int hid); - inline int Hid2col(int hid); - inline int ExtractHid(char *objName); - - inline void InitAltroMapping(int saveMapping); - inline void PrintHistMapInfo(char *objName); - */ - - /* - int Geo2hid(int mod, int gain, int row, int col); - int Hid2mod(int hid); - int Hid2gain(int hid); - int Hid2row(int hid); - int Hid2col(int hid); - int ExtractHid(char *objName); - - void InitAltroMapping(int saveMapping); - void PrintHistMapInfo(char *objName); - - FEE_CSP_MAP CSP_MAP[N_ALTROS][N_ALTROCHANNELS]; - ALTRO_GEO_MAP ALTRO_MAP[N_MODULES*N_RCUS*N_BRANCHES*N_FEECS*N_ALTROS*N_ALTROCHANNELS]; - int hdw2geo[N_MODULES][N_RCUS][N_BRANCHES][N_FEECS][N_ALTROS][N_ALTROCHANNELS]; - int geo2hdw[N_MODULES][N_GAINS][ N_XCOLUMNS_MOD][N_ZROWS_MOD]; - */ - - private: - - - }; #endif diff --git a/HLT/PHOS/AliHLTPHOSModuleCellAverageEnergyDataStruct.h b/HLT/PHOS/AliHLTPHOSModuleCellAverageEnergyDataStruct.h index 64dcc33d6bd..970c6d2d50e 100644 --- a/HLT/PHOS/AliHLTPHOSModuleCellAverageEnergyDataStruct.h +++ b/HLT/PHOS/AliHLTPHOSModuleCellAverageEnergyDataStruct.h @@ -16,13 +16,16 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -#include "AliHLTPHOSCommonDefs.h" + +//#include "AliHLTPHOSCommonDefs.h" +#include "AliHLTPHOSConstants.h" +#include "AliHLTPHOSValidCellDataStruct.h" struct AliHLTPHOSModuleCellAverageEnergyDataStruct { AliHLTUInt8_t fModuleID; - AliHLTPHOSValidCellDataStruct fValidData[N_MODULES*N_ROWS_MOD*N_COLUMNS_MOD*N_GAINS]; - Double_t fAverageEnergies[N_ROWS_MOD][N_COLUMNS_MOD][N_GAINS]; + AliHLTPHOSValidCellDataStruct fValidData[N_MODULES*N_ZROWS_MOD*N_XCOLUMNS_MOD*N_GAINS]; + Double_t fAverageEnergies[N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; }; diff --git a/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.cxx b/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.cxx index 3af821beb5f..bc540e26700 100644 --- a/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.cxx +++ b/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.cxx @@ -26,10 +26,13 @@ UInt_t AliHLTPHOSPhysicsAnalyzerSpectrumComponent::fgCount = 0; AliHLTPHOSPhysicsAnalyzerSpectrumComponent gAliHLTPHOSPhysicsAnalyzerSpectrumComponent; -AliHLTPHOSPhysicsAnalyzerSpectrumComponent::AliHLTPHOSPhysicsAnalyzerSpectrumComponent():AliHLTPHOSBase(), AliHLTProcessor(), fAnalyzerPtr(0), +// removed by PTH AliHLTPHOSPhysicsAnalyzerSpectrumComponent::AliHLTPHOSPhysicsAnalyzerSpectrumComponent():AliHLTPHOSBase(), AliHLTProcessor(), fAnalyzerPtr(0), +// fPeakFitter(0), fRootHistPtr(0), +// fWriteInterval(0) + +AliHLTPHOSPhysicsAnalyzerSpectrumComponent::AliHLTPHOSPhysicsAnalyzerSpectrumComponent():AliHLTPHOSProcessor(), fAnalyzerPtr(0), // added by PTH fPeakFitter(0), fRootHistPtr(0), fWriteInterval(0) - { //Constructor } diff --git a/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.h b/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.h index 41dcc210692..89a47241ae3 100644 --- a/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.h +++ b/HLT/PHOS/AliHLTPHOSPhysicsAnalyzerSpectrumComponent.h @@ -5,7 +5,8 @@ #ifndef ALIHLTPHOSPHYSICSANALYZERSPECTRUMCOMPONENT_H #define ALIHLTPHOSPHYSICSANALYZERSPECTRUMCOMPONENT_H -#include "AliHLTProcessor.h" +// removed PTH#include "AliHLTProcessor.h" +#include "AliHLTPHOSProcessor.h" // added by PTH #include "AliHLTPHOSBase.h" class TH1F; @@ -19,7 +20,8 @@ class TFile; struct AliHLTPHOSClusterDataStruct; -class AliHLTPHOSPhysicsAnalyzerSpectrumComponent: public AliHLTPHOSBase, public AliHLTProcessor +// PTH class AliHLTPHOSPhysicsAnalyzerSpectrumComponent: public AliHLTPHOSBase, public AliHLTProcessor +class AliHLTPHOSPhysicsAnalyzerSpectrumComponent: public AliHLTPHOSProcessor // added by PTH { public: diff --git a/HLT/PHOS/AliHLTPHOSProcessor.cxx b/HLT/PHOS/AliHLTPHOSProcessor.cxx index 821d030b810..759f2fe8888 100644 --- a/HLT/PHOS/AliHLTPHOSProcessor.cxx +++ b/HLT/PHOS/AliHLTPHOSProcessor.cxx @@ -10,6 +10,7 @@ AliHLTPHOSProcessor::AliHLTPHOSProcessor():AliHLTProcessor(), AliHLTPHOSBase(), } + AliHLTPHOSProcessor::~AliHLTPHOSProcessor() { diff --git a/HLT/PHOS/AliHLTPHOSProcessor.h b/HLT/PHOS/AliHLTPHOSProcessor.h index af3a711918f..2322c3bd459 100644 --- a/HLT/PHOS/AliHLTPHOSProcessor.h +++ b/HLT/PHOS/AliHLTPHOSProcessor.h @@ -4,11 +4,13 @@ #include "AliHLTProcessor.h" #include "AliHLTPHOSBase.h" #include "AliHLTPHOSDefinitions.h" +#include "AliHLTDataTypes.h" using namespace PhosHLTConst; class AliHLTPHOSProcessor:public AliHLTProcessor, public AliHLTPHOSBase { + public: AliHLTPHOSProcessor(); virtual ~AliHLTPHOSProcessor(); diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzer.cxx b/HLT/PHOS/AliHLTPHOSRawAnalyzer.cxx index e1f2df74313..176f19ba949 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzer.cxx +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzer.cxx @@ -26,15 +26,9 @@ AliHLTPHOSRawAnalyzer:: AliHLTPHOSRawAnalyzer(): AliHLTPHOSBase(), fIntDataPtr(0 AliHLTPHOSRawAnalyzer::~AliHLTPHOSRawAnalyzer() { - + delete[] fIntDataPtr; } -/* -AliHLTPHOSRawAnalyzer::AliHLTPHOSRawAnalyzer(AliHLTPHOSRawAnalyzer const&):fIntDataPtr(0), fSampleFrequency(10), fTau(2), fDTof(99999), fDAmpl(99999), fStartIndex(0) -{ - -} -*/ /** @@ -177,8 +171,6 @@ AliHLTPHOSRawAnalyzer::SetAVector(Double_t *aVector, Int_t size) cout <<"ERROR: AliHLTPHOSRawAnalyzer::SetAVector: You cannot set the peakfindervector here, must be set in derived class peakfinder"<SetData(fAltroDataPtr->fData); fAnalyzerPtr->Evaluate(0, fAltroDataPtr->fDataSize -2); - fOutPtr->fValidData[tmpChannelCnt].fZ = fMapperPtr->hw2geomapPtr[fAltroDataPtr->fHadd].row; - fOutPtr->fValidData[tmpChannelCnt].fX = fMapperPtr->hw2geomapPtr[fAltroDataPtr->fHadd].col; + fOutPtr->fValidData[tmpChannelCnt].fZ = fMapperPtr->hw2geomapPtr[fAltroDataPtr->fHadd].zRow; + fOutPtr->fValidData[tmpChannelCnt].fX = fMapperPtr->hw2geomapPtr[fAltroDataPtr->fHadd].xCol; fOutPtr->fValidData[tmpChannelCnt].fGain = fMapperPtr->hw2geomapPtr[fAltroDataPtr->fHadd].gain; fOutPtr->fValidData[tmpChannelCnt].fEnergy = (float)fAnalyzerPtr->GetEnergy(); fOutPtr->fValidData[tmpChannelCnt].fTime = (float)fAnalyzerPtr->GetTiming(); diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx index a88af3dcc22..036b0264bd7 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx @@ -15,19 +15,19 @@ #include "AliHLTPHOSRawAnalyzerCrude.h" -#include +//#include -using std::cout; -using std::endl; -ClassImp(AliHLTPHOSRawAnalyzerCrude) +//using std::cout; +//using std::endl; +//ClassImp(AliHLTPHOSRawAnalyzerCrude) -//____________________________________________________________________________ -AliHLTPHOSRawAnalyzerCrude::AliHLTPHOSRawAnalyzerCrude(const AliHLTPHOSRawAnalyzerCrude&):AliHLTPHOSRawAnalyzer() -{ -} +//AliHLTPHOSRawAnalyzerCrude::AliHLTPHOSRawAnalyzerCrude(const AliHLTPHOSRawAnalyzerCrude&):AliHLTPHOSRawAnalyzer() +//{ +// +//} /** * The AliHLTPHOSPeakfinder class is the class for extracting the basic signal parameters @@ -50,6 +50,7 @@ AliHLTPHOSRawAnalyzerCrude::~AliHLTPHOSRawAnalyzerCrude() + /** * Extraction of timing and energy using Crude estimate. * The. The parameters "start" and "length" defines a sub array of the data array diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h index 986737f84a9..dd37ba6d3e7 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h @@ -5,7 +5,6 @@ #include "AliHLTPHOSRawAnalyzer.h" - /* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ @@ -14,16 +13,17 @@ class AliHLTPHOSRawAnalyzerCrude : public AliHLTPHOSRawAnalyzer { public: AliHLTPHOSRawAnalyzerCrude(); - AliHLTPHOSRawAnalyzerCrude(const AliHLTPHOSRawAnalyzerCrude & ); - AliHLTPHOSRawAnalyzerCrude & operator = (const AliHLTPHOSRawAnalyzerCrude) - { - return *this; - } + + // AliHLTPHOSRawAnalyzerCrude(const AliHLTPHOSRawAnalyzerCrude & ); + // AliHLTPHOSRawAnalyzerCrude & operator = (const AliHLTPHOSRawAnalyzerCrude) + // { + // return *this; + // } virtual ~AliHLTPHOSRawAnalyzerCrude(); virtual void Evaluate(int start = 0, int lenght = 100); private: - ClassDef(AliHLTPHOSRawAnalyzerCrude, 2) + // ClassDef(AliHLTPHOSRawAnalyzerCrude, 2) }; diff --git a/HLT/PHOS/AliHLTPHOSRcuChannelDataStruct.h b/HLT/PHOS/AliHLTPHOSRcuChannelDataStruct.h index 729356e79bf..a2cdc91e999 100644 --- a/HLT/PHOS/AliHLTPHOSRcuChannelDataStruct.h +++ b/HLT/PHOS/AliHLTPHOSRcuChannelDataStruct.h @@ -1,18 +1,21 @@ #ifndef ALIHLTPHOSRCUCHANNELDATASTRUCT_H #define ALIHLTPHOSRCUCHANNELDATASTRUCT_H -#include "AliHLTPHOSCommonDefs.h" +//#include "AliHLTPHOSCommonDefs.h" #include "AliHLTPHOSValidChannelDataStruct.h" +#include "AliHLTPHOSConstants.h" + +using namespace PhosHLTConst; struct AliHLTPHOSRcuChannelDataStruct { AliHLTUInt32_t fNValidChannels; - // AliHLTUInt32_t fMaxValidChannels; AliHLTUInt8_t fModuleID; AliHLTUInt8_t fRcuX; AliHLTUInt8_t fRcuZ; // AliHLTPHOSValidChannelDataStruct fValidData[N_ROWS_RCU*N_COLUMNS_RCU*N_GAINS]; - AliHLTPHOSValidChannelDataStruct fValidData[512]; + // AliHLTPHOSValidChannelDataStruct fValidData[512]; + AliHLTPHOSValidChannelDataStruct fValidData[N_ZROWS_RCU*N_XCOLUMNS_RCU*N_GAINS]; // AliHLTUInt16_t fBuffer[(ALTRO_MAX_SAMPLES+2)*N_ZROWS_RCU*N_XCOLUMNS_RCU*N_GAINS]; diff --git a/HLT/PHOS/AliHLTPHOSValidChannelDataStruct.h b/HLT/PHOS/AliHLTPHOSValidChannelDataStruct.h index 9a0314ad21e..90d6a8caedc 100644 --- a/HLT/PHOS/AliHLTPHOSValidChannelDataStruct.h +++ b/HLT/PHOS/AliHLTPHOSValidChannelDataStruct.h @@ -25,9 +25,14 @@ struct AliHLTPHOSValidChannelDataStruct AliHLTUInt8_t fZ; AliHLTUInt8_t fX; AliHLTUInt8_t fGain; - AliHLTUInt16_t fNSamples; + // AliHLTUInt16_t fNSamples; + AliHLTUInt16_t fDataSize; // AliHLTUInt16_t fChannelData[ALTRO_MAX_SAMPLES]; - Float_t fChannelData[350]; + // Float_t fChannelData[350]; + // UInt_t fChannelData[1024]; + UInt_t fChannelData[200]; + // UInt_t *fChannelData; + }; diff --git a/HLT/PHOS/Makefile.am b/HLT/PHOS/Makefile.am index b1e17785d36..7f569b120db 100644 --- a/HLT/PHOS/Makefile.am +++ b/HLT/PHOS/Makefile.am @@ -48,6 +48,7 @@ libAliHLTPHOS_la_SOURCES = AliHLTPHOSPulseGenerator.cxx \ AliHLTAltroBunch.cxx \ AliHLTPHOSMapper.cxx \ AliHLTPHOSRcuProcessor.cxx \ + AliHLTPHOSDDLDecoderComponent.cxx \ AliHLTPHOSBase.cxx @@ -55,7 +56,6 @@ libAliHLTPHOS_la_SOURCES = AliHLTPHOSPulseGenerator.cxx \ # class header files, the link definition for the root dictionary # will be created from the names of the header files CLASS_HDRS = AliHLTPHOSPulseGenerator.h \ - AliHLTPHOSRawAnalyzer.h \ AliHLTPHOSRawAnalyzerPeakFinder.h \ AliHLTPHOSRawAnalyzerCrude.h \ AliHLTPHOSRawAnalyzerKLevel.h \ @@ -86,10 +86,12 @@ CLASS_HDRS = AliHLTPHOSPulseGenerator.h \ AliHLTPHOSMapper.h \ AliHLTPHOSRcuProcessor.h \ AliHLTPHOSBase.h \ + AliHLTPHOSDDLDecoderComponent.h \ AliHLTPHOSMapper.h pkginclude_HEADERS = $(CLASS_HDRS) \ AliHLTPHOSCommonDefs.h \ + AliHLTPHOSRawAnalyzer.h \ AliHLTPHOSDefinitions.h \ AliHLTPHOSModuleCellEnergyDataStruct.h\ AliHLTPHOSRcuCellEnergyDataStruct.h \ diff --git a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.cxx b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.cxx index b74627806b9..57a146be9ad 100644 --- a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.cxx +++ b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.cxx @@ -110,7 +110,7 @@ AliHLTPHOSOnlineDisplay::InitDisplay() AddFrame(fTab, fL1); MapSubwindows(); Resize(); - SetWindowName("online display"); + SetWindowName("IFRAX"); MapWindow(); MoveResize(100,100,1200,1000); } diff --git a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.h b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.h index 37dbe7164ae..eaae839bd6e 100644 --- a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.h +++ b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplay.h @@ -4,6 +4,7 @@ /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ + #include "HOMERData.h" #include "HOMERReader.h" #include "HOMERWriter.h" diff --git a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.cxx b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.cxx index ad5b5a84bb0..e8697ce952b 100644 --- a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.cxx +++ b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.cxx @@ -62,7 +62,7 @@ AliHLTPHOSOnlineDisplayRawTab::ReadBlockData(HOMERReader *homerReaderPtr) { tmpz = rcuChannelDataPtr->fValidData[ch].fZ; tmpx = rcuChannelDataPtr->fValidData[ch].fX; - tmpSampleCnt = rcuChannelDataPtr->fValidData[ch].fNSamples; + tmpSampleCnt = rcuChannelDataPtr->fValidData[ch].fDataSize -2; // fgChannelDataPlotPtr[tmpz][tmpx]->SetFillColor(3); @@ -74,10 +74,13 @@ AliHLTPHOSOnlineDisplayRawTab::ReadBlockData(HOMERReader *homerReaderPtr) { fgChannelDataPlotPtr[tmpz][tmpx]->SetBinContent(sample, rcuChannelDataPtr->fValidData[ch].fChannelData[sample]); } + } } } + blk = homerReaderPtr->FindBlockNdx("ATADNAHC","SOHP", 0xeFFFFFFF, blk+1); + } } @@ -111,9 +114,11 @@ AliHLTPHOSOnlineDisplayRawTab::InitDisplay(TGTab *tabPtr) { for(int x = 0; x < N_XCOLUMNS_RCU; x ++) { - sprintf(tmpHistoName, "blablaz%d x%d",z, x); - fgChannelDataPlotPtr[z][x] = new TH1D(tmpHistoName, tmpHistoName, 300, 0, 299); - fgChannelDataPlotPtr[z][x]->SetMaximum(MAX_BIN_VALUE); + sprintf(tmpHistoName, "row %d column %d",z, x); + // fgChannelDataPlotPtr[z][x] = new TH1D(tmpHistoName, tmpHistoName, 300, 0, 299); + fgChannelDataPlotPtr[z][x] = new AliHLTPHOSTH1D(tmpHistoName, tmpHistoName, 100, 0, 100); + // fgChannelDataPlotPtr[z][x]->SetMaximum(MAX_BIN_VALUE); + fgChannelDataPlotPtr[z][x]->SetMaximum(1023); fgChannelDataPlotPtr[z][x]->Reset(); } } @@ -140,17 +145,51 @@ AliHLTPHOSOnlineDisplayRawTab::UpdateDisplay() { fgTestCanvasPtr = new TCanvas("TEST", "testcanvas", 1200, 1000); + int startZ = 25; + int endZ = 31; + int startX = 20; + int endX = 27; + + int nRows = endZ - startZ; + int nCols = endX - startX; + + + // int start = 0; + // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0); + cout <<"nRows = "<< nRows << endl; + cout <<"nCols = "<< nCols << endl; + /* - fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0); + fgTestCanvasPtr->Divide(nCols, nRows, 0, 0); + // fgTestCanvasPtr->Divide(nRows, nCols, 0, 0); + + + for(int z = startZ; z < endZ; z ++) + { + for(int x = startX; x < endX; x ++) + { + cout << "z = "<< z << " x= " << x<cd(x*N_ZROWS_RCU +z +1); + // fgTestCanvasPtr->cd((z - startZ)*nCols +x +1); + fgTestCanvasPtr->cd((z - startZ)*nCols +x); + // fgTestCanvasPtr->cd( z*nCols +x); + + cout << "(z - startZ)*nCols +x ="<< (z - startZ)*nCols +x <Draw(); + } + } + */ - for(int z = 0; z < N_ZROWS_RCU; z ++) + + /* + for(int z = 0; z < nRows; z ++) { - for(int x = 0; x < N_XCOLUMNS_RCU; x ++) + for(int x = 0; x < nCols; x ++) { // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1); - fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x + 1); - + fgTestCanvasPtr->cd(z*nCols +x + 1); fgChannelDataPlotPtr[z][x]->Draw(); } } @@ -158,19 +197,49 @@ AliHLTPHOSOnlineDisplayRawTab::UpdateDisplay() + + // fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0); + + /* + for(int z = 0; z < N_ZROWS_RCU; z ++) + { + for(int x = 0; x < N_XCOLUMNS_RCU; x ++) + { + // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1); + + fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x + 1); + + // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1); + + fgChannelDataPlotPtr[z][x]->Draw(); + } + } + */ + + + fgTestCanvasPtr->Divide(N_XCOLUMNS_RCU, N_ZROWS_RCU, 0, 0); + for(int z = 0; z < N_ZROWS_RCU; z ++) { for(int x = 0; x < N_XCOLUMNS_RCU; x ++) { // fgTestCanvasPtr->cd(x*N_ZROWS_RCU +z + 1); - fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x + 1); - + + fgTestCanvasPtr->cd(z*N_XCOLUMNS_RCU +x +1); + + // fgTestCanvasPtr->cd(z*N_ZROWS_RCU +x + 1); + fgChannelDataPlotPtr[z][x]->Draw(); } } + + + + fgTestCanvasPtr->Update(); - } + + diff --git a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.h b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.h index d602792c6b4..63c0d4b8dcd 100644 --- a/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.h +++ b/HLT/PHOS/OnlineDisplay/AliHLTPHOSOnlineDisplayRawTab.h @@ -8,6 +8,7 @@ #include #include #include "AliHLTDataTypes.h" +#include "AliHLTPHOSTH1D.h" #include "AliHLTPHOSConstants.h" using namespace PhosHLTConst; @@ -38,7 +39,8 @@ class AliHLTPHOSOnlineDisplayRawTab : public AliHLTPHOSOnlineDisplayTab TH2D *fgLegoPlotLGPtr; TH2D *fgLegoPlotHGPtr; AliHLTPHOSGetEventButton* fgEventButtPtr; - TH1D *fgChannelDataPlotPtr[N_ZROWS_RCU][N_XCOLUMNS_RCU]; + // TH1D *fgChannelDataPlotPtr[N_ZROWS_RCU][N_XCOLUMNS_RCU]; + AliHLTPHOSTH1D *fgChannelDataPlotPtr[N_ZROWS_RCU][N_XCOLUMNS_RCU]; }; diff --git a/HLT/PHOS/OnlineDisplay/Makefile b/HLT/PHOS/OnlineDisplay/Makefile index eb5fd41915f..b245503d623 100755 --- a/HLT/PHOS/OnlineDisplay/Makefile +++ b/HLT/PHOS/OnlineDisplay/Makefile @@ -31,6 +31,10 @@ GETEVENTBUTTONO =AliHLTPHOSGetEventButton.$(ObjSuf) GETEVENTBUTTONS =AliHLTPHOSGetEventButton.$(SrcSuf) GETEVENTBUTTONH =AliHLTPHOSGetEventButton.$(HeadSuf) +ALIHLTPHOSTH1DO =AliHLTPHOSTH1D.$(ObjSuf) +ALIHLTPHOSTH1DS =AliHLTPHOSTH1D.$(SrcSuf) +ALIHLTPHOSTH1DH =AliHLTPHOSTH1D.$(HeadSuf) + ALIHLTPHOSONLINEDISPLAYO =AliHLTPHOSOnlineDisplay.$(ObjSuf) ALIHLTPHOSONLINEDISPLAYS =AliHLTPHOSOnlineDisplay.$(SrcSuf) ALIHLTPHOSONLINEDISPLAYH =AliHLTPHOSOnlineDisplay.$(HeadSuf) @@ -52,7 +56,8 @@ ALIHLTPHOSONLINEDISPLAYCALIBTABS =AliHLTPHOSOnlineDisplayCalibTab.$(SrcSuf) ALIHLTPHOSONLINEDISPLAYCALIBTABH =AliHLTPHOSOnlineDisplayCalibTab.$(HeadSuf) OBJS = $(MAINO) $(ALIHLTPHOSONLINEDISPLAYO) $(ALIHLTPHOSONLINEDISPLAYTABO) \ - $(ALIHLTPHOSONLINEDISPLAYEVENTTABO) $(ALIHLTPHOSONLINEDISPLAYRAWTABO) $(ALIHLTPHOSONLINEDISPLAYCALIBTABO) $(GETEVENTBUTTONO) + $(ALIHLTPHOSONLINEDISPLAYEVENTTABO) $(ALIHLTPHOSONLINEDISPLAYRAWTABO) $(ALIHLTPHOSONLINEDISPLAYCALIBTABO) $(GETEVENTBUTTONO)\ + $(ALIHLTPHOSTH1DO) pftest:$(OBJS) @@ -64,6 +69,11 @@ $(MAINO):$(MAINS) $(ALIHLTPHOSONLINEDISPLAYO):$(ALIHLTPHOSONLINEDISPLAYS) $(ALIHLTPHOSONLINEDISPLAYH) g++ -g -I$(ROOTSYS)/include -I$(ALIHLTPHOSINCLUDE) -I$(HOMERINCLUDE) -I$(ALIHLTINCLUDE) -c $(ALIHLTPHOSONLINEDISPLAYS) + +$(ALIHLTPHOSTH1DO):$(ALIHLTPHOSTH1DS) $(ALIHLTPHOSTH1DH) + g++ -g -I$(ROOTSYS)/include -I$(ALIHLTPHOSINCLUDE) -I$(HOMERINCLUDE) -I$(ALIHLTINCLUDE) -c $(ALIHLTPHOSTH1DS) + + $(ALIHLTPHOSONLINEDISPLAYTABO):$(ALIHLTPHOSONLINEDISPLAYTABS) $(ALIHLTPHOSONLINEDISPLAYTABH) g++ -g -I$(ROOTSYS)/include -I$(ALIHLTPHOSINCLUDE) -I$(HOMERINCLUDE) -I$(ALIHLTINCLUDE) -c $(ALIHLTPHOSONLINEDISPLAYTABS) diff --git a/HLT/PHOS/PeakFinderTest.cxx b/HLT/PHOS/PeakFinderTest.cxx index ed88e0edbc1..ab2464b61b0 100644 --- a/HLT/PHOS/PeakFinderTest.cxx +++ b/HLT/PHOS/PeakFinderTest.cxx @@ -62,7 +62,7 @@ int main() } - tSystError = tSystError*pow(10, 9); //to give systematic error of timing in nanoseconds + tSystError = tSystError*pow((double)10, (double)9); //to give systematic error of timing in nanoseconds aSystError = aSystError*100; //to give systematic error of amplitude in percent diff --git a/HLT/PHOS/testDecoder.cxx b/HLT/PHOS/testDecoder.cxx index 33088025f01..9a2d89f2b2d 100644 --- a/HLT/PHOS/testDecoder.cxx +++ b/HLT/PHOS/testDecoder.cxx @@ -10,17 +10,17 @@ using namespace std; -///#define N_LOOPS 1000 + int main(int argc, const char** argv) { - int n_loops = 1000000; + int n_loops = 1; clock_t start; clock_t end; AliHLTAltroData altrodata; - AliHLTAltroBunch altrobunch; + AliHLTAltroBunch *altrobunchPtr = new AliHLTAltroBunch; ifstream fin; int length; @@ -44,21 +44,42 @@ int main(int argc, const char** argv) { decoder->SetMemory((UChar_t*)dataPtr, length); decoder->Decode(); + while(decoder->NextChannel(&altrodata) == true) { - // altrodata.Reset(); - // decoder->PrintInfo(altrodata, altrodata.fDataSize, 4); - - // cout << endl; - - - - while( altrodata.NextBunch(altrobunch) == true) + // printf("\n\n"); + altrodata.Reset(); + + if( altrodata.fDataSize != 0 ) { - // cout << "altrobunch.fDataSize = " << altrobunch.fBunchSize << endl; - // cout << "altrobunch. fEndTimeBin = " << altrobunch. fEndTimeBin << endl; + + // printf("\n\n"); + Double_t tmpMax = 0; + + for(int i = 0; i < altrodata.fDataSize -3 ; i++) + { + if(altrodata.fData[i] > tmpMax) + { + tmpMax = altrodata.fData[i]; + } + } + + + // cout <<"tmpMax = "<< tmpMax< 100) + { + cout <<"tmpMax = "<< tmpMax<PrintInfo(altrodata, altrodata.fDataSize, 4); + } + + while( altrodata.NextBunch(altrobunchPtr) == true) + { + // cout << "altrobunch.fDataSize = " << altrobunchPtr->fBunchSize << endl; + // cout << "altrobunch.fEndTimeBin = " << altrobunchPtr->fEndTimeBin << endl; + } + // printf("\n\n"); } - } // end = clock(); -- 2.43.0