--- /dev/null
+#ifndef ALIANAFWDDETSQA_H
+#define ALIANAFWDDETSQA_H
+
+//------------------------------
+// Analysis task for quality-assurance
+// of forward detectors ESD
+//
+// 12/06/2009 cvetan.cheshkov@cern.ch
+//------------------------------
+
+
+class TH1;
+class TH1F;
+class TH2F;
+
+#include "AliAnalysisTaskSE.h"
+
+class AliAnaFwdDetsQA : public AliAnalysisTaskSE
+{
+ public:
+ AliAnaFwdDetsQA();
+ AliAnaFwdDetsQA(const char *name);
+ virtual ~AliAnaFwdDetsQA() {}
+
+ virtual void UserCreateOutputObjects();
+ virtual void UserExec(Option_t *option);
+ virtual void Terminate(Option_t *);
+
+ TH1F* CreateHisto(const char* name, const char* title, Int_t nBins, Double_t xMin,
+ Double_t xMax, const char* xLabel = NULL, const char* yLabel = NULL);
+ TH1F* CreateEffHisto(const TH1F* hGen, const TH1F* hRec);
+ Bool_t FitHisto(TH1* histo, Double_t& res, Double_t& resError);
+
+ private:
+
+ TList* fListOfHistos; // Container for output histos
+
+ TH1F* fT0vtxRec; // T0 reconstructed z vertex
+ TH2F* fT0vtxRecGen; // T0 reconstructed vs generate z vertex
+ TH1F* fT0time; // T0 time0
+ TH1F* fT0time2; // T0 time0
+ TH1F* fT0mult; // T0 multiplicity
+ TH1F* fT0vtxRes; // T0 z vertex resolution
+ TH1F* fT0ampl; // T0 signals amplitude
+
+ TH1F* fV0a; // V0 number of fired PMs A side
+ TH1F* fV0c; // V0 number of fired PMs C side
+ TH1F* fV0multA; // V0 multiplicity on A side
+ TH1F* fV0multC; // V0 multiplicity on C side
+ TH2F* fV0multAcorr; // V0 reconstructed vs generated multiplicity on A side
+ TH2F* fV0multCcorr; // V0 reconstructed vs generated multiplicity on C side
+ TH2F* fV0Acorr; // V0 number of fired PMs (reco vs gen) A side
+ TH2F* fV0Ccorr; // V0 number of fired PMs (reco vs gen) C side
+ TH1F* fV0ampl; // V0 multiplicity in single channel
+
+ AliAnaFwdDetsQA(const AliAnaFwdDetsQA&); // not implemented
+ AliAnaFwdDetsQA& operator=(const AliAnaFwdDetsQA&); // not implemented
+
+ ClassDef(AliAnaFwdDetsQA, 1) // example of analysis
+};
+
+#endif