Adding PiKP-only histograms and eliminating a number of switches where histograms...
[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     AliMUONPedestal(TRootIOCtor* dummy);
31     virtual ~AliMUONPedestal();
32     
33     /// return the number of current events
34     void SetAliNCurrentEvents(Int_t events) {fNCurrentEvents = events;}
35     /// return the number of events
36     void SetAliNEvents(Int_t events) {fNEvents = events;}
37     /// return the Run number
38     void SetAliRunNumber(Int_t run) {fRunNumber = run;}
39     /// return the total number of channels (or pads)
40     void SetAliNChannel(Int_t nch) {fNChannel = nch;}
41     /// output .log file of DAs
42     void SetAlifilcout(ofstream* stream) {fFilcout = stream;}
43     /// return date and time
44     TTimeStamp* GetDate() const {return fDate;}
45     /// Count parity errors per Buspatch
46     AliMUONVStore* GetErrorBuspatchTable() const {return fErrorBuspatchTable;}
47     /// return the name of DAPedestal .root file
48     const char* GetHistoFileName() const;
49     /// load MuonTrk configuration from ascii dbfile
50     void LoadConfig(const char* dbfile);
51     /// sum pedestal values for mean and sigma determination
52     void MakePed(Int_t bp,Int_t manu,Int_t ch,Int_t charge);
53
54     /// set config flag
55     void SetconfigDA(Int_t ind) {fConfig = ind;}
56     /// set Nb of evt threshold to calculate pedestal
57     void SetnEvthreshold(Int_t ind) {fNEvthreshold = ind;}
58     /// set DA status (return code)
59     void SetStatusDA(Int_t ind) {fStatusDA = ind;}
60     /// get DA status (return code)
61     Int_t GetStatusDA() const {return fStatusDA;}
62     /// sorting flag
63     void SetnSorting(Int_t ind) {fSorting = ind;}
64     /// set specific  DA prefixname
65     void SetprefixDA(const char* folder) { fPrefixDA=folder;}
66      /// set specific LDC prefixname
67     void SetprefixLDC(const char* folder) { fPrefixLDC=folder;}
68    /// set the index of calibration runs
69     void SetAliIndex(Int_t ind) {fIndex = ind;}
70     /// Compute the pedestal data (mean, sigma)
71     void Finalize();
72     /// Create String to be put into file or AMORE DB
73     void MakeASCIIoutput(ostream& out) const;
74     /// Fill Histograms
75     void MakeControlHistos();
76
77     Int_t ADCMax() const { return 4095; }
78
79 protected:
80     //    Int_t fN; ///<
81     Int_t fNCurrentEvents; ///< Number of current events
82     Int_t fNEvthreshold; ///< Nbevt threshold (pedestal calculation)
83     Int_t fSorting; ///< sorting flag (pedestal values)
84     Int_t fNEvents; ///< Number of events
85     Int_t fRunNumber; ///< run number
86     Int_t fNChannel; ///< Nb of channels (pads)
87     Int_t fNManu; ///<  Nb of Manu
88     Int_t fNManuConfig; ///<  Nb of Manu in the current detector configuration
89     Int_t fConfig; ///< flag 1(0) for reading(or not) configuration ascii file
90     Int_t fStatusDA; ///< DA return code (0=OK)
91     AliMUONVStore* fErrorBuspatchTable; ///< Table for buspatches with parity errors 
92     AliMUONVStore* fManuBuspatchTable; ///< Occupancy rate for each (buspatch, manu)
93     AliMUONVStore* fManuBPoutofconfigTable; ///< (buspatch, manu) out of config
94  
95     TTimeStamp* fDate; ///< date
96     ofstream* fFilcout; ///< .log output file
97     TString fHistoFileName; ///< .root histo file
98     AliMUONVStore* fPedestalStore; ///< data container:  (Pedmean,sigma) values for each (BP,manuId)
99     Int_t fIndex; ///< calibration run index
100     TString fPrefixDA; ///< specific DA prefixname
101     TString fPrefixLDC; ///< specific LDC prefixname
102
103   static const Int_t fgkADCMax; ///< max channel count
104   
105   private:
106     /// Not implemented
107     AliMUONPedestal(const AliMUONPedestal& rhs);
108     /// Not implemented
109     AliMUONPedestal& operator = (const AliMUONPedestal& rhs);
110
111   ClassDef(AliMUONPedestal,5) // Pedestal computing for DA 
112 };
113
114 #endif