Extacting the OCDB in a separate module. The detectors have write permission in the...
[u/mrichter/AliRoot.git] / TRD / Macros / AliTRDFindTheCoef.C
1 #if !defined( __CINT__) || defined(__MAKECINT__)
2
3 #include <TFile.h>
4 #include <TProfile2D.h>
5 #include <TTree.h>
6 #include <Riostream.h>
7 #include <TSystem.h>
8 #include "AliReconstruction.h"
9 #include "../TRD/AliTRDCalibra.h"
10 #include "AliCDBManager.h"
11 #include "TStopwatch.h"
12
13 #endif
14
15
16
17 void AliTRDFindTheCoef() 
18 {
19   //
20   // This macro takes a 2D histo or vector in the file TRD.calibration.root
21   // tries to find the coeffficients
22   // writes the result in the form of a tree in the file coeftest.root
23  
24   TStopwatch timer;
25   timer.Start();
26
27  
28   
29   ////Set the CDBManager(You have to use the same as during the reconstruction)*************************
30   AliCDBManager *man = AliCDBManager::Instance();
31   man->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); 
32   man->SetRun(0);
33
34   ////Set the parameters of AliTRDCalibra***************
35   AliTRDCalibra *calibra = AliTRDCalibra::Instance();
36   
37   ////Take the Histo2d or tree in the TRD.calibration.root file 
38   TFile *file = new TFile("TRD.calibration.root","READ");
39   //TProfile2D *h = (TProfile2D *) file->Get("PRF2d");
40   TTree *h = (TTree *) file->Get("treePRF2d");
41   //h->SetDirectory(0);
42  
43   
44   //TProfile2D *h = (TProfile2D *) file->Get("PRF2d");
45   TTree *h1 = (TTree *) file->Get("treePH2d");
46   //h->SetDirectory(0);
47  
48   
49   //TProfile2D *h = (TProfile2D *) file->Get("PRF2d");
50   TTree *h2 = (TTree *) file->Get("treeCH2d");
51   //h->SetDirectory(0);
52  
53  
54   ////How many bins did you have?
55   //calibra->SetNumberBinCharge(100);
56   //calibra->SetNumberBinPRF(20);
57
58
59   ////Which method do you want to use (It is always the default method that will be put in the database)
60   //calibra->SetMeanChargeOn();
61   //calibra->SetFitChargeBisOn();
62   //calibra->SetFitPHOn();
63   //calibra->SetPeriodeFitPH(10);
64
65   //Some details?
66   //calibra->SetRangeFitPRF(0.5);//fit from -0.5 and 0.5 with a gaussian the PRF
67   //calibra->SetT0Shift(0.1433);//will always abstract 0.1433 mus to the result of the method for time 0
68
69   ////What do you want to see?
70   calibra->SetDebug(1);//0 (nothing to see), 1, 2, 3, or 4
71   //calibra->SetDet(0,1,14);//in case of fDebug = 3 and 4
72   //calibra->SetFitVoir(2);//in case of fDebug = 2
73
74   ////How many statistics do you want to accept?
75   calibra->SetMinEntries(10);// 1 entry at least to fit
76
77   ////Do you want to write the result
78   //calibra->SetWriteCoef(1);
79
80   ////Do you want to change the name of the file (TRD.coefficient.root)
81   //calibra->SetWriteNameCoef("coeftest.root");
82
83   //Set the mode on the z and rphi direction for each calibration paramaters
84   calibra->SetModeCalibrationFromTObject((TObject *)h2,0);
85   calibra->SetModeCalibrationFromTObject((TObject *)h1,1);
86   calibra->SetModeCalibrationFromTObject((TObject *)h,2);
87   
88   //Fit the pad response function 
89   calibra->FitPRFOnline(h);  
90    
91   //Fit the avreage pulse height
92   calibra->FitPHOnline(h1);  
93   
94   //Fit the deposited charge
95   calibra->FitCHOnline(h2);  
96
97   file->Close();
98   
99   timer.Stop();
100   timer.Print();
101
102 }