]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TRD/Cal/AliTRDCalROC.h
bootstrap pdf before usage
[u/mrichter/AliRoot.git] / TRD / Cal / AliTRDCalROC.h
... / ...
CommitLineData
1#ifndef ALITRDCALROC_H
2#define ALITRDCALROC_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8//////////////////////////////////////////////////
9// //
10// TRD calibration base class for one ROC //
11// //
12//////////////////////////////////////////////////
13
14#include <TObject.h>
15
16class TArrayI;
17class TArrayF;
18class TH2F;
19class TH1F;
20class TGraph2D;
21class TH2D;
22
23//_____________________________________________________________________________
24class AliTRDCalROC : public TObject
25{
26
27 public:
28
29 AliTRDCalROC();
30 AliTRDCalROC(Int_t p, Int_t c);
31 AliTRDCalROC(const AliTRDCalROC &c);
32 virtual ~AliTRDCalROC();
33 AliTRDCalROC &operator=(const AliTRDCalROC &c);
34 virtual void Copy(TObject &c) const;
35
36 Int_t GetNrows() const { return fNrows; };
37 Int_t GetNcols() const { return fNcols; };
38
39 Int_t GetChannel(Int_t c, Int_t r) const { return r+c*fNrows; };
40 Int_t GetNchannels() const { return fNchannels; };
41
42 Float_t GetValue(Int_t ich) const { return (Float_t) fData[ich] / 10000; };
43 Float_t GetValue(Int_t col, Int_t row) { return GetValue(GetChannel(col,row)); };
44
45 void SetValue(Int_t ich, Float_t value) { fData[ich] = (UShort_t) (value * 10000); };
46 void SetValue(Int_t col, Int_t row, Float_t value)
47 { SetValue(GetChannel(col,row), value); };
48
49 // statistic
50 //
51 Double_t GetMean(AliTRDCalROC * const outlierROC=0) const;
52 Double_t GetRMS(AliTRDCalROC * const outlierROC=0) const;
53 Double_t GetMedian(AliTRDCalROC * const outlierROC=0) const;
54 Double_t GetLTM(Double_t *sigma=0, Double_t fraction=0.9, AliTRDCalROC * const outlierROC=0);
55
56 // algebra
57 Bool_t Add(Float_t c1);
58 Bool_t Multiply(Float_t c1);
59 Bool_t Add(const AliTRDCalROC * roc, Double_t c1 = 1);
60 Bool_t Multiply(const AliTRDCalROC * roc);
61 Bool_t Divide(const AliTRDCalROC * roc);
62
63 // noise
64 Bool_t Unfold();
65
66 //Plots
67 TH2F * MakeHisto2D(Float_t min, Float_t max,Int_t type, Float_t mu = 1.0);
68 TH1F * MakeHisto1D(Float_t min, Float_t max,Int_t type, Float_t mu = 1.0);
69
70 protected:
71
72 Int_t fPla; // Plane number
73 Int_t fCha; // Chamber number
74
75 Int_t fNrows; // Number of rows
76 Int_t fNcols; // Number of columns
77
78 Int_t fNchannels; // Number of channels
79 UShort_t *fData; //[fNchannels] Data
80
81 ClassDef(AliTRDCalROC, 2) // TRD ROC calibration class
82
83};
84
85#endif