]>
Commit | Line | Data |
---|---|---|
f67db810 | 1 | #ifndef ALIITSHANDLEDASSD_H |
2 | #define ALIITSHANDLEDASSD_H | |
3 | ||
223dda26 | 4 | /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. * |
5 | * See cxx source for full Copyright notice */ | |
6 | /* */ | |
7 | /* $Id$ */ | |
f67db810 | 8 | |
223dda26 | 9 | #include "TObject.h" |
f67db810 | 10 | #include "AliITSModuleDaSSD.h" |
11 | ||
223dda26 | 12 | /////////////////////////////////////////////////////////////////////////////// |
13 | /// | |
14 | /// This class provides ITS SSD data handling | |
15 | /// used by DA. | |
16 | /// | |
17 | /////////////////////////////////////////////////////////////////////////////// | |
18 | ||
19 | class TObjArray; | |
f67db810 | 20 | |
21 | class AliITSHandleDaSSD : public TObject { | |
22 | public : | |
23 | AliITSHandleDaSSD(); | |
24 | explicit AliITSHandleDaSSD(const Int_t numberofmodules); | |
25 | AliITSHandleDaSSD(const AliITSHandleDaSSD& ssdadldc); | |
26 | AliITSHandleDaSSD& operator = (const AliITSHandleDaSSD& ssdadldc); | |
27 | virtual ~AliITSHandleDaSSD(); | |
28 | ||
29 | Int_t GetNumberOfModules() const { return fNumberOfModules; } | |
30 | ||
31 | AliITSModuleDaSSD* GetModule (const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const; | |
32 | AliITSModuleDaSSD* GetModule (const Int_t index) const | |
33 | {if ((fModules) && (index < fNumberOfModules)) return fModules[index]; else return NULL;} | |
34 | AliITSChannelDaSSD* GetStrip (const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t stripID) const; | |
35 | TObjArray* GetCalibrationSSDLDC() const; | |
36 | Bool_t SaveCalibrationSSDLDC(std::string& dafname) const; | |
37 | ||
38 | Bool_t SetNumberOfModules (const Int_t numberofmodules); | |
39 | Bool_t SetModule(AliITSModuleDaSSD *const module, const Int_t index); | |
40 | Bool_t ReadCalibrationDataFile (const char* fileName, const Long_t eventsnumber); | |
41 | ||
42 | virtual Bool_t CalculatePedestal(); | |
43 | virtual Bool_t CalculateNoise(); | |
44 | virtual Bool_t CalculateNoiseCM(); | |
45 | ||
46 | void DeleteSignal() { if (fModules) for (Int_t i = 0; i < fNumberOfModules; i++) if (fModules[i]) fModules[i]->DeleteSignal();} | |
47 | ||
48 | static Int_t GetNumberOfSSDModulesConst() { return fgkNumberOfSSDModules; } | |
49 | ||
50 | protected : | |
223dda26 | 51 | static const Int_t fgkNumberOfSSDModules = 1698; // Number of SSD modules in ITS |
f67db810 | 52 | |
53 | Int_t fNumberOfModules; // number of AliITSModuleDaSSD to allocate | |
54 | AliITSModuleDaSSD **fModules; //[fNumberOfModules] array of all SSD 1698 Modules (2608128 strips) | |
55 | UInt_t fLdcId; // LDC number, read from header | |
56 | UInt_t fRunId; // Run number, read from header | |
57 | ||
58 | private : | |
59 | Bool_t CalculateCM(const Int_t modind, const Int_t stripind, Float_t* const cm); | |
60 | Bool_t RelocateModules(); | |
61 | Bool_t SignalOutOfRange (const Short_t signal) const { return (signal >= AliITSChannelDaSSD::GetOverflowConst()); } | |
62 | ||
63 | ClassDef(AliITSHandleDaSSD, 1) | |
64 | ||
65 | }; | |
66 | ||
67 | #endif |