- Channels (or pads) with bad addressing of manus or occupancy rate > 1 are not calib...
[u/mrichter/AliRoot.git] / MUON / AliMUONPedestal.h
1 #ifndef ALIMUONPEDESTAL_H
2 #define ALIMUONPEDESTAL_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup calib
10 /// \class AliMUONPedestal
11 /// \brief Implementation of the pedestal computing
12 /// 
13 //  Author Alberto Baldisseri, JL Charvet 
14
15 #include <TObject.h>
16
17 #include "AliMpConstants.h"
18
19 class AliMUONVStore;
20
21 class TTimeStamp;
22 class THashTable;
23
24 // global variables
25 const Int_t kNChannels = AliMpConstants::ManuNofChannels();
26 const Int_t kADCMax    = 4095;
27
28 class AliMUONPedestal : public TObject
29 {
30   public:
31     AliMUONPedestal();
32     virtual ~AliMUONPedestal();
33     
34     /// return the number of events
35     void SetAliNEvents(Int_t events) {fNEvents = events;}
36     /// return the Run number
37     void SetAliRunNumber(Int_t run) {fRunNumber = run;}
38     /// return the total number of channels (or pads)
39     void SetAliNChannel(Int_t nch) {fNChannel = nch;}
40     /// output .log file of DAs
41     void SetAlifilcout(ofstream* stream) {fFilcout = stream;}
42     /// return date and time
43     TTimeStamp* GetDate() {return fDate;}
44     /// Count parity errors per Buspatch
45     THashTable* GetErrorBuspatchTable() {return fErrorBuspatchTable;}
46     /// Occupancy rate per each couple (Buspatch, Manu)
47     THashTable* GetManuBuspatchTable() {return fManuBuspatchTable;}
48     /// return the name of DAPedestal .root file
49     Char_t* GetHistoFileName() {return fHistoFileName;}
50     void MakePed(Int_t bp,Int_t manu,Int_t ch,Int_t charge);
51     void MakePedStore(TString flatfile);
52     TString WritePedData(Int_t bp, Int_t manu, Int_t ch, Double_t mean, Double_t sigma);
53     TString WritePedHeader();
54
55     /// set specific  DA prefixname
56     void SetprefixDA(char* folder) {sprintf(fprefixDA,"%s",folder);}
57     /// set the index of calibration runs
58     void SetAliIndex(Int_t ind) {fIndex = ind;}
59
60   protected:
61     Int_t fN; ///<
62     Int_t fNEvents; ///< Number of events
63     Int_t fRunNumber; ///< run number
64     Int_t fNChannel; ///< Nb of channels (pads)
65     Int_t fNManu; ///<  Nb of Manu
66     THashTable* fErrorBuspatchTable; ///< Table for buspatches with parity errors 
67     THashTable* fManuBuspatchTable; ///< Table for (buspatch, manu)
68  
69     TTimeStamp* fDate; ///< date
70     ofstream* fFilcout; ///< .log output file
71     Char_t fHistoFileName[256]; ///< .root histo file
72     AliMUONVStore* fPedestalStore; ///< 
73     Int_t fIndex; ///< calibration run index
74     Char_t fprefixDA[256]; ///< specific DA prefixname
75
76   private:
77     /// Not implemented
78     AliMUONPedestal(const AliMUONPedestal& rhs);
79     /// Not implemented
80     AliMUONPedestal& operator = (const AliMUONPedestal& rhs);
81
82   ClassDef(AliMUONPedestal,1) // 
83 };
84
85 #endif