#ifndef ALI_TRD_PREPROCESSOR_H
#define ALI_TRD_PREPROCESSOR_H
#include "AliPreprocessor.h"
class TMap;
class AliTRDCalDCSv2;
class AliTRDCalROC;
class AliTRDCalSingleChamberStatus;
class AliTRDPreprocessor : public AliPreprocessor
{
public:
AliTRDPreprocessor(AliShuttleInterface *shuttle);
AliTRDPreprocessor(const AliTRDPreprocessor &org);
virtual ~AliTRDPreprocessor();
protected:
virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime);
virtual UInt_t Process(TMap *dcsAliasMap);
Bool_t ExtractHalfChamberStatusDAQ();
Bool_t ExtractPedestals();
Bool_t ExtractDriftVelocityDAQ();
Bool_t ExtractHLT();
Bool_t ProcessDCS();
Bool_t ProcessDCS(TMap *dcsAliasMap);
AliTRDPreprocessor& operator = (const AliTRDPreprocessor& rhs);
private:
AliTRDCalDCSv2* fCalDCSObjSOR;
AliTRDCalDCSv2* fCalDCSObjEOR;
Bool_t fVdriftHLT;
UInt_t ProcessDCSConfigData();
Bool_t AreThereDataPedestal(const AliTRDCalSingleChamberStatus * const calROCStatus, Bool_t second);
void SetDefaultStatus(AliTRDCalSingleChamberStatus &calROCStatus, Bool_t second);
void SetStatus(AliTRDCalSingleChamberStatus &calROCStatus, AliTRDCalSingleChamberStatus *calROCStatusPrevious,Bool_t second);
void SetDefaultNoise(AliTRDCalROC &calROCNoise, Bool_t second);
void SetNoise(AliTRDCalROC &calROCNoise, AliTRDCalROC *calROCNoisePrevious, Bool_t second);
ClassDef(AliTRDPreprocessor,1)
};
#endif