- Disentangle masks effect from trigger chamber efficiency estimation.
[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 #ifndef ROOT_TObject
16 #  include <TObject.h>
17 #endif
18 #ifndef ROOT_TString
19 #  include <TString.h>
20 #endif
21
22 class AliMUONVStore;
23
24 class TTimeStamp;
25
26 class AliMUONPedestal : public TObject
27 {
28   public:
29     AliMUONPedestal();
30     virtual ~AliMUONPedestal();
31     
32     /// return the number of current events
33     void SetAliNCurrentEvents(Int_t events) {fNCurrentEvents = events;}
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() const {return fDate;}
44     /// Count parity errors per Buspatch
45     AliMUONVStore* GetErrorBuspatchTable() const {return fErrorBuspatchTable;}
46     /// return the name of DAPedestal .root file
47     const char* GetHistoFileName() const;
48     /// load MuonTrk configuration from ascii dbfile
49     void LoadConfig(const char* dbfile);
50     /// sum pedestal values for mean and sigma determination
51     void MakePed(Int_t bp,Int_t manu,Int_t ch,Int_t charge);
52
53     /// set config flag
54     void SetconfigDA(Int_t ind) {fConfig = ind;}
55     /// set Nb of evt threshold to calculate pedestal
56     void SetnEvthreshold(Int_t ind) {fNEvthreshold = ind;}
57     /// sorting flag
58     void SetnSorting(Int_t ind) {fSorting = ind;}
59     /// set specific  DA prefixname
60     void SetprefixDA(const char* folder) { fPrefixDA=folder;}
61     /// set the index of calibration runs
62     void SetAliIndex(Int_t ind) {fIndex = ind;}
63     /// Compute the pedestal data (mean, sigma)
64     void Finalize();
65     /// Create String to be put into file or AMORE DB
66     void MakeASCIIoutput(ostream& out) const;
67     /// Fill Histograms
68     void MakeControlHistos();
69
70   Int_t ADCMax() const { return 4095; }
71
72 protected:
73     //    Int_t fN; ///<
74     Int_t fNCurrentEvents; ///< Number of current events
75     Int_t fNEvthreshold; ///< Nbevt threshold (pedestal calculation)
76     Int_t fSorting; ///< sorting flag (pedestal values)
77     Int_t fNEvents; ///< Number of events
78     Int_t fRunNumber; ///< run number
79     Int_t fNChannel; ///< Nb of channels (pads)
80     Int_t fNManu; ///<  Nb of Manu
81     Int_t fNManuConfig; ///<  Nb of Manu in the current detector configuration
82     Int_t fConfig; ///< flag 1(0) for reading(or not) configuration ascii file
83     AliMUONVStore* fErrorBuspatchTable; ///< Table for buspatches with parity errors 
84     AliMUONVStore* fManuBuspatchTable; ///< Occupancy rate for each (buspatch, manu)
85     AliMUONVStore* fManuBPoutofconfigTable; ///< (buspatch, manu) out of config
86  
87     TTimeStamp* fDate; ///< date
88     ofstream* fFilcout; ///< .log output file
89     TString fHistoFileName; ///< .root histo file
90     AliMUONVStore* fPedestalStore; ///< data container:  (Pedmean,sigma) values for each (BP,manuId)
91     Int_t fIndex; ///< calibration run index
92     TString fPrefixDA; ///< specific DA prefixname
93
94   static const Int_t fgkADCMax; ///< max channel count
95   
96   private:
97     /// Not implemented
98     AliMUONPedestal(const AliMUONPedestal& rhs);
99     /// Not implemented
100     AliMUONPedestal& operator = (const AliMUONPedestal& rhs);
101
102   ClassDef(AliMUONPedestal,5) // Pedestal computing for DA 
103 };
104
105 #endif