From 5d3a24dbd604eecbe4f142d497c489373fc70d84 Mon Sep 17 00:00:00 2001
From: "Stephen A. Wood" <saw@jlab.org>
Date: Mon, 21 Apr 2014 14:07:35 -0400
Subject: [PATCH] Test script that uses CCDB as parameter source

---
 examples/hodtest_ccdb.C | 90 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)
 create mode 100644 examples/hodtest_ccdb.C

diff --git a/examples/hodtest_ccdb.C b/examples/hodtest_ccdb.C
new file mode 100644
index 0000000..9b36440
--- /dev/null
+++ b/examples/hodtest_ccdb.C
@@ -0,0 +1,90 @@
+
+{
+
+  //
+  //  Steering script to test hodoscope decoding
+  //
+  
+  Int_t RunNumber=50017;
+  char* RunFileNamePattern="daq04_%d.log.0";
+  
+  // Load parameters from CCDB
+
+  gHcParms->OpenCCDB(RunNumber);
+  gHcParms->LoadCCDBDirectory("hms","h");
+  gHcParms->LoadCCDBDirectory("sos","s");
+  gHcParms->LoadCCDBDirectory("gen","g");
+
+  // Get these legacy things from the Run database
+  gHcParms->Define("gen_run_number", "Run Number", RunNumber);
+  gHcParms->AddString("g_ctp_database_filename", "DBASE/test.database");
+  gHcParms->Load(gHcParms->GetString("g_ctp_database_filename"), RunNumber);
+
+
+  // Generate db_cratemap to correspond to map file contents
+  char command[100];
+  sprintf(command,"./make_cratemap.pl < %s > db_cratemap.dat",gHcParms->GetString("g_decode_map_filename"));
+  system(command);
+
+  // Load the Hall C style detector map
+  gHcDetectorMap=new THcDetectorMap();
+  gHcDetectorMap->Load(gHcParms->GetString("g_decode_map_filename"));
+
+  // Set up the equipment to be analyzed.
+
+  THaApparatus* HMS = new THcHallCSpectrometer("H","HMS");
+  gHaApps->Add( HMS );
+
+  // Add hodoscope
+  HMS->AddDetector( new THcHodoscope("hod", "Hodoscope" ));
+  HMS->AddDetector( new THcShower("cal", "Shower" ));
+  HMS->AddDetector( new THcDC("dc", "Drift Chambers" ));
+  THcAerogel* aerogel = new THcAerogel("aero", "Aerogel Cerenkov" );
+  HMS->AddDetector( aerogel );
+  THcCherenkov* cherenkov = new THcCherenkov("cher", "Gas Cerenkov" );
+  HMS->AddDetector( cherenkov );
+
+  THaApparatus* SOS = new THcHallCSpectrometer("S","SOS");
+  gHaApps->Add( SOS );
+  // Add detectors
+  SOS->AddDetector( new THcHodoscope("hod", "Hodoscope" ));
+  SOS->AddDetector( new THcShower("cal", "Shower" ));
+  SOS->AddDetector( new THcDC("dc", "Drift Chambers" ));
+
+  // Set up the analyzer - we use the standard one,
+  // but this could be an experiment-specific one as well.
+  // The Analyzer controls the reading of the data, executes
+  // tests/cuts, loops over Acpparatus's and PhysicsModules,
+  // and executes the output routines.
+  THcAnalyzer* analyzer = new THcAnalyzer;
+  
+
+  // A simple event class to be output to the resulting tree.
+  // Creating your own descendant of THaEvent is one way of
+  // defining and controlling the output.
+  THaEvent* event = new THaEvent;
+  
+  // Define the run(s) that we want to analyze.
+  // We just set up one, but this could be many.
+  char RunFileName[100];
+  sprintf(RunFileName,RunFileNamePattern,RunNumber);
+  THaRun* run = new THaRun(RunFileName);
+
+  // Eventually need to learn to skip over, or properly analyze
+  // the pedestal events
+  run->SetEventRange(1,100000);//  Physics Event number, does not
+                                // include scaler or control events
+
+  // Define the analysis parameters
+  analyzer->SetEvent( event );
+  analyzer->SetOutFile( "hodtest.root" );
+  analyzer->SetOdefFile("output.def");
+  analyzer->SetCutFile("hodtest_cuts.def");        // optional
+  analyzer->SetCountMode(2);// Counter event number same as gen_event_ID_number
+  
+  // File to record cuts accounting information
+  //  analyzer->SetSummaryFile("summary_example.log"); // optional
+  
+  analyzer->Process(run);     // start the actual analysis
+  analyzer->PrintReport("report.template","report.out");
+}
-- 
GitLab