Update
[u/mrichter/AliRoot.git] / FMD / AliFMDPreprocessor.h
1 #ifndef ALI_FMD_PREPROCESSOR_H
2 #define ALI_FMD_PREPRECESSOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4  * reserved. 
5  *
6  * See cxx source for full Copyright notice                               
7  */
8 //___________________________________________________________________
9 // The class processes data points from DCS (via Amanada), and DAQ DA
10 // files (via FXS) to make calibration data for the FMD.
11 // More to come. 
12
13
14 #include "AliPreprocessor.h"
15 #ifndef ALIFMDUSHORTMAP_H
16 # include <AliFMDUShortMap.h>
17 #endif
18 #ifndef ALIFMDBOOLMAP_H
19 # include <AliFMDBoolMap.h>
20 #endif
21 typedef AliFMDUShortMap AliFMDCalibZeroSuppression;
22 typedef AliFMDBoolMap  AliFMDCalibDeadMap;
23 class AliFMDCalibPedestal;
24 class AliFMDCalibGain;
25 class AliFMDCalibSampleRate;
26 class AliFMDCalibStripRange;
27 class AliCDBEntry;
28 class TList;
29
30 //___________________________________________________________________
31 /** The class processes data points from DCS (via Amanada), and DAQ DA
32     files (via FXS) to make calibration data for the FMD.
33
34     Data points: 
35        *  Nothing yet. 
36
37     DAQ FXS file:
38        * pedestals - a (ASCII) Comma Separated Values files with the
39                      fields 
40                           rcu    DDL number 
41                           board   FEC board number 
42                           chip    ALTRO chip number on FEC
43                           channel ALTRO channel number
44                           strip   VA1 strip number
45                           sample  Sample number
46                           ped     Mean of ADC spectra
47                           noise   Spread of ADC spectra
48                           mu      Mean of Gaussian fit to ADC spectra
49                           sigma   Variance of Gaussian fit to ADC spectra
50                           chi2    Chi^2 per degrees of freedom of fit
51        * Gains     - a (ASCII) Comma Separated Values files with the
52                      fields 
53                           rcu    DDL number 
54                           board   FEC board number 
55                           chip    ALTRO chip number on FEC
56                           channel ALTRO channel number
57                           strip   VA1 strip number
58                           gain    Slope of gain
59                           error   Error on gain
60                           chi2    Chi^2 per degrees of freedom of fit
61 */
62 class AliFMDPreprocessor: public AliPreprocessor 
63 {
64 public:
65   /** Constructor */
66   AliFMDPreprocessor(): AliPreprocessor("FMD",0) {}
67   /** Constructor 
68       @param shuttle Shuttle */
69   AliFMDPreprocessor(AliShuttleInterface* shuttle) ;
70   
71   
72   /** Destructor */
73   virtual ~AliFMDPreprocessor() {}
74   /** Get an entry from OCDB */ 
75   AliCDBEntry* GetFromCDB(const char* second, const char* third);
76 protected:
77   /** 
78    * Get the pedestal calibrations 
79    *
80    * @param list List of files 
81    */
82   AliFMDCalibPedestal*   GetPedestalCalibration(const TList* list);
83   /** 
84    * Get the gain calibrations 
85    * 
86    * @param list List of files 
87    */
88   AliFMDCalibGain*       GetGainCalibration(const TList*);
89   /** 
90    * Get the dead channels map based on the pedestal
91    * an gain calibration objects. 
92    */
93   AliFMDCalibDeadMap*    GetDeadChannelMap(AliFMDCalibPedestal* pedcalib,
94                                            AliFMDCalibGain*     gaincalib);
95
96   /** Get info calibrations. 
97       @param files List of files. 
98       @param s     On return, newly allocated object 
99       @param r     On return, newly allocated object 
100       @param z     On return, newly allocated object 
101       @return kTRUE on success */
102   Bool_t GetInfoCalibration(TList* files, 
103                             AliFMDCalibSampleRate*&      s,
104                             AliFMDCalibStripRange*&      r, 
105                             AliFMDCalibZeroSuppression*& z);
106   /** Convinience function 
107       @param list On return, list of files. 
108       @param system Alice system (DAQ, DCS, ...)
109       @param id     File id
110       @return kTRUE on success. */
111   Bool_t GetAndCheckFileSources(TList*& list, Int_t system, const char* id);
112   
113   /** Entry method 
114       @param dcsAliasMap Map of DCS data points */
115   virtual UInt_t Process(TMap* dcsAliasMap);
116 private:
117   ClassDef(AliFMDPreprocessor, 1)
118 };
119
120 #endif
121 //____________________________________________________________________
122 //
123 // Local Variables:
124 //   mode: C++
125 // End:
126 //
127 // EOF
128 //