]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/FMDGainda.cxx
Bringing CMakeLists under svn maintenance
[u/mrichter/AliRoot.git] / FMD / FMDGainda.cxx
index c681a52dd0c9a053d14ab4b555124ba283bc9448..ea6c7dddc865677596d86d613f3bd3d23bd29431 100644 (file)
@@ -11,6 +11,7 @@
   Output Files:            gains.csv
   Trigger types used:      GAIN
 */
+#include <Riostream.h>
 #include <TSystem.h>
 #include <TString.h>
 #include <AliFMDParameters.h>
 #include "daqDA.h"
 #include "TROOT.h"
 #include "TPluginManager.h"
+#ifdef ALI_AMORE
+# include <AmoreDA.h>
+# include <TH2.h>
+#endif
 
 
 
@@ -34,6 +39,34 @@ int main(int argc, char **argv)
                                        "TStreamerInfo",
                                        "RIO",
                                        "TStreamerInfo()");
+  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", "Minuit", 
+                                       "TMinuitMinimizer",
+                                       "Minuit", 
+                                       "TMinuitMinimizer(const char *)");
+  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", 
+                                       "GSLMultiMin", 
+                                       "ROOT::Math::GSLMinimizer",
+                                       "MathMore", 
+                                       "GSLMinimizer(const char *)");
+  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", 
+                                       "GSLMultiFit", 
+                                       "ROOT::Math::GSLNLSMinimizer",
+                                       "MathMore", "GSLNLSMinimizer(int)");
+  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", 
+                                       "GSLSimAn", 
+                                       "ROOT::Math::GSLSimAnMinimizer",
+                                       "MathMore", 
+                                       "GSLSimAnMinimizer(int)");
+  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", 
+                                       "Linear", 
+                                       "TLinearMinimizer",
+                                       "Minuit", 
+                                       "TLinearMinimizer(const char *)");
+  gROOT->GetPluginManager()->AddHandler("ROOT::Math::Minimizer", 
+                                       "Fumili", 
+                                       "TFumiliMinimizer",
+                                       "Fumili", 
+                                       "TFumiliMinimizer(int)");
   
   
   Bool_t diagnostics = kFALSE;
@@ -44,15 +77,15 @@ int main(int argc, char **argv)
     TString arg(argv[i]);
     if      (arg.Contains("--diagnostics=true")) diagnostics = kTRUE;
     else if (arg.Contains("--help")) { 
-      std::cout << "Usage: " << argv[0] << " FILENAME [OPTIONS]\n\n"
+      cout << "Usage: " << argv[0] << " FILENAME [OPTIONS]\n\n"
                << "Options:\n" 
                << "    --diagnostics=BOOL Make diagnostics ROOT file\n"
-               << std::endl;
+               << endl;
       return 0;
     }
     else { 
-      std::cerr << "Unknown option: " << arg << "\n"
-               << "Try '" << argv[0] << " --help" << std::endl;
+      cerr << "Unknown option: " << arg << "\n"
+               << "Try '" << argv[0] << " --help" << endl;
       return 1;
     }
   }
@@ -71,8 +104,8 @@ int main(int argc, char **argv)
     reader = new AliRawReaderRoot(fileName);
   else reader = new AliRawReaderDate(fileName);
   if (!reader) { 
-    std::cerr << "Don't know how to make reader for " << fileNam 
-             << std::endl;
+    cerr << "Don't know how to make reader for " << fileNam 
+             << endl;
     return -2;
   }
 
@@ -81,21 +114,54 @@ int main(int argc, char **argv)
   timer.Start();
   AliFMDGainDA gainDA;
   gainDA.SetSaveDiagnostics(diagnostics);
+#ifdef ALI_AMORE
+  gainDA.SetMakeSummaries(kTRUE);
+#endif
   gainDA.Run(reader);
   
   timer.Stop();
   timer.Print();
   
-  Int_t  retvalConditions = daqDA_FES_storeFile("conditions.csv", AliFMDParameters::Instance()->GetConditionsShuttleID());
-  Int_t  retvalGain = daqDA_FES_storeFile("gains.csv", AliFMDParameters::Instance()->GetGainShuttleID());
+  Int_t  retvalConditions = 
+    daqDA_FES_storeFile("conditions.csv", 
+                       AliFMDParameters::Instance()->GetConditionsShuttleID());
+  Int_t  retvalGain = 
+    daqDA_FES_storeFile("gains.csv", 
+                       AliFMDParameters::Instance()->GetGainShuttleID());
 
   if(retvalConditions!=0 || retvalGain!=0)
-    std::cerr << "Pedestal DA failed" << std::endl;
+    cerr << "Pedestal DA failed" << endl;
   
+#ifdef ALI_AMORE
+  try { 
+    amore::da::AmoreDA myAmore(amore::da::AmoreDA::kSender);
+
+    UShort_t det = 0;
+    for (det = 1; det <= 3; det++) 
+      if (gainDA.HasSeenDetector(det)) break;
+    if (det >= 1 && det <= 3) { 
+      TObject* runNo = new TObject;
+      runNo->SetUniqueID(reader->GetRunNumber());
+      myAmore.Send(Form("gainRunNoFMD%d", det), runNo);
+    }
+                  
+    TIter     next(&gainDA.GetSummaries());
+    TObject*  obj = 0;
+    while ((obj = next())) 
+      myAmore.Send(obj->GetName(), obj);
+    
+  }
+  catch (exception& e) {
+    cerr << "Failed to make AMORE instance: " << e.what() << endl;
+  }
+                              
+#endif
+
   if(retvalGain != 0) return retvalGain;
-  else return retvalConditions;
-  
-  
-  
-  
+  return retvalConditions;
+
 }
+//
+// EOF
+//
+