]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSHandleDaSSD.h
Remowing shadow warnings
[u/mrichter/AliRoot.git] / ITS / AliITSHandleDaSSD.h
1 #ifndef ALIITSHANDLEDASSD_H
2 #define ALIITSHANDLEDASSD_H
3
4 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6 /*                                                                        */
7 /* $Id$ */
8
9 #include "TObject.h"
10 #include "AliITSModuleDaSSD.h"
11
12 ///////////////////////////////////////////////////////////////////////////////
13 ///
14 /// This class provides ITS SSD data handling
15 /// used by DA. 
16 //  Author: Oleksandr Borysov
17 //  Date: 20/04/2008
18 ///////////////////////////////////////////////////////////////////////////////
19
20 class TObjArray;
21
22 class AliITSHandleDaSSD : public TObject {
23   public :
24     AliITSHandleDaSSD();
25     explicit AliITSHandleDaSSD(Char_t *rdfname);
26     AliITSHandleDaSSD(const AliITSHandleDaSSD& ssdadldc);
27     AliITSHandleDaSSD& operator = (const AliITSHandleDaSSD& ssdadldc);
28     virtual ~AliITSHandleDaSSD();
29
30     virtual Bool_t Init(Char_t *rdfname, const Char_t *configfname = NULL);
31     virtual Bool_t ReadConfigurationFile(const Char_t *configfname = NULL) const;
32     Bool_t  SetRawFileName (Char_t *rdfname) {return Init(rdfname); }
33
34     Int_t              GetNumberOfModules() const { return fNumberOfModules; }
35     UInt_t             GetLdcId() const { return fLdcId; }
36     UInt_t             GetRunId() const { return fRunId; }
37     AliITSModuleDaSSD* GetModule (const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const;
38     AliITSModuleDaSSD* GetModule (const Int_t index) const 
39                                {if ((fModules) && (index < fNumberOfModules)) return fModules[index]; else return NULL;}
40     Int_t GetModuleIndex (const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const;
41     AliITSChannelDaSSD* GetStrip (const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t stripID) const;
42     TObjArray*  GetCalibrationSSDLDC()  const;
43     Bool_t      SaveCalibrationSSDLDC(Char_t*& dafname) const;
44     
45     void    SetModIndProcessed(Int_t mi) {fModIndProcessed = mi;}
46     void    SetModIndRead (Int_t mr)  {fModIndRead = mr;}
47     Bool_t  SetNumberOfModules (const Int_t numberofmodules);
48     Bool_t  SetModule(AliITSModuleDaSSD *const module, const Int_t index); 
49     Int_t   ReadCalibrationDataFile (char* fileName, const Long_t eventsnumber);
50     Int_t   ReadModuleRawData (const Int_t modulesnumber);  
51
52     virtual Bool_t  CalculatePedestal(AliITSModuleDaSSD *const module);
53     virtual Bool_t  CalculateNoise(AliITSModuleDaSSD *const module);
54     virtual Bool_t  CalculateNoiseCM(AliITSModuleDaSSD *const module);
55     virtual Bool_t  CalculateCM(AliITSModuleDaSSD *const module);
56     virtual Bool_t  AddFeromCm(AliITSModuleDaSSD *const module);
57     virtual Bool_t  ProcessRawData(const Int_t nmread = fgkNumberOfSSDModulesPerDdl);
58     virtual Bool_t  RelocateModules();
59     virtual Bool_t  AllocateSimulatedModules(const Int_t copymodind = 0);
60      
61     virtual void    Reset();
62     virtual Short_t RetrieveModuleId(const UChar_t ddlID, const UChar_t ad, const UChar_t adc) const;
63     Bool_t  DumpModInfo(const Float_t meannosethreshold) const;
64     Bool_t  PrintModCalibrationData(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const Char_t *fname = NULL) const;
65     void    DumpInitData(const Char_t *str = "") const;
66     void    DeleteSignalAll() { if (fModules) for (Int_t i = 0; i < fNumberOfModules; i++) if (fModules[i]) fModules[i]->DeleteSignal();}
67     void    DeleteSignal() { if (fModules) for (Int_t i = fModIndProcessed; i < fModIndRead; i++) if (fModules[i]) fModules[i]->DeleteSignal();}
68     void    DeleteCMAll() { if (fModules) for (Int_t i = 0; i < fNumberOfModules; i++) if (fModules[i]) fModules[i]->DeleteCM();}
69     void    DeleteCM() { if (fModules) for (Int_t i = fModIndProcessed; i < fModIndRead; i++) if (fModules[i]) fModules[i]->DeleteCM();}
70     void    DeleteCMFerom() { if (fModules) for (Int_t i = fModIndProcessed; i < fModIndRead; i++) if (fModules[i]) fModules[i]->DeleteCMFerom ();}
71
72     static Int_t GetNumberOfSSDModulesConst() { return fgkNumberOfSSDModules; }
73
74   protected :
75     static const Int_t    fgkNumberOfSSDModules ;        // Number of SSD modules in ITS
76     static const Int_t    fgkNumberOfSSDModulesPerDdl;   // Number of SSD modules in DDL
77     static const Int_t    fgkNumberOfSSDModulesPerSlot;  // Number of SSD modules in Slot
78     static const Float_t  fgkPedestalThresholdFactor;    // Defalt value for fPedestalThresholdFactor 
79     static const Float_t  fgkCmThresholdFactor;          // Defalt value for fCmThresholdFactor 
80
81     Char_t              *fRawDataFileName;       // Name of the file with raw data
82     Int_t                fNumberOfModules;       // number of AliITSModuleDaSSD to allocate
83     AliITSModuleDaSSD  **fModules;               //[fNumberOfModules] array of pointer on AliITSModuleDaSSD objects (1698 SSD  Modules)
84     Int_t                fModIndProcessed;       //! index of the last module in fModules array with processed data
85     Int_t                fModIndRead;            //! index of the last module in fModules array with adc data present (read)
86     Int_t               *fModIndex;              //! index array for fModules
87     Long_t               fNumberOfEvents;        // Number of physics or calibration events in raw data file fRawDataFileName
88     
89     UInt_t               fLdcId;                 //  LDC number, read from header
90     UInt_t               fRunId;                 //  Run number, read from header
91
92     Float_t     fPedestalThresholdFactor;        // configuration parameter: ThresholdFactor for pedestal calculation 
93     Float_t     fCmThresholdFactor;              // configuration parameter: ThresholdFactor for CM calculation 
94
95   private :
96     Bool_t   SignalOutOfRange (const Short_t signal) const { return (signal >= AliITSChannelDaSSD::GetOverflowConst()); }
97
98     ClassDef(AliITSHandleDaSSD, 4)
99
100 };
101
102 #endif
103