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>
24 #include "TPluginManager.h"
28 int main(int argc, char **argv)
31 gROOT->GetPluginManager()->AddHandler("TVirtualStreamerInfo",
38 Bool_t diagnostics = kFALSE;
39 Char_t* fileName = argv[1];
40 TString secondArgument(argv[2]);
42 if(secondArgument.Contains("--diagnostics=true"))
44 if(secondArgument.Contains("--help")) {
45 std::cout<<"Usage: filename --diagnostics=true/false . --help this help"<<std::endl;
48 if(!secondArgument.IsWhitespace()&& !secondArgument.Contains("--help")
49 && !secondArgument.Contains("--diagnostics=true")) {
50 std::cout<<"Second argument wrong. Use --help"<<std::endl;
56 AliFMDParameters::Instance()->Init(kFALSE,0);
57 AliFMDParameters::Instance()->UseRcuTrailer(!old);
59 //This will only work for FDR 1 data. When newer data becomes available the ! must be removed!
60 AliFMDParameters::Instance()->UseCompleteHeader(!old);
63 AliRawReader *reader = 0;
64 TString fileNam(fileName);
65 if (fileNam.EndsWith(".root")) reader = new AliRawReaderRoot(fileName);
66 else if (fileNam.EndsWith(".raw")) reader = new AliRawReaderDate(fileName);
68 std::cerr << "Don't know how to make reader for " << fileNam
77 gainDA.SetSaveDiagnostics(diagnostics);
83 Int_t retvalConditions = daqDA_FES_storeFile("conditions.csv", AliFMDParameters::Instance()->GetConditionsShuttleID());
84 Int_t retvalGain = daqDA_FES_storeFile("gains.csv", AliFMDParameters::Instance()->GetGainShuttleID());
86 if(retvalConditions!=0 || retvalGain!=0)
87 std::cerr << "Pedestal DA failed" << std::endl;
89 if(retvalGain != 0) return retvalGain;
90 else return retvalConditions;