]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - FMD/FMDGainda.cxx
updae of the GPU framework
[u/mrichter/AliRoot.git] / FMD / FMDGainda.cxx
... / ...
CommitLineData
1/*
2
3 FMD DA for online calibration of conditions
4
5 Contact: canute@nbi.dk
6 Link: fmd.nbi.dk/fmd/offline
7 Run Type: GAIN
8 DA Type: LDC
9 Number of events needed: usually 102400
10 Input Files: raw data
11 Output Files: gains.csv
12 Trigger types used: GAIN
13*/
14#include <TSystem.h>
15#include <TString.h>
16#include <AliFMDParameters.h>
17#include <AliRawReader.h>
18#include <TStopwatch.h>
19#include <AliFMDGainDA.h>
20#include <AliRawReaderDate.h>
21#include <AliRawReaderRoot.h>
22#include <AliLog.h>
23#include "daqDA.h"
24#include "TROOT.h"
25#include "TPluginManager.h"
26
27
28
29int main(int argc, char **argv)
30{
31
32 gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo",
33 "*",
34 "TStreamerInfo",
35 "RIO",
36 "TStreamerInfo()");
37 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", "Minuit",
38 "TMinuitMinimizer",
39 "Minuit",
40 "TMinuitMinimizer(const char *)");
41 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
42 "GSLMultiMin",
43 "ROOT::Math::GSLMinimizer",
44 "MathMore",
45 "GSLMinimizer(const char *)");
46 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
47 "GSLMultiFit",
48 "ROOT::Math::GSLNLSMinimizer",
49 "MathMore", "GSLNLSMinimizer(int)");
50 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
51 "GSLSimAn",
52 "ROOT::Math::GSLSimAnMinimizer",
53 "MathMore",
54 "GSLSimAnMinimizer(int)");
55 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
56 "Linear",
57 "TLinearMinimizer",
58 "Minuit",
59 "TLinearMinimizer(const char *)");
60 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
61 "Fumili",
62 "TFumiliMinimizer",
63 "Fumili",
64 "TFumiliMinimizer(int)");
65
66
67 Bool_t diagnostics = kFALSE;
68 Char_t* fileName = argv[1];
69 TString secondArgument(argv[2]);
70
71 for (int i = 2; i < argc; i++) {
72 TString arg(argv[i]);
73 if (arg.Contains("--diagnostics=true")) diagnostics = kTRUE;
74 else if (arg.Contains("--help")) {
75 std::cout << "Usage: " << argv[0] << " FILENAME [OPTIONS]\n\n"
76 << "Options:\n"
77 << " --diagnostics=BOOL Make diagnostics ROOT file\n"
78 << std::endl;
79 return 0;
80 }
81 else {
82 std::cerr << "Unknown option: " << arg << "\n"
83 << "Try '" << argv[0] << " --help" << std::endl;
84 return 1;
85 }
86 }
87 Bool_t old = kTRUE;
88
89 AliFMDParameters::Instance()->Init(kFALSE,0);
90
91 //This will only work for FDR 1 data. When newer data becomes available the ! must be removed!
92 AliFMDParameters::Instance()->UseCompleteHeader(old);
93
94 AliLog::EnableDebug(kFALSE);
95
96 AliRawReader *reader = 0;
97 TString fileNam(fileName);
98 if (fileNam.EndsWith(".root"))
99 reader = new AliRawReaderRoot(fileName);
100 else reader = new AliRawReaderDate(fileName);
101 if (!reader) {
102 std::cerr << "Don't know how to make reader for " << fileNam
103 << std::endl;
104 return -2;
105 }
106
107
108 TStopwatch timer;
109 timer.Start();
110 AliFMDGainDA gainDA;
111 gainDA.SetSaveDiagnostics(diagnostics);
112 gainDA.Run(reader);
113
114 timer.Stop();
115 timer.Print();
116
117 Int_t retvalConditions = daqDA_FES_storeFile("conditions.csv", AliFMDParameters::Instance()->GetConditionsShuttleID());
118 Int_t retvalGain = daqDA_FES_storeFile("gains.csv", AliFMDParameters::Instance()->GetGainShuttleID());
119
120 if(retvalConditions!=0 || retvalGain!=0)
121 std::cerr << "Pedestal DA failed" << std::endl;
122
123 if(retvalGain != 0) return retvalGain;
124 else return retvalConditions;
125
126
127
128
129}