{

  gSystem->Load("libDataUtil");
  gSystem->Load("libRecoBase");
  gSystem->Load("libNoiseFilter");
  gSystem->Load("libFarDetDataQuality");
  gSystem->Load("libFilterDigitSR");
  gSystem->Load("libBField");
  gSystem->Load("libNumericalMethods");
  gSystem->Load("libSwimmer");
  gSystem->Load("libDeMux");
  gSystem->Load("libAltDeMux");
  gSystem->Load("libFilterLI");
  gSystem->Load("libCandStripSR");
  gSystem->Load("libCandSliceSR");
  gSystem->Load("libCandTrackSR");
  gSystem->Load("libCandClusterSR");
  gSystem->Load("libCandSubShowerSR");
  gSystem->Load("libCandShowerSR");
  gSystem->Load("libCandFitTrackSR");
  gSystem->Load("libCandEventSR");
  gSystem->Load("libVertexFinder");
  gSystem->Load("libTimeCalibratorSR");
  gSystem->Load("libAstroUtil");
  gSystem->Load("libCandMorgue");
  gSystem->Load("libCandNtupleSR");
  gSystem->Load("libMCNtuple");
  gSystem->Load("libTruthHelperNtuple");
  gSystem->Load("libStandardNtuple");
  gSystem->Load("libCandNtupleSRModule");
  gSystem->Load("libTruthHelperNtupleModule");
  gSystem->Load("libStandardNtupleModule");

  gSystem->Load("libFiltration");
  gSystem->Load("libCandShield");     // Only to be used R1.17+
  gSystem->Load("libSpillTiming");
  gSystem->Load("libBeamDataUtil");   //Beam mon
  gSystem->Load("libBeamDataNtuple"); //Beam Mon

  gSystem->Load("libNtpFitSA");
  gSystem->Load("libCandFitTrackSA");
  gSystem->Load("libNtpFitSAModule");
 
  gSystem->Load("libCandTrackCam"); 
  gSystem->Load("libCandFitTrackCam");

  gSystem->Load("libPhotonTransport");
  gSystem->Load("libDetSim");
  
  JobC j;
  
  // Create a job path to run SA fitter
  j.Path.Create("FitSA",
                "DatabaseToucher::Ana "
                "FitTrackSAListModule::Reco "
  );

  j.Input.Set("Streams=Cand,Config,DaqSnarl,SimSnarl");

  // configure SA fitter to use CandFitTrackSRList as input
  j.Path("FitSA").Mod("FitTrackSAListModule").Set("ListIn=CandFitTrackCamList");

  // Set Ugli to use only database.
  UgliLoanPool::SetAlwaysUseDbi(true);
    

  // create a job path to write out NtpFitSA ntuple
  j.Path.Create("NtpSA",
                        "NtpFitSAModule::Reco "
                        "Output::Put ");
  j.Path("NtpSA").Mod("Output").Cmd("DefineStream NtpFitSA NtpFitSARecord");
  j.Path("NtpSA").Mod("Output").Set("Streams=NtpFitSA");
  j.Path("NtpSA").Mod("Output").Set("FileName=ntpSA.root");

  j.Path.Attach("FitSA","NtpSA");

  j.Msg.SetLevel("DatabaseToucher","Warning");
  //j.Msg.SetLevel("FitTrackSA", "Verbose");

  j.Path("FitSA").Run();
  j.Path("FitSA").Report();
}
