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