]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h
Do not set default CDB storage, if not defined, but return Fatal.
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRawAnalyzerComponent.h
index 8f157ec2bf171a1832c1122d33ec9197f23ebfdc..2b8d68e0475196938f9dd8b3f6466b4324035c7e 100644 (file)
@@ -3,51 +3,85 @@
 
 /* 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(int id);
-  int GetEquippmentId();
   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;
-  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
+