#ifndef ALIITSQASDDCHECKER_H
#define ALIITSQASDDCHECKER_H
#include "AliQAv1.h"
class TFile;
class TH2F;
class AliQACheckerBase;
class AliQAChecker;
class AliITSQAChecker;
class AliITSCalibrationSDD;
class AliITSLoader;
class TSystem;
class AliQAManager;
class AliLog;
class TF1;
class TCanvas;
class TPaveText;
class AliQAv1;
class AliITSQASDDChecker: public TObject{
public:
AliITSQASDDChecker();
virtual ~AliITSQASDDChecker();
virtual Double_t Check(AliQAv1::ALITASK_t index, const TObjArray * list, const AliDetectorRecoParam * recoParam);
virtual void SetTaskOffset(Int_t taskoffset);
virtual void SetStepBit(const Double_t *steprange);
virtual Double_t *GetStepBit(){return fStepBitSDD;};
virtual void SetSDDLimits(const Float_t *lowvalue, const Float_t * highvalue);
void SetEventSpecieForCheck(Int_t esforcheck=0){ fESforCheck=esforcheck;}
Int_t GetEventSpecieForCheck() const {return fESforCheck;}
virtual Bool_t MakeSDDImage( TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode) ;
Bool_t MakeSDDRawsImage(TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode );
Bool_t MakeSDDRecPointsImage(TObjArray ** list, AliQAv1::TASKINDEX_t task, AliQAv1::MODE_t mode);
private:
AliITSQASDDChecker(const AliITSQASDDChecker& qac);
AliITSQASDDChecker& operator = (const AliITSQASDDChecker& qac) ;
Int_t fSubDetOffset;
Double_t *fStepBitSDD;
Float_t *fLowSDDValue;
Float_t *fHighSDDValue;
TObjArray *fCalibration;
Float_t fThresholdForRelativeOccupancy;
Float_t fThresholdForRecToRawRatio;
TCanvas ** fImage ;
TPaveText * fPaveText[AliRecoParam::kNSpecies] ;
Int_t fESforCheck;
static const Int_t fgknSDDmodules = 260;
static const Int_t fgkmodoffset = 240;
ClassDef(AliITSQASDDChecker,8)
};
#endif // AliITSQASDDChecker_H