Line data Source code
1 : #ifndef ALIITSQASDDDATAMAKERREC_H
2 : #define ALIITSQASDDDATAMAKERREC_H
3 : /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : //
7 : // Checks the quality assurance.
8 : // By comparing with reference data
9 : // contained in a DB
10 : //
11 : //
12 : // W. Ferrarese + P. Cerello Feb 2008
13 :
14 : /* $Id$ */
15 :
16 : #include "AliQAv1.h"
17 :
18 : class AliITSQADataMakerRec;
19 : class AliITSCalibrationSDD;
20 : class TObjArray;
21 : class AliITSDDLModuleMapSDD;
22 : class AliRawReader;
23 :
24 : class AliITSQASDDDataMakerRec: public TObject {
25 :
26 : public:
27 : AliITSQASDDDataMakerRec(AliITSQADataMakerRec *aliITSQADataMakerRec, Bool_t kMode = kFALSE, Short_t ldc = 0);
28 : AliITSQASDDDataMakerRec(const AliITSQASDDDataMakerRec& qadm);
29 : AliITSQASDDDataMakerRec& operator = (const AliITSQASDDDataMakerRec& qac);
30 : virtual Int_t InitRaws();
31 : virtual Int_t InitDigits();
32 : virtual Int_t InitRecPoints();
33 : virtual Int_t MakeRaws(AliRawReader *rawReader);
34 0 : virtual Int_t MakeDigits() {return 0;}
35 : virtual Int_t MakeDigits(TTree *clustersTree);
36 : virtual Int_t MakeRecPoints(TTree *clustersTree);
37 : virtual void StartOfDetectorCycle();
38 : virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list);
39 : virtual void CreateTheMap();
40 : virtual void CreateTheCalibration();
41 : virtual void InitCalibrationArray();
42 :
43 : virtual ~AliITSQASDDDataMakerRec(); // dtor
44 : Int_t GetOffset(AliQAv1::TASKINDEX_t task,Int_t specie=0)const;
45 : void SetOffset(AliQAv1::TASKINDEX_t task, Int_t offset, Int_t specie = 0);
46 : Int_t GetTaskHisto(AliQAv1::TASKINDEX_t task);
47 : Int_t GetNumberOfEvents(AliQAv1::TASKINDEX_t task, Int_t trigCl=-1);
48 : virtual void ResetDetector(AliQAv1::TASKINDEX_t task);
49 0 : AliITSDDLModuleMapSDD* GetDDLSDDModuleMap()const{return fDDLModuleMap; };
50 0 : void SetTimeBinGrouping(Int_t n){fTimeBinSize=n;}
51 :
52 : enum RAWHISTOS {kSDDRawModPattern,kSDDRawLadModLay3,kSDDRawLadModLay4,
53 : kSDDRawModPatternNorm,
54 : kSDDRawLadModLay3Norm,kSDDRawLadModLay4Norm,
55 : kSDDNofDigits,kSDDNofDigitsVsMod,
56 : kActiveModLay3,kActiveModLay4,kSDDRawDataCheck,
57 : kSDDOnlineDDLPattern,kSDDDataSize,kChargeMapFirstMod};
58 :
59 : enum DIGITHISTOS {kSDDDigModPattern,kSDDDigAnode,
60 : kSDDDigTimeBin,kSDDDigADC, kNumOfSDDDigitHistos};
61 :
62 : enum RECPHISTOS {kSDDRecpChargeLay3,kSDDRecpChargeLay4,
63 : kSDDRecpGloXY,kSDDRecpGloRZ,
64 : kSDDRecpPhiZLay3,kSDDRecpPhiZLay4,
65 : kSDDRecpModPattern,kSDDRecpLadModLay3,kSDDRecpLadModLay4,
66 : kSDDRecpModPatternNorm,
67 : kSDDRecpLadModLay3Norm,kSDDRecpLadModLay4Norm,
68 : kSDDRecpLocalCoord,kSDDRecpRLay3,kSDDRecpRLay4,
69 : kSDDRecpPhiLay3,kSDDRecpPhiLay4,
70 : kSDDRecpDriftTimeLay3,kSDDRecpDriftTimeLay4,
71 : kSDDRecpRelOccLay3,kSDDRecpRelOccLay4,
72 : kSDDRecpToRawLay3,kSDDRecpToRawLay4,
73 : kSDDRecpCluSizAnLay3,kSDDRecpCluSizAnLay4,
74 : kSDDRecpCluSizTbLay3,kSDDRecpCluSizTbLay4,
75 : kSDDRecpDataCheck,
76 : kSDDRecpOnlineGloXYSingEv,kSDDRecpOnlineGloRZSingEv,
77 : kNumOfSDDRecpHistos};
78 :
79 : private:
80 : void FillRelativeOccupancyHistos(TH2* hnormc, TH1* hrelocc) const;
81 : void FillRecToRaw(TH2* hrpLay,TH2* hrwLay,TH2* hratioLay) const;
82 :
83 : static const Int_t fgknSDDmodules = 260; // number of SDD modules
84 : static const Int_t fgkmodoffset = 240; // number of SPD modules
85 : static const Int_t fgknAnode = 256; // anode per half-module
86 : static const Int_t fgknSide =2; // side per module
87 : //static const Int_t fgkDDLIDshift = 0; // necessary option until RawStream Table is complete
88 : static const Int_t fgkLADDonLAY3 = 14; // number of ladder on layer 3
89 : static const Int_t fgkLADDonLAY4 = 22; // number of ladder on layer 4
90 : static const Int_t fgkTotalNumberSDDAnodes = 512; //total number of the anodes of a SDD modules
91 : static const Int_t fgkNumberOfSDDAnodesperSide =256; //number of the anodes of an half SDD modules
92 :
93 : AliITSQADataMakerRec *fAliITSQADataMakerRec; // pointer to the main ctor
94 : Bool_t fkOnline; // online (1) or offline (0) use
95 : Int_t fLDC; // LDC number (0 for offline, 1 to 4 for online)
96 : Int_t fSDDhRawsTask; // number of histo booked for each the Raws Task SDD
97 : Int_t fSDDhDigitsTask; // number of histo booked for each the RecPoints Task SDD
98 : Int_t fSDDhRecPointsTask; // number of histo booked for each the RecPoints Task SDD
99 : Int_t fOnlineOffsetRaws; // index for starting online histograms for Raws
100 : Int_t fOnlineOffsetRecPoints; // index for starting online histograms for RecPoints
101 : Int_t *fGenRawsOffset; // QAchecking Raws offset
102 : Int_t *fGenDigitsOffset; // QAchecking RecPoints offset
103 : Int_t *fGenRecPointsOffset; // QAchecking RecPoints offset
104 : Int_t fTimeBinSize; // time bin width in number of clocks
105 : AliITSDDLModuleMapSDD *fDDLModuleMap; // SDD Detector configuration for the decoding
106 : TObjArray *fCalibration; //Array of Calibration Object
107 : TObjArray *fHistoCalibration; //Array of the Calibration histograms for the normalization
108 : Int_t fPulserRun; // pulser run number (to identify calibration)
109 118 : ClassDef(AliITSQASDDDataMakerRec,14) // description
110 :
111 : };
112 :
113 : #endif
114 :
|