]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDdEdxCalibUtils.h
- support for no. of timebins != 3*n
[u/mrichter/AliRoot.git] / TRD / AliTRDdEdxCalibUtils.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15 //
16 //
17 //
18 //  Xianguo Lu 
19 //  lu@physi.uni-heidelberg.de
20 //  Xianguo.Lu@cern.ch
21 //
22 /*
23 grep " AliTRDdEdxCalibUtils::" AliTRDdEdxCalibUtils.cxx | grep "=" -v  | grep -v "[6]" | grep -v printf  |wc
24 grep "(" AliTRDdEdxCalibUtils.h | grep ";" | grep -v grep | grep -v ClassDef | grep -v "{" | grep -v typedef | wc
25 */
26
27
28 #ifndef ALITRDDEDXCALIBUTILS_H
29 #define ALITRDDEDXCALIBUTILS_H
30
31 #ifndef TVECTORD_H
32 #include "TVectorD.h"
33 #endif
34
35 #ifndef THNSPARSE_H
36 #include "THnBase.h"
37 #endif
38
39 #ifndef TTREESTREAM_H
40 #include "TTreeStream.h"
41 #endif 
42
43 #ifndef ALITRDDEDXCALIBHISTARRAY_H
44 #include "AliTRDdEdxCalibHistArray.h"
45 #endif
46
47 class TH1D;
48 class TH2D;
49 class TObjArray;
50
51 class AliESDEvent;
52 class AliESDtrack;
53 class AliTRDcluster;
54 class AliTRDtrackV1;
55 class AliTRDseedV1;
56
57 class AliTRDdEdxCalibUtils
58 {
59  public:
60
61   static void SetObjArray(TObjArray * obj){fgObjArray = obj;}
62   static TObjArray * GetObjArray();
63   static TObjArray * GetObj(const Bool_t kinvq, const Double_t mag, const Int_t charge);
64   static TObjArray* HistToObj(const THnBase *hh, Int_t run=-999, TList *lout=0x0, TTreeSRedirector *calibStream=0x0);
65   static void DeleteObjArray();
66   static Bool_t GenerateOCDB(const Int_t run=-1, const TString path="local://./");
67
68   static AliTRDdEdxCalibHistArray * GetHistArray(){return fgHistArray;}
69   static THnBase * GetHistAt(const Int_t iter);
70   static void IniHistArray(TList *list, const Bool_t kNoInv);
71   static Bool_t ReadHistArray(const TString filename, const TString listname);
72   static void FillHist(const AliTRDtrackV1 *trdv1, const Bool_t kinvq, const Double_t mag, const Int_t charge, const Double_t scale) ;
73   static void DeleteHistArray();
74
75   static Double_t GetCalibTPCscale(const Int_t tpcncls, const Double_t tpcsig);
76   
77  private:
78   static void FillHist(const Int_t ncls, const TVectorD *arrayQ, const TVectorD *arrayX, THnBase * hcalib, const Double_t scale);
79   static void GetPHCountMeanRMS(const TH1D *hnor, TH1D *&hmean);
80
81  
82   static AliTRDdEdxCalibHistArray * fgHistArray;         //array containing 8 THnBase!
83   static TObjArray * fgObjArray;                    //array containing 8 TObjArray!
84  
85 };
86
87 #endif