From 04751caa40c6de86e23cf95e8b7e34f6cb61ff0c Mon Sep 17 00:00:00 2001 From: phille Date: Tue, 6 May 2008 22:18:34 +0000 Subject: [PATCH] 1) Cosmetics, pluss 2) first iteration in phasing out AliHLTPHOSProcessor. --- HLT/PHOS/AliHLTPHOSBase.h | 3 +- .../AliHLTPHOSClusterAnalyserComponent.cxx | 6 +- HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx | 2 +- HLT/PHOS/AliHLTPHOSConstants.h | 5 +- HLT/PHOS/AliHLTPHOSESDMakerComponent.cxx | 6 +- HLT/PHOS/AliHLTPHOSProcessor.cxx | 15 +-- HLT/PHOS/AliHLTPHOSProcessor.h | 10 +- HLT/PHOS/AliHLTPHOSRawAnalyzer.cxx | 112 ++++++++++++++---- HLT/PHOS/AliHLTPHOSRawAnalyzer.h | 39 +++++- HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.cxx | 66 +++++++++-- HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h | 5 + HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx | 47 ++++++-- HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h | 11 +- HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.cxx | 26 ++-- HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.h | 1 + HLT/PHOS/AliHLTPHOSRcuHistogramProducer.cxx | 5 +- HLT/PHOS/AliHLTPHOSRcuHistogramProducer.h | 2 + HLT/PHOS/AliHLTPHOSRcuProcessor.cxx | 95 ++++----------- HLT/PHOS/AliHLTPHOSRcuProcessor.h | 27 +++-- .../AliHLTPHOSOnlineDisplayEventTab.cxx | 93 ++++----------- HLT/PHOS/hltAltroConfig.txt | 5 +- 21 files changed, 317 insertions(+), 264 deletions(-) diff --git a/HLT/PHOS/AliHLTPHOSBase.h b/HLT/PHOS/AliHLTPHOSBase.h index 1fff3a6bcc5..c79c4b9ed33 100644 --- a/HLT/PHOS/AliHLTPHOSBase.h +++ b/HLT/PHOS/AliHLTPHOSBase.h @@ -50,7 +50,7 @@ class AliHLTPHOSBase : public AliHLTPHOSConfig, public AliHLTPHOSAltroConfig template void DumpData(T *array, int N, int nPerLine) { - cout << "DumpData N= " << N < diff --git a/HLT/PHOS/AliHLTPHOSClusterAnalyserComponent.cxx b/HLT/PHOS/AliHLTPHOSClusterAnalyserComponent.cxx index 8113a11ef69..cf86accd4ad 100644 --- a/HLT/PHOS/AliHLTPHOSClusterAnalyserComponent.cxx +++ b/HLT/PHOS/AliHLTPHOSClusterAnalyserComponent.cxx @@ -185,9 +185,9 @@ AliHLTPHOSClusterAnalyserComponent::DoEvent(const AliHLTComponentEventData& evtD } fPhosEventCount++; - if(fPrintInfo == kTRUE) + if(fPrintInfoModule == kTRUE) { - if(fPhosEventCount%fPrintInfoFrequncy == 0) + if(fPhosEventCount%fPrintInfoFrequncyModule == 0) { Logging( kHLTLogInfo, __FILE__ , "Clusters analyzed", "Has analyzed %lu for this event", nClusters); } @@ -204,7 +204,7 @@ AliHLTPHOSClusterAnalyserComponent::DoInit(int argc, const char** argv ) //See headerfile for documentation fClusterAnalyserPtr = new AliHLTPHOSClusterAnalyser(); - ScanArguments(argc, argv); + ScanArgumentsModule(argc, argv); for (int i = 0; i < argc; i++) { if(!strcmp("-dodeconvolution", argv[i])) diff --git a/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx b/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx index 51b6e240a8d..0d1a0de8779 100644 --- a/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx +++ b/HLT/PHOS/AliHLTPHOSClusterizerComponent.cxx @@ -243,7 +243,7 @@ AliHLTPHOSClusterizerComponent::DoInit(int argc, const char** argv ) fNoCrazyness = false; // - ScanArguments(argc, argv); + ScanArgumentsModule(argc, argv); for (int i = 0; i < argc; i++) { if(!strcmp("-digitthreshold", argv[i])) diff --git a/HLT/PHOS/AliHLTPHOSConstants.h b/HLT/PHOS/AliHLTPHOSConstants.h index 9b3f2bfd42d..c68a07de16f 100644 --- a/HLT/PHOS/AliHLTPHOSConstants.h +++ b/HLT/PHOS/AliHLTPHOSConstants.h @@ -28,7 +28,8 @@ namespace PhosHLTConst const int LOW_GAIN = 0; const int ALTRO_MAX_SAMPLES = 1008; /**SetESDEvent(fESDEventPtr); // - ScanArguments(argc, argv); + ScanArgumentsModule(argc, argv); for (int i = 0; i < argc; i++) { diff --git a/HLT/PHOS/AliHLTPHOSProcessor.cxx b/HLT/PHOS/AliHLTPHOSProcessor.cxx index 69d72d12147..1c6cec502d9 100644 --- a/HLT/PHOS/AliHLTPHOSProcessor.cxx +++ b/HLT/PHOS/AliHLTPHOSProcessor.cxx @@ -24,9 +24,9 @@ const AliHLTComponentDataType AliHLTPHOSProcessor::fgkInputDataTypes[]={kAliHLTV AliHLTPHOSProcessor::AliHLTPHOSProcessor():AliHLTProcessor(), AliHLTPHOSBase(), fPhosEventCount(0), - fModuleID(0), - fPrintInfo(0), - fPrintInfoFrequncy(1000), + fModuleID(2), + fPrintInfoModule(0), + fPrintInfoFrequncyModule(1000), fRunNumber(0) { ScanRunNumberFromFile(); @@ -114,9 +114,9 @@ AliHLTPHOSProcessor::IntToChar(int number) int -AliHLTPHOSProcessor::ScanArguments(int argc, const char** argv) +AliHLTPHOSProcessor::ScanArgumentsModule(int argc, const char** argv) { - fPrintInfo = kFALSE; + fPrintInfoModule = kFALSE; int iResult=0; TString argument=""; @@ -134,8 +134,8 @@ AliHLTPHOSProcessor::ScanArguments(int argc, const char** argv) if(i+1 <= argc) { argument=argv[i+1]; - fPrintInfoFrequncy = atoi(argv[i+1]); - fPrintInfo = kTRUE; + fPrintInfoFrequncyModule = atoi(argv[i+1]); + fPrintInfoModule = kTRUE; } else { @@ -146,3 +146,4 @@ AliHLTPHOSProcessor::ScanArguments(int argc, const char** argv) } return 0; } + diff --git a/HLT/PHOS/AliHLTPHOSProcessor.h b/HLT/PHOS/AliHLTPHOSProcessor.h index 14b9cf2e107..54ace1ad99c 100644 --- a/HLT/PHOS/AliHLTPHOSProcessor.h +++ b/HLT/PHOS/AliHLTPHOSProcessor.h @@ -23,6 +23,8 @@ class AliHLTPHOSProcessor:public AliHLTProcessor, public AliHLTPHOSBase virtual AliHLTComponentDataType GetOutputDataType() =0; virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier) =0; virtual AliHLTComponent* Spawn() = 0; + + char lineNumber[256]; const char *IntToChar(int number); /* @@ -35,11 +37,13 @@ class AliHLTPHOSProcessor:public AliHLTProcessor, public AliHLTPHOSBase protected: void ScanRunNumberFromFile(); - virtual int ScanArguments(int argc, const char** argv); + virtual int ScanArgumentsModule(int argc, const char** argv); int fPhosEventCount; /**(data); + + if(fDoCorrectBaselineUsingFirstFiveSamples == true) + { + CorrectBaselineUsingFirstFiveSamples(fIntDataPtr, length); + } + + // fIntDataPtr = data; + + } + + + /** * Set data array. Overrides data data array set in the constructor. **/ -void -AliHLTPHOSRawAnalyzer::SetData(const double *data) -{ - fFloatDataPtr = data; -} +// void +// //AliHLTPHOSRawAnalyzer::SetData(const double *data) +// AliHLTPHOSRawAnalyzer::SetData(double *data, const int length) +// { +// if(fDoCorrectBaselineUsingFirstFiveSamples == true) +// { +// CorrectBaselineUsingFirstFiveSamples(data, length); +// } + + +// fDoubleDataPtr = data; +// } diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzer.h b/HLT/PHOS/AliHLTPHOSRawAnalyzer.h index ef88f3e16d5..ce863209a62 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzer.h +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzer.h @@ -6,6 +6,7 @@ /* $Id$ */ + #include "AliHLTPHOSBase.h" class AliHLTPHOSRawAnalyzer: public AliHLTPHOSBase @@ -16,15 +17,27 @@ class AliHLTPHOSRawAnalyzer: public AliHLTPHOSBase virtual ~AliHLTPHOSRawAnalyzer(); AliHLTPHOSRawAnalyzer(double *dataPtr, double fs); - void BaselineCorrection(double *dataPtr, int N); + void SetCorrectBaselineUsingFirstFiveSamples(); + void CorrectBaselineUsingFirstFiveSamples(UInt_t *data, const int length); + // void CorrectBaselineUsingFirstFiveSamples(int *data, int length); + //void CorrectBaselineUsingFirstFiveSamples(double *data, int length); + + + // void BaselineCorrection(double *dataPtr, int N); void BaselineCorrection(double *dataPtr, double baselineValue); + int FindStartIndex(double treshold); float GetTiming() const; float GetEnergy() const; - void SetData(const double *data); - void SetData(const UInt_t *data); + // void SetData(const double *data); + void SetData(const UInt_t *data, const int length); + // void SetData(UInt_t *data, const int length); + // void SetData(double *data, const int length); + // void SetData(int *data, const int length); + + void SetSampleFreq(double freq); void SetStartIndex(int startIndex); void MakeInitialGuess(); @@ -32,13 +45,27 @@ class AliHLTPHOSRawAnalyzer: public AliHLTPHOSBase virtual void SetTVector(Double_t *tVector, Int_t size); virtual void SetAVector(Double_t *aVector, Int_t size); + virtual void Evaluate(Int_t start = 0, Int_t lenght = 100) = 0; + protected: + bool fDoCorrectBaselineUsingFirstFiveSamples; + // mutable Double_t *fFloatDataPtr; /**& outputBlocks ) { //comment + UInt_t offset = 0; UInt_t mysize = 0; UInt_t tSize = 0; @@ -186,7 +192,8 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData Int_t nSamples = 0; UInt_t nSelected = 0; UInt_t specification = 0; - + + for( ndx = 0; ndx < evtData.fBlockCnt; ndx++ ) { Int_t tmpChannelCnt = 0; @@ -200,9 +207,11 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData { continue; } + specification = specification|iter->fSpecification; + + fDecoderPtr->SetMemory(reinterpret_cast( iter->fPtr ), iter->fSize); + // fDecoderPtr->SetMemory(reinterpret_cast( iter->fPtr ), iter->fSize); - specification = specification|iter->fSpecification; - fDecoderPtr->SetMemory(reinterpret_cast( iter->fPtr ), iter->fSize); fDecoderPtr->Decode(); fOutPtr = (AliHLTPHOSRcuCellEnergyDataStruct*)outBPtr; fOutPtr->fRcuX = fRcuX; @@ -210,26 +219,41 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData fOutPtr->fModuleID =fModuleID; Reset(fOutPtr); rawDataBufferPos += (mysize)/sizeof(Int_t); - + while( fDecoderPtr->NextChannel(fAltroDataPtr) == true ) { nSamples = fAltroDataPtr->GetDataSize() - 2; + if(fDoCheckDataSize) { if(nSamples != fNTotalSamples) { + cout <<"processing event " << fPhosEventCount << endl;; + cout << "Wrong number of samples Expected "<< fNTotalSamples << " samples (assuming non zero supressed data) but recieved " << nSamples << endl; Logging( kHLTLogError, __FILE__ , "Wrong number of samples", "Expected %lu samples (assuming non zero supressed data) but recieved %lu", fNTotalSamples, nSamples); + fNCorruptedBlocks ++; + continue; } } - - crazyness = fSanityInspectorPtr->CheckInsanity(fAltroDataPtr->GetData(), fAltroDataPtr->GetDataSize() - 2); - fAnalyzerPtr->SetData(fAltroDataPtr->GetData()); - fAnalyzerPtr->Evaluate(0, fAltroDataPtr->GetDataSize() -2); + fNOKBlocks ++; + + if((fPhosEventCount%10 ==0) && fPhosEventCount !=0) + { + float percent = ((float)(100*fNCorruptedBlocks))/((float)(fNOKBlocks + fNCorruptedBlocks) ); + } + + crazyness = fSanityInspectorPtr->CheckInsanity((const UInt_t*)fAltroDataPtr->GetData(), (const Int_t)(fAltroDataPtr->GetDataSize() - 2)); + + fAnalyzerPtr->SetData(fAltroDataPtr->GetData(), fAltroDataPtr->GetDataSize() -2); + + fAnalyzerPtr->Evaluate(0, fAltroDataPtr->GetDataSize() -2); Int_t x = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fXCol; Int_t z = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fZRow; Int_t gain = fMapperPtr->fHw2geomapPtr[fAltroDataPtr->GetHadd()].fGain; + validCellPtr = &(fOutPtr->fValidData[x][z][gain]); + validCellPtr->fX = x; validCellPtr->fZ = z; validCellPtr->fGain = gain; @@ -238,15 +262,19 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData { baseline = fBaselines[validCellPtr->fX][validCellPtr->fZ][ validCellPtr->fGain]; } + baseline = 0; - + + validCellPtr->fEnergy = (float)fAnalyzerPtr->GetEnergy() - baseline; validCellPtr->fTime = (float)fAnalyzerPtr->GetTiming(); validCellPtr->fCrazyness = (int)crazyness; validCellPtr->fNSamples = nSamples; validCellPtr->fID = tmpChannelCnt; + validCellPtr->fData = rawDataBufferPos; const UInt_t *tmpData = fAltroDataPtr->GetData(); + // const int *tmpData = fAltroDataPtr->GetData(); if(fDoPushCellEnergies) { @@ -331,7 +359,8 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData tSize += mysize; outBPtr += mysize; } - + + if( tSize > size ) { Logging( kHLTLogFatal, "HLT::AliHLTPHOSRawAnalyzerComponent::DoEvent", "Too much data", @@ -339,18 +368,23 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData , tSize, size ); return EMSGSIZE; } - + } fPhosEventCount++; + + if(fPrintInfo == kTRUE) { + if(fPhosEventCount%fPrintInfoFrequncy == 0) { Logging(kHLTLogBenchmark, __FILE__ , IntToChar( __LINE__ ) , "Analyzing event %lu", fPhosEventCount); } - } + + + } return 0; }//end DoEvent @@ -360,6 +394,11 @@ AliHLTPHOSRawAnalyzerComponent::DoEvent( const AliHLTComponentEventData& evtData int AliHLTPHOSRawAnalyzerComponent::DoInit( int argc, const char** argv ) { + //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // fAnalyzerPtr->SetCorrectBaselineUsingFirstFiveSamples(); + //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + //See base class for documentation fSendChannelData = kFALSE; fPrintInfo = kFALSE; @@ -386,6 +425,7 @@ AliHLTPHOSRawAnalyzerComponent::DoInit( int argc, const char** argv ) fDigitMakerPtr->SetDigitThresholds(argv[i+1], nSigmas); SetSelectiveReadOutThresholds(argv[i+1], nSigmas); } + if(!strcmp("-baselinefile", argv[i])) { SetBaselines(argv[i+1]); diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h b/HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h index 2b8d68e0475..93dea5c8cc0 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h @@ -5,6 +5,7 @@ * See cxx source for full Copyright notice */ #include "AliHLTPHOSRcuProcessor.h" + class AliHLTPHOSRawAnalyzer; class AliHLTPHOSRcuCellEnergyDataStruct; class AliHLTPHOSMapper; @@ -82,6 +83,10 @@ class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor /** Should we check data size? */ Bool_t fDoCheckDataSize; //Added by OD + + unsigned long fNCorruptedBlocks; + unsigned long fNOKBlocks; + }; #endif diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx index cc3c3507af7..6fe902d6278 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.cxx @@ -18,11 +18,6 @@ //ClassImp(AliHLTPHOSRawAnalyzerCrude) -//AliHLTPHOSRawAnalyzerCrude::AliHLTPHOSRawAnalyzerCrude(const AliHLTPHOSRawAnalyzerCrude&):AliHLTPHOSRawAnalyzer() -//{ -// -//} - /** * The AliHLTPHOSPeakfinder class is the class for extracting the basic signal parameters * "timing" and "energy" from the PHOS raw data. Physical data will for a given readout channel be @@ -43,39 +38,65 @@ AliHLTPHOSRawAnalyzerCrude::~AliHLTPHOSRawAnalyzerCrude() } //end AliHLTPHOSRawAnalyzerCrude - - /** * Extraction of timing and energy using Crude estimate. * The. The parameters "start" and "length" defines a sub array of the data array * that will be used for the the fit. If start+length must not exeed the total length * of the Data array. "start" must be chosen as close as possible to t0. -* The baseline must also be subtracted. -* The length of "tVector" and "aVector" mus be equal to length. +* The baseline must also be subtracted. . * "index + length" must not exeed the length of the data array set in the constructor. * @param start the start index of the subarray of the data array. * @param length the number of samples to use starting from index **/ -//____________________________________________________________________________ +// //____________________________________________________________________________ +// void +// AliHLTPHOSRawAnalyzerCrude::Evaluate(int start, int length) +// { +// double tmpAmplitudeMax =0; +// double tmpTime = 0; + +// for(int i=start; i tmpAmplitudeMax && i > 5) +// { +// tmpAmplitudeMax = fIntDataPtr[i]; +// tmpTime = i; +// } +// } + +// fDAmpl = tmpAmplitudeMax; +// fDTof = tmpTime; + +// //thats all +// } //end Crude + + void AliHLTPHOSRawAnalyzerCrude::Evaluate(int start, int length) { + // cout << "AliHLTPHOSRawAnalyzerCrude::Evaluate TP0" << endl; + + //DumpData(T + + // DumpData(fDoubleDataPtr,50, 25); + double tmpAmplitudeMax =0; double tmpTime = 0; for(int i=start; i tmpAmplitudeMax && i > 5) if(fIntDataPtr[i] > tmpAmplitudeMax && i > 5) { + // tmpAmplitudeMax = fDoubleDataPtr[i]; tmpAmplitudeMax = fIntDataPtr[i]; tmpTime = i; } } - + + fDAmpl = tmpAmplitudeMax; fDTof = tmpTime; //thats all } //end Crude - - diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h index dd37ba6d3e7..8eb1574de8f 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzerCrude.h @@ -1,7 +1,5 @@ #ifndef ALIHLTPHOSRAWANALYZERCRUDE_H #define ALIHLTPHOSRAWANALYZERCRUDE_H -//#include -//#include "TObject.h" #include "AliHLTPHOSRawAnalyzer.h" @@ -13,18 +11,11 @@ class AliHLTPHOSRawAnalyzerCrude : public AliHLTPHOSRawAnalyzer { public: AliHLTPHOSRawAnalyzerCrude(); - - // AliHLTPHOSRawAnalyzerCrude(const AliHLTPHOSRawAnalyzerCrude & ); - // AliHLTPHOSRawAnalyzerCrude & operator = (const AliHLTPHOSRawAnalyzerCrude) - // { - // return *this; - // } - virtual ~AliHLTPHOSRawAnalyzerCrude(); virtual void Evaluate(int start = 0, int lenght = 100); private: // ClassDef(AliHLTPHOSRawAnalyzerCrude, 2) - }; +}; #endif diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.cxx b/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.cxx index b250a58c0b5..744021cd069 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.cxx +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.cxx @@ -16,6 +16,7 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ + #include "AliHLTPHOSRawAnalyzerPeakFinder.h" //#include #include @@ -27,12 +28,6 @@ using std::endl; ClassImp(AliHLTPHOSRawAnalyzerPeakFinder) - //AliHLTPHOSRawAnalyzerPeakFinder::AliHLTPHOSRawAnalyzerPeakFinder(const AliHLTPHOSRawAnalyzerPeakFinder&):AliHLTPHOSRawAnalyzer() , fTVectorPtr(0), fAVectorPtr(0), fTVectorSize(0), fAVectorSize(0) - //{ - - - //} - /** * The AliHLTPHOSPeakfinder class is the class for extracting the basic signal parameters @@ -103,17 +98,12 @@ AliHLTPHOSRawAnalyzerPeakFinder::Evaluate(Int_t /*start*/, Int_t length) fDAmpl = 0; Int_t tmpLength; - // cout << "AliHLTPHOSRawAnalyzerPeakFinder::Evaluate(), dumping data" << endl; - - // DumpData(fIntDataPtr, length, 16); - if(fTVectorPtr == 0 || fAVectorPtr == 0) { } else { - if(length < fTVectorSize) { tmpLength = length; @@ -125,23 +115,21 @@ AliHLTPHOSRawAnalyzerPeakFinder::Evaluate(Int_t /*start*/, Int_t length) for(int i=0; i < tmpLength; i++) { - // fDAmpl += fAVectorPtr[i]*fFloatDataPtr[i]; - fDAmpl += fAVectorPtr[i]*fIntDataPtr[i]; - + //fDAmpl += fAVectorPtr[i]*fIntDataPtr[i]; removed 18 april 2008 + fDAmpl += fAVectorPtr[i]*fDoubleDataPtr[i]; } for(int i=0; i < tmpLength; i++) { - // fDTof += fTVectorPtr[i]*fFloatDataPtr[i]; - fDTof += fTVectorPtr[i]*fIntDataPtr[i]; + // fDTof += fTVectorPtr[i]*fIntDataPtr[i]; removed 18 april 2008 + fDTof += fTVectorPtr[i]*fDoubleDataPtr[i]; } if(fDAmpl > 900) { + // Double_t tmpMax = MaxValue(const_cast(fIntDataPtr), tmpLength); removed 18 april 2008 + double tmpMax = MaxValue(fDoubleDataPtr, tmpLength); - Double_t tmpMax = MaxValue(const_cast(fIntDataPtr), tmpLength); - - if(tmpMax == 1023) { fDAmpl = tmpMax; diff --git a/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.h b/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.h index c7042ccb277..cdd3750c310 100644 --- a/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.h +++ b/HLT/PHOS/AliHLTPHOSRawAnalyzerPeakFinder.h @@ -8,6 +8,7 @@ #include "AliHLTPHOSRawAnalyzer.h" //#include "AliHLTPHOSBase.h" + class AliHLTPHOSRawAnalyzerPeakFinder : public AliHLTPHOSRawAnalyzer { public: diff --git a/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.cxx b/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.cxx index 53ad9971d95..c05c35182e0 100644 --- a/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.cxx +++ b/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.cxx @@ -49,11 +49,12 @@ AliHLTPHOSRcuHistogramProducer:: AliHLTPHOSRcuHistogramProducer(): AliHLTPHOSBa AliHLTPHOSRcuHistogramProducer::AliHLTPHOSRcuHistogramProducer(AliHLTUInt8_t moduleID, AliHLTUInt8_t rcuX, AliHLTUInt8_t rcuZ): AliHLTPHOSBase(), - fCellAccEnergy(), + fCellAccEnergy(), fModuleID(moduleID), fRcuX(rcuX), fRcuZ(rcuZ) { + //Se header file for documentation char *tmp = getenv("HOME"); if(tmp == 0) @@ -69,7 +70,7 @@ AliHLTPHOSRcuHistogramProducer::AliHLTPHOSRcuHistogramProducer(AliHLTUInt8_t mod } -AliHLTPHOSRcuHistogramProducer::~ AliHLTPHOSRcuHistogramProducer() +AliHLTPHOSRcuHistogramProducer::~AliHLTPHOSRcuHistogramProducer() { //Destructor } diff --git a/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.h b/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.h index 59e6867601b..15a20dd52c1 100644 --- a/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.h +++ b/HLT/PHOS/AliHLTPHOSRcuHistogramProducer.h @@ -59,6 +59,8 @@ class AliHLTPHOSRcuHistogramProducer : public AliHLTPHOSBase TH2D *fDeadChannelMapHistogramPtrs[N_GAINS]; Float_t fEnergyAverageValues[N_XCOLUMNS_RCU][N_ZROWS_RCU][N_GAINS]; /**(fkEquippmentID); ref = id; } +*/ -int -AliHLTPHOSRcuProcessor::ScanArguments(int argc, const char** argv) -{ - fPrintInfo = kFALSE; - int iResult=0; - TString argument=""; - for(int i=0; i=0; i++) - { - argument=argv[i]; - - if (argument.IsNull()) - { - continue; - } - - if (argument.CompareTo("-equipmentID") == 0) - { - cout << "AliHLTPHOSProcessor:DoInit argument = -equipmentID " <"); - iResult = -3; - } - return iResult; -} - -void -AliHLTPHOSRcuProcessor::SetCoordinates(AliHLTUInt16_t /*equippmentID*/) + //void + //AliHLTPHOSRcuProcessor::SetCoordinates(AliHLTUInt16_t /*equippmentID*/) +/* { int rcuIndex = (fkEquippmentID - 1792)%N_RCUS_PER_MODULE; - fModuleID = (fkEquippmentID -1792 -rcuIndex)/N_RCUS_PER_MODULE; + fModID = (fkEquippmentID -1792 -rcuIndex)/N_RCUS_PER_MODULE; if(rcuIndex == 0) { @@ -145,13 +90,17 @@ AliHLTPHOSRcuProcessor::SetCoordinates(AliHLTUInt16_t /*equippmentID*/) fRcuZOffset = N_ZROWS_RCU*fRcuZ; fRcuXOffset = N_XCOLUMNS_RCU*fRcuX; +*/ + // cout <<"********InitInfo************"<< endl; // cout <<"AliHLTPHOSRawAnalyzerComponent::SetCoordinate casted"<< endl; // cout <<"Equpippment ID =\t"<< fkEquippmentID <FindBlockNdx("RENELLEC","SOHP", 0xFFFFFFFF ); @@ -153,21 +147,15 @@ AliHLTPHOSOnlineDisplayEventTab::ReadBlockData(AliHLTHOMERReader *homeReaderPtr) while ( blk != ~(unsigned long)0 ) { Int_t moduleID; - // const AliHLTPHOSRcuCellEnergyDataStruct* cellEnergiesPtr = (const AliHLTPHOSRcuCellEnergyDataStruct*)homeReaderPtr->GetBlockData( blk ); AliHLTPHOSRcuCellEnergyDataStruct* cellEnergiesPtr = (AliHLTPHOSRcuCellEnergyDataStruct*)homeReaderPtr->GetBlockData( blk ); - - moduleID = cellEnergiesPtr->fModuleID ; cout << "AliHLTPHOSOnlineDisplayEventTab::ReadBlockData, fModuleID =" <fShmAddress - (Int_t)cellEnergiesPtr)/sizeof(Int_t); - // Int_t tmpCount = cellEnergiesPtr->fCnt; + Int_t tmpZ; Int_t tmpX; Int_t tmpGain; int cnt = 0; - cout << "the sizeof AliHLTPHOSRcuCellEnergyDataStruc=" << sizeof(AliHLTPHOSRcuCellEnergyDataStruct) << endl; - cout << "fNTotalSamples: " << fNTotalSamples << endl; fShmPtr->SetMemory(cellEnergiesPtr); currentChannel = fShmPtr->NextChannel(); @@ -178,17 +166,24 @@ AliHLTPHOSOnlineDisplayEventTab::ReadBlockData(AliHLTHOMERReader *homeReaderPtr) tmpX = currentChannel->fX; tmpGain = currentChannel->fGain; + // cout << "AliHLTPHOSOnlineDisplayEventTab::ReadBlockData gain = " << tmpGain << endl; + if(cnt < 20) { cout << "the addresss of fData is " << (void *)currentChannel->fData << endl; } + // We have to unroll the gain for loop because of the hack by MT to display the raw data in AliEve + // This is crap !! but it is the dirty one hour solution (and it works) + if( tmpGain == HIGH_GAIN) { fgLegoPlotHGPtr->Fill(moduleID*N_XCOLUMNS_MOD + tmpX + N_XCOLUMNS_RCU*cellEnergiesPtr->fRcuX, tmpZ + N_ZROWS_RCU*cellEnergiesPtr->fRcuZ, currentChannel->fEnergy); + // cout << << endl; + gAliEveBoxSet->AddBox(2.2*(tmpX + N_XCOLUMNS_RCU*cellEnergiesPtr->fRcuX) - 1.1, 0, 2.2*(tmpZ + N_ZROWS_RCU*cellEnergiesPtr->fRcuZ) - 1.1, @@ -199,13 +194,15 @@ AliHLTPHOSOnlineDisplayEventTab::ReadBlockData(AliHLTHOMERReader *homeReaderPtr) for(int j= 0; j< currentChannel->fNSamples; j++) { - if(j == fNTotalSamples) { break; } - // printf("%d\t", currentChannel->fData[j]); + fChannelData[moduleID][cellEnergiesPtr->fRcuX][cellEnergiesPtr->fRcuZ][tmpX][tmpZ][HIGH_GAIN][j] = currentChannel->fData[j]; + // prinf(""); + + } } @@ -220,48 +217,14 @@ AliHLTPHOSOnlineDisplayEventTab::ReadBlockData(AliHLTHOMERReader *homeReaderPtr) { break; } - // printf("%d\t", currentChannel->fData[j]); fChannelData[moduleID][cellEnergiesPtr->fRcuX][cellEnergiesPtr->fRcuZ][tmpX][tmpZ][LOW_GAIN][j] = currentChannel->fData[j]; } } - // printf("\n"); - currentChannel = fShmPtr->NextChannel(); } - /* - for(int i= 0; i <= tmpCount; i++) - { - tmpZ = cellEnergiesPtr->fValidData[i].fZ; - tmpX = cellEnergiesPtr->fValidData[i].fX; - tmpGain = cellEnergiesPtr->fValidData[i].fGain; - - if(tmpGain == HIGH_GAIN) - { - fgLegoPlotHGPtr->Fill(moduleID*N_XCOLUMNS_MOD + tmpX + N_XCOLUMNS_RCU*cellEnergiesPtr->fRcuX, - tmpZ + N_ZROWS_RCU*cellEnergiesPtr->fRcuZ, cellEnergiesPtr->fValidData[i].fEnergy); - - for(int j= 0; j< fNTotalSamples; j++) - { - fChannelData[moduleID][cellEnergiesPtr->fRcuX][cellEnergiesPtr->fRcuZ][tmpX][tmpZ][HIGH_GAIN][j] = cellEnergiesPtr->fValidData[i].fData[j-offset]; - } - } - - else if(tmpGain == LOW_GAIN) - { - fgLegoPlotLGPtr->Fill(moduleID*N_XCOLUMNS_MOD + tmpX + N_XCOLUMNS_RCU*cellEnergiesPtr->fRcuX, - tmpZ + N_ZROWS_RCU*cellEnergiesPtr->fRcuZ, cellEnergiesPtr->fValidData[i].fEnergy); - for(int j= 0; j< fNTotalSamples; j++) - { - fChannelData[moduleID][cellEnergiesPtr->fRcuX][cellEnergiesPtr->fRcuZ][tmpX][tmpZ][LOW_GAIN][j] = cellEnergiesPtr->fValidData[i].fData[j -offset]; - } - } - } - */ - - blk = homeReaderPtr->FindBlockNdx("RENELLEC","SOHP", 0xFFFFFFFF, blk+1); } } @@ -288,32 +251,20 @@ AliHLTPHOSOnlineDisplayEventTab::ResetDisplay() void AliHLTPHOSOnlineDisplayEventTab::InitDisplay(TGTab *tabPtr) { - // fgLegoPlotHGPtr = new TH2D("Cosmics, High gain", "PHOS HLT: Cosmics", - // N_XCOLUMNS_MOD*N_MODULES , 0, N_XCOLUMNS_MOD*N_MODULES, - // N_ZROWS_MOD, 0, N_ZROWS_MOD); - fgLegoPlotHGPtr = new AliHLTPHOSOnlineDisplayTH2D(fOnlineDisplayPtr, "Cosmics, High gain", "PHOS HLT: Cosmics", - N_XCOLUMNS_MOD*N_MODULES , 0, N_XCOLUMNS_MOD*N_MODULES, - N_ZROWS_MOD, 0, N_ZROWS_MOD); - fgLegoPlotHGPtr->SetGain(HIGH_GAIN); - - - fgLegoPlotHGPtr->SetMaximum(1023); - fgLegoPlotHGPtr->Reset(); - fgLegoPlotHGPtr->GetXaxis()->SetRange(X_RANGE_START, X_RANGE_END); - - // fgLegoPlotLGPtr = new TH2D("Cosmics, Low gain", "PHOS HLT: Cosmics", - // N_XCOLUMNS_MOD* N_MODULES , 0, N_XCOLUMNS_MOD* N_MODULES, - // N_ZROWS_MOD, 0, N_ZROWS_MOD); + fgLegoPlotHGPtr = new AliHLTPHOSOnlineDisplayTH2D(fOnlineDisplayPtr, "Cosmics, High gain", "PHOS HLT: Cosmics", + N_XCOLUMNS_MOD*N_MODULES , 0, N_XCOLUMNS_MOD*N_MODULES, + N_ZROWS_MOD, 0, N_ZROWS_MOD); + fgLegoPlotHGPtr->SetGain(HIGH_GAIN); + fgLegoPlotHGPtr->SetMaximum(1023); + fgLegoPlotHGPtr->Reset(); + fgLegoPlotHGPtr->GetXaxis()->SetRange(X_RANGE_START, X_RANGE_END); fgLegoPlotLGPtr = new AliHLTPHOSOnlineDisplayTH2D(fOnlineDisplayPtr, "Cosmics, Low gain", "PHOS HLT: Cosmics", - N_XCOLUMNS_MOD* N_MODULES , 0, N_XCOLUMNS_MOD* N_MODULES, - N_ZROWS_MOD, 0, N_ZROWS_MOD); + N_XCOLUMNS_MOD* N_MODULES , 0, N_XCOLUMNS_MOD* N_MODULES, + N_ZROWS_MOD, 0, N_ZROWS_MOD); fgLegoPlotLGPtr->SetGain(LOW_GAIN); - fgLegoPlotLGPtr->SetMaximum(1023); - fgLegoPlotLGPtr->Reset(); fgLegoPlotLGPtr->GetXaxis()->SetRange(X_RANGE_START, X_RANGE_END); - TGLayoutHints *fL1 = new TGLayoutHints(kLHintsBottom | kLHintsExpandX | kLHintsExpandY, 2, 2, 15, 1); @@ -350,6 +301,7 @@ AliHLTPHOSOnlineDisplayEventTab::InitDisplay(TGTab *tabPtr) } + void AliHLTPHOSOnlineDisplayEventTab::UpdateDisplay() { @@ -379,5 +331,4 @@ AliHLTPHOSOnlineDisplayEventTab::UpdateDisplay() fgCanvasLGPtr->cd(); fgLegoPlotLGPtr->Draw("CONTZ"); fgCanvasLGPtr->Update(); - } diff --git a/HLT/PHOS/hltAltroConfig.txt b/HLT/PHOS/hltAltroConfig.txt index 5c30467ac19..4102f2c0fa5 100644 --- a/HLT/PHOS/hltAltroConfig.txt +++ b/HLT/PHOS/hltAltroConfig.txt @@ -1,3 +1,4 @@ -N_SAMPLES 79 -N_PRE_SAMPLES 15 +N_SAMPLES 80 +N_PRE_SAMPLES 11 + -- 2.43.0