3 FMD DA for online calibration of conditions
6 Link: fmd.nbi.dk/fmd/offline
9 Number of events needed: usually 102400
11 Output Files: gains.csv
12 Trigger types used: GAIN
16 #include <AliFMDParameters.h>
17 #include <AliRawReader.h>
18 #include <TStopwatch.h>
19 #include <AliFMDGainDA.h>
20 #include <AliRawReaderDate.h>
21 #include <AliRawReaderRoot.h>
25 #include "TPluginManager.h"
29 int main(int argc, char **argv)
32 gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo",
37 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", "Minuit",
40 "TMinuitMinimizer(const char *)");
41 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
43 "ROOT::Math::GSLMinimizer",
45 "GSLMinimizer(const char *)");
46 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
48 "ROOT::Math::GSLNLSMinimizer",
49 "MathMore", "GSLNLSMinimizer(int)");
50 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
52 "ROOT::Math::GSLSimAnMinimizer",
54 "GSLSimAnMinimizer(int)");
55 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
59 "TLinearMinimizer(const char *)");
60 gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer",
64 "TFumiliMinimizer(int)");
67 Bool_t diagnostics = kFALSE;
68 Char_t* fileName = argv[1];
69 TString secondArgument(argv[2]);
71 for (int i = 2; i < argc; 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"
77 << " --diagnostics=BOOL Make diagnostics ROOT file\n"
82 std::cerr << "Unknown option: " << arg << "\n"
83 << "Try '" << argv[0] << " --help" << std::endl;
89 AliFMDParameters::Instance()->Init(kFALSE,0);
91 //This will only work for FDR 1 data. When newer data becomes available the ! must be removed!
92 AliFMDParameters::Instance()->UseCompleteHeader(old);
94 AliLog::EnableDebug(kFALSE);
96 AliRawReader *reader = 0;
97 TString fileNam(fileName);
98 if (fileNam.EndsWith(".root"))
99 reader = new AliRawReaderRoot(fileName);
100 else reader = new AliRawReaderDate(fileName);
102 std::cerr << "Don't know how to make reader for " << fileNam
111 gainDA.SetSaveDiagnostics(diagnostics);
117 Int_t retvalConditions = daqDA_FES_storeFile("conditions.csv", AliFMDParameters::Instance()->GetConditionsShuttleID());
118 Int_t retvalGain = daqDA_FES_storeFile("gains.csv", AliFMDParameters::Instance()->GetGainShuttleID());
120 if(retvalConditions!=0 || retvalGain!=0)
121 std::cerr << "Pedestal DA failed" << std::endl;
123 if(retvalGain != 0) return retvalGain;
124 else return retvalConditions;