+// $Id$
/**************************************************************************
* This file is property of and copyright by the ALICE HLT Project *
#include "AliLog.h"
#include "TStopwatch.h"
+#include "AliCaloRawAnalyzerFactory.h"
+
+//#include "AliCaloConstants.h"
+
+//#include "AliCaloRawAnalyzer.h"
+
+//using namespace Algo;
#include <vector>
using namespace std;
-AliHLTCaloRawAnalyzerComponentv3::AliHLTCaloRawAnalyzerComponentv3(TString det):AliHLTCaloProcessor(),
- AliHLTCaloConstantsHandler(det),
- fAnalyzerPtr(0),
- fMapperPtr(0),
- fCurrentSpec(-1),
- fDebug(false),
- fSanityInspectorPtr(0),
- fRawReaderMemoryPtr(0),
- fAltroRawStreamPtr(0),
- fAlgorithm(0),
- fOffset(0),
- fBunchSizeCut(0),
- fMinPeakPosition(0),
- fMaxPeakPosition(100),
- fDoPushBadRawData(false),
- fDoPushRawData(false),
- fRawDataWriter(0)
+AliHLTCaloRawAnalyzerComponentv3::AliHLTCaloRawAnalyzerComponentv3(TString det, fitAlgorithm algo ):AliHLTCaloProcessor(),
+ AliHLTCaloConstantsHandler(det),
+ fAnalyzerPtr(0),
+ fMapperPtr(0),
+ fCurrentSpec(-1),
+ fDebug(false),
+ fSanityInspectorPtr(0),
+ fRawReaderMemoryPtr(0),
+ fAltroRawStreamPtr(0),
+ fDetector(det),
+ fAlgorithm(algo),
+ fOffset(0),
+ fBunchSizeCut(0),
+ fMinPeakPosition(0),
+ fMaxPeakPosition(100),
+ fDoPushBadRawData(false),
+ fDoPushRawData(false),
+ fRawDataWriter(0)
{
//Constructor
- fSanityInspectorPtr = new AliHLTCaloSanityInspector();
- if( fDoPushRawData == true )
- {
- fRawDataWriter = new RawDataWriter(fCaloConstants);
- }
- fRawReaderMemoryPtr = new AliRawReaderMemory();
- fAltroRawStreamPtr = new AliCaloRawStreamV3(fRawReaderMemoryPtr, det);
}
AliHLTCaloRawAnalyzerComponentv3::~AliHLTCaloRawAnalyzerComponentv3()
{
//destructor
- delete fRawReaderMemoryPtr;
- delete fAltroRawStreamPtr;
- delete fRawDataWriter;
- delete fSanityInspectorPtr;
}
AliLog::SetGlobalLogLevel(AliLog::kError); //PHOS sometimes produces bad data -> Fill up the HLT logs...
}
}
+
+ fAnalyzerPtr = AliCaloRawAnalyzerFactory::CreateAnalyzer(fAlgorithm);
+ fAnalyzerPtr->SetIsZeroSuppressed(true);
+ fSanityInspectorPtr = new AliHLTCaloSanityInspector();
+
+ if( fDoPushRawData == true )
+ {
+ fRawDataWriter = new RawDataWriter(fCaloConstants);
+ }
+ fRawReaderMemoryPtr = new AliRawReaderMemory();
+ fAltroRawStreamPtr = new AliCaloRawStreamV3(fRawReaderMemoryPtr, fDetector);
return iResult;
}
delete fAltroRawStreamPtr;
fAltroRawStreamPtr = 0;
}
+
+ if (fRawReaderMemoryPtr) delete fRawReaderMemoryPtr;
+ fRawReaderMemoryPtr=NULL;
+ if (fAltroRawStreamPtr) delete fAltroRawStreamPtr;
+ fAltroRawStreamPtr=NULL;
+ if (fRawDataWriter) delete fRawDataWriter;
+ fRawDataWriter=NULL;
+ if (fSanityInspectorPtr) delete fSanityInspectorPtr;
+ fSanityInspectorPtr=NULL;
+
return 0;
}
vector <AliHLTComponentDataType> validTypes;
GetInputDataTypes(validTypes);
- for(int i=0; i < validTypes.size(); i++ )
+ for(UInt_t i=0; i < validTypes.size(); i++ )
{
if ( datatype == validTypes.at(i) )
{
else
{
++ cnt;
- UShort_t* firstBunchPtr = 0;
+ //UShort_t* firstBunchPtr = 0;
int chId = fMapperPtr->GetChannelID(iter->fSpecification, fAltroRawStreamPtr->GetHWAddress());
-
+ //patch to skip LG in EMC
+ if(fDetector.CompareTo("EMCAL") == 0 && (int)((chId >> 12)&0x1) == 0) continue;
if( fDoPushRawData == true)
{
fRawDataWriter->SetChannelId( chId );
fRawDataWriter->WriteBunchData( fAltroRawStreamPtr->GetSignals(),
nSamples, fAltroRawStreamPtr->GetEndTimeBin() );
}
- firstBunchPtr = const_cast< UShort_t* >( fAltroRawStreamPtr->GetSignals() );
+ //firstBunchPtr = const_cast< UShort_t* >( fAltroRawStreamPtr->GetSignals() );
}
totSize += sizeof( AliHLTCaloChannelDataStruct );
channelDataPtr->fChannelID = chId;
channelDataPtr->fEnergy = static_cast<Float_t>( res.GetAmp() ) - fOffset;
channelDataPtr->fTime = static_cast<Float_t>( res.GetTof() );
+ if(fDetector.CompareTo("EMCAL") == 0) channelDataPtr->fTime = static_cast<Float_t>( res.GetTof() )*100E-9 - fAltroRawStreamPtr->GetL1Phase();
channelDataPtr->fCrazyness = static_cast<Short_t>(crazyness);
channelCount++;
channelDataPtr++; // Updating position of the free output.