-#ifndef AliITSQADataMakerRec_H
-#define AliITSQADataMakerRec_H
+#ifndef ALIITSQADATAMAKERREC_H
+#define ALIITSQADATAMAKERREC_H
/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id$ */
+
//
// Checks the quality assurance.
// By comparing with reference data
// contained in a DB
//
//
-// W. Ferrarese Nov 2007
-
+// W. Ferrarese + P. Cerello Feb 2008
+//
+// ESD QA (Tracking and primary vertex)
+// A. Dainese Jun 2008
+#include "AliQADataMakerRec.h"
+class AliDetectorRecoParam;
+class AliReconstructor;
+//#include "AliITSDDLModuleMapSDD.h"
-#include "AliQADataMakerRec.h"
-class TObjArray;
-class TH1F;
-class TH2D;
+class AliQAManager;
+class AliITSQASPDDataMakerRec;
+class AliITSQASDDDataMakerRec;
+class AliITSQASSDDataMakerRec;
+class AliITSRecPoint;
class AliRawReader;
-class AliITSgeomTGeo;
+class TH2F;
+class AliITSDDLModuleMapSDD;
class AliITSQADataMakerRec: public AliQADataMakerRec {
+ friend class AliITSQASPDDataMakerRec; //friend class of SPD QA
+ friend class AliITSQASDDDataMakerRec; //friend class of SDD QA
+ friend class AliITSQASSDDataMakerRec; //friend class of SSD QA
+
public:
- AliITSQADataMakerRec(); // ctor
- AliITSQADataMakerRec(Int_t ldc, Bool_t kMode = kFALSE);
+ AliITSQADataMakerRec(Bool_t kMode = kFALSE, Short_t subDet = 0, Short_t ldc = 0); // kMode = kFALSE (offline), kTRUE (online); subDet = 0 (ALL), 1 (SPD), 2 (SDD), 3 (SSD)
AliITSQADataMakerRec(const AliITSQADataMakerRec& qadm);
AliITSQADataMakerRec& operator = (const AliITSQADataMakerRec& qac);
- virtual void StartOfDetectorCycle() const;
- virtual void EndOfDetectorCycle(AliQA::TASKINDEX task, TObjArray * list);
- virtual void EndOfDetectorCycle(const char * fgDataName);
+ virtual Int_t GetEventSpecie() const { return AliRecoParam::AConvert(fEventSpecie); }
+ virtual void StartOfDetectorCycle();
+ virtual void StartOfCycle(AliQAv1::TASKINDEX_t task, Int_t run, const Bool_t sameCycle = kFALSE) ;
+ virtual void StartOfCycle(Int_t run){AliQADataMakerRec::StartOfCycle(run);}
+ virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list);
+ // virtual void EndOfDetectorCycle(const char *fgDataName);
virtual void InitRaws();
+ virtual void InitDigits();
virtual void InitRecPoints();
+ virtual void InitESDs();
virtual void MakeRaws(AliRawReader *rawReader);
+ virtual void MakeDigits(){AliWarning("Signature not implemented. A TTree* of digits should be passed as input argument");}
+ virtual void MakeDigits(TTree *digitsTree);
virtual void MakeRecPoints(TTree *clustersTree);
- virtual ~AliITSQADataMakerRec() {;} // dtor
-
-private:
-
- static const Int_t fgknSDDmodules = 260; //number of SDD modules
- static const Int_t fgkmodoffset = 240; //number of SPD modules
- static const Int_t fgknAnode = 256; //anode per half-module
- static const Int_t fgknSide =2; //side per module
- static const Int_t fgkeqOffset = 256; //DDL offset
- static const Int_t fgkDDLidRange = 24; //number of DDL:so DDL range is 257-280
- static const Int_t fgkDDLIDshift = 0; //necessary option until RawStream Table is complete
- static const Int_t fgkLADDonLAY3 = 14; //number of ladder on layer 3
- static const Int_t fgkLADDonLAY4 = 22; //number of ladder on layer 4
-
- Bool_t fkOnline; //online (1) or offline (0) use
- Int_t fLDC; //LDC number (0 for offline, 1 to 4 for online)
- Int_t fnSDDHistos; // number of histogrma booked for SDDs
- TH2D *fModuleChargeMap[2*fgknSDDmodules];//module map
- TH1D *fmonoD[2*fgknSDDmodules] ; //histo used as support
-
- ClassDef(AliITSQADataMakerRec,1) // description
+ virtual void MakeESDs(AliESDEvent *esd);
+ virtual void FillRecPoint(AliITSRecPoint rcp);
+ virtual Bool_t ListExists(AliQAv1::TASKINDEX_t task) const;
+ AliQAv1::TASKINDEX_t GetTaskIndexSelected() const {return fSelectedTaskIndex;}
+
+ virtual void ResetDetector(AliQAv1::TASKINDEX_t task);
+
+ virtual ~AliITSQADataMakerRec(); // dtor
+ Short_t GetSubDet()const {return fSubDetector;};
+ Int_t GetDetTaskOffset(Int_t subdet,AliQAv1::TASKINDEX_t task,Int_t specie=0);
+ Int_t GetDetTaskHisto(Int_t subdet,AliQAv1::TASKINDEX_t task);
+ TH2F *GetITSGlobalHisto(Int_t layer);
+ static Bool_t AreEqual(Double_t a1, Double_t a2);
+
+ virtual void SetRunNumber(Int_t runnumber){fRunNumber=runnumber;};
+ Int_t GetRunNumber()const {return fRunNumber;};
+
+ virtual void SetEventNumber(Int_t eventnumber){fEventNumber=eventnumber;};
+ Int_t GetEventNumber() const {return fEventNumber;};
+ AliITSDDLModuleMapSDD *GetDDLSDDModuleMap();
+
+ private:
+
+ Bool_t fkOnline; //online (1) or offline (0) use
+ Short_t fSubDetector; // subDetector: 0 (ALL), 1 (SPD), 2 (SDD), 3 (SSD)
+ Short_t fLDC; // number of LDC: 0 (one LDC for the whole subdetector)
+ Int_t fRunNumber; //run number
+ Int_t fEventNumber; //Event number (online mode)
+ AliQAv1::TASKINDEX_t fSelectedTaskIndex; //Current TaskIndex
+
+ AliITSQASPDDataMakerRec *fSPDDataMaker; // SPD Data Maker
+ AliITSQASDDDataMakerRec *fSDDDataMaker; // SDD Data Maker
+ AliITSQASSDDataMakerRec *fSSDDataMaker; // SSD Data Maker
+
+ ClassDef(AliITSQADataMakerRec,8) // description
};
#endif
-