/* Copyright(c) 2006, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
+#include "AliHLTPHOSRcuProcessor.h"
-#include "AliHLTProcessor.h"
-#include "AliHLTPHOSRawAnalyzer.h"
-#include "AliRawReaderMemory.h"
-#include "AliCaloRawStream.h"
-#include "AliHLTPHOSDefinitions.h"
+class AliHLTPHOSRawAnalyzer;
+class AliHLTPHOSRcuCellEnergyDataStruct;
+class AliHLTPHOSMapper;
+class AliHLTPHOSSanityInspector;
+class AliAltroDecoder; // decoder for altro payload
+class AliAltroData; // container for altro payload
+class AliAltroBunch; // container for altro bunches
+class AliHLTPHOSDigitMaker;
+class AliHLTPHOSDigitContainerDataStruct;
-class AliHLTPHOSRawAnalyzerComponent: public AliHLTProcessor
+
+class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
{
public:
AliHLTPHOSRawAnalyzerComponent();
- ~AliHLTPHOSRawAnalyzerComponent();
- AliHLTPHOSRawAnalyzerComponent(const AliHLTPHOSRawAnalyzerComponent & );
- AliHLTPHOSRawAnalyzerComponent & operator = (const AliHLTPHOSRawAnalyzerComponent &)
- {
- return *this;
- };
-
- virtual int DoInit( int argc, const char** argv );
+ virtual ~AliHLTPHOSRawAnalyzerComponent();
+ virtual int DoInit(int argc =0, const char** argv = 0);
virtual int Deinit();
- virtual int DoDeinit();
- void DumpData();
- void SetEquippmentID(AliHLTUInt32_t id);
- int GetEquippmentID();
- void SetCoordinates( AliHLTUInt32_t equippmentID);
virtual const char* GetComponentID() = 0;
- virtual void GetInputDataTypes(std::vector<AliHLTComponentDataType, std::allocator<AliHLTComponentDataType> >&);
+ virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
virtual AliHLTComponentDataType GetOutputDataType();
+ virtual int GetOutputDataTypes(AliHLTComponentDataTypeList& list);
virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
- virtual AliHLTComponent* Spawn() = 0;
- virtual int DoEvent(const AliHLTComponentEventData&, const AliHLTComponentBlockData*, AliHLTComponentTriggerData&, AliHLTUInt8_t*, AliHLTUInt32_t&, std::vector<AliHLTComponentBlockData, std::allocator<AliHLTComponentBlockData> >&);
-
+ virtual AliHLTComponent* Spawn() = 0;
protected:
- AliHLTPHOSRawAnalyzer *analyzerPtr;
- void Reset();
- void ResetDataPtr();
+ AliHLTPHOSRawAnalyzer *fAnalyzerPtr; /**<Pointer to an analyzer object used for raw data anlysis*/
+
+ using AliHLTPHOSRcuProcessor::DoEvent;
+ virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
+ AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
+ AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
private:
- int fEventCount;
- // int fEquippmentId;
- // AliHLTUInt16_t fEquippmentId;
- AliHLTUInt32_t fEquippmentID;
- AliHLTUInt8_t fRcuX;
- AliHLTUInt8_t fRcuY;
- AliHLTUInt8_t fModuleID;
-
- Double_t fTmpChannelData[1008];
- Double_t fMaxValues[5][64][56][2];
- AliCaloRawStream *fPHOSRawStream;
- AliRawReaderMemory *fRawMemoryReader;
-
- static const AliHLTComponentDataType inputDataTypes[];
- // static const AliHLTComponentDataType outputDataType;
-
+ AliHLTPHOSRawAnalyzerComponent(const AliHLTPHOSRawAnalyzerComponent & );
+ AliHLTPHOSRawAnalyzerComponent & operator = (const AliHLTPHOSRawAnalyzerComponent &);
+
+ void Reset(AliHLTPHOSRcuCellEnergyDataStruct* cellDataPtr);
+ void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
+ void SetBaselines(const char* baselineFile);
+ void SetSelectiveReadOutThresholds(const char* filepath, Int_t nSignams);
+ Bool_t fSendChannelData; /**<wether or not to send raw data from the component into shared memory*/
+ Double_t fTmpChannelData[ALTRO_MAX_SAMPLES]; /**<temporary variable to store raw samples from a single altro channel*/
+ Double_t fMaxValues[N_MODULES][N_ZROWS_MOD][N_XCOLUMNS_MOD][N_GAINS]; /**<array to store cell energies*/
+
+ AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr; //comment
+ AliHLTPHOSMapper *fMapperPtr; //Mapping from harware address to geometrical address
+ AliHLTPHOSSanityInspector *fSanityInspectorPtr; //comment
+ Bool_t fUseBaselineSubtraction; //comment
+ Float_t fBaselines[N_XCOLUMNS_RCU][N_ZROWS_RCU][N_GAINS]; //comment
+
+ AliAltroDecoder *fDecoderPtr; // decoder for altro payload
+ AliAltroData *fAltroDataPtr; // container for altro payload
+ AliAltroBunch *fAltroBunchPtr; // container for altro bunches
+
+ /** Are we pushing the cell energies (raw data) */
+ Bool_t fDoPushCellEnergies; //Added by OD
+
+ /** Are we making digits? */
+ Bool_t fDoMakeDigits; //Added by OD
+
+ /** The digit maker */
+ AliHLTPHOSDigitMaker *fDigitMakerPtr; //! transient Added by OD
+
+ /** The digit containerto use for digit making */
+ AliHLTPHOSDigitContainerDataStruct *fDigitContainerPtr; //! transient Added by OD
+
+ /** Are we doing selective read out? */
+ Bool_t fDoSelectiveReadOut; //Added by OD
+
+ /** Threshold for selective readout ( zero suppression threshold) */
+ Float_t fSelectiveReadOutThresholds[N_XCOLUMNS_MOD][N_ZROWS_MOD][N_GAINS]; //Added by OD
+
+ /** The selected HW addresses */
+ AliHLTUInt16_t *fSelectedChannelsList; //! transient Added by OD
+
+ /** Should we check data size? */
+ Bool_t fDoCheckDataSize; //Added by OD
};
#endif
+