]> 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 f6831950df3dcad54fc6e821c382e974e81f2e12..2b8d68e0475196938f9dd8b3f6466b4324035c7e 100644 (file)
@@ -7,12 +7,14 @@
 
 class AliHLTPHOSRawAnalyzer;
 class AliHLTPHOSRcuCellEnergyDataStruct;
-class AliHLTPHOSRcuChannelDataStruct;
 class AliHLTPHOSMapper;
-class AliHLTDDLDecoder;
-class AliHLTAltroData;
-class AliHLTAltroBunch;
 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,35 +26,62 @@ 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:
   AliHLTPHOSRawAnalyzer *fAnalyzerPtr;  /**<Pointer to an analyzer object used for raw data anlysis*/ 
 
- private:
+  using AliHLTPHOSRcuProcessor::DoEvent;
   virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
                     AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
                     AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks ); 
-  using AliHLTPHOSRcuProcessor::DoEvent;
 
-  void Reset();
+ private:
+  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 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;         /**<Pointer to outputbuffer to write results from the component into shared memory*/
 
   AliHLTPHOSRcuCellEnergyDataStruct* fOutPtr;  //comment
-  AliHLTPHOSMapper *fMapperPtr; //comment
-  AliHLTDDLDecoder *fDecoderPtr; //comment
-  AliHLTAltroData  *fAltroDataPtr; //comment
-  AliHLTAltroBunch *fAltroBunchPtr; //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
-  int fDebugCnt; //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