]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/PHOS/AliHLTPHOSRawAnalyzerComponent.h
Selectiv readout and writing to FXS (oystein)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSRawAnalyzerComponent.h
index 5be94f07fe26b366599e5d27989fc3d31da45574..ad14ae8a443cee8ef1217470fcb0fd130bf5e65f 100644 (file)
@@ -12,7 +12,8 @@ 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 AliHLTPHOSRcuProcessor
 {
@@ -24,6 +25,7 @@ class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
   virtual const char* GetComponentID() = 0;
   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; 
  protected:
@@ -37,7 +39,8 @@ class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
  private:
   void Reset(AliHLTPHOSRcuCellEnergyDataStruct* cellDataPtr);
   void ResetDataPtr(int startindex = 0, int sampleCnt = 0);
-  void SetBaselines(const char* baselineFile);
+  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*/
@@ -51,6 +54,30 @@ class AliHLTPHOSRawAnalyzerComponent: public AliHLTPHOSRcuProcessor
   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