// FileName: reco_far_cosmic_daikon04_base_dogwood0.C
// Created 19 May 2008
// (previously reco_far_cosmic_daikon04_base_dogwoodtest0.C)

// Usage
// loon -bq reco_far_cosmic_daikon04_base_dogwood0.C <reroot_file>

/////////////////////////////////////////////////////////
// Output Files:                                       //
//  CandS.root - candidate output file                 //
//  ntupleStS.root - NtpSt ntuple output               //
//                                                     //
/////////////////////////////////////////////////////////

#include "headers/aclic.h"
#include "headers/test_filename.h"

class JobC;

#include "headers/reroot/reroot_create_path.h"
#include "headers/reroot/reroot_do_report.h"
#include "headers/reroot/reroot_configure.h"

#include "headers/far_cosmic_mc/far_cosmic_mc_create_path.h"
#include "headers/far_cosmic_mc/far_cosmic_mc_configure.h"
#include "headers/far_cosmic_mc/far_cosmic_mc_set_msg_levels.h"

#include "headers/srsafitter/srsafitter_set_msg_levels.h"

#include "headers/far_mc/far_mc_do_report.h"
#include "headers/far_mc/far_mc_set_calibrator.h"

#include "headers/io/set_input_mc.h"
#include "headers/io/attach_output_mc_srsafitter.h"

#include "headers/util/run.h"

#include "headers/configure_ugli.h"

void reco_far_cosmic_daikon04_base_dogwood0(int nSkip = 0, int nRun = 100000)
{
  test_filename('f');

  gROOT->Macro("macros/load_libs.C");

  RecJobRecord::SetGlobalProdName("Dogwood");

  JobC jc;

  //Create path - first the reroot job
  JobCPath& reroot = reroot_create_path(jc, "Reco");

  //And Now the Normal Reco chain
  JobCPath& far_cosmic_mc = far_cosmic_mc_create_path(jc, "Reco1");

  //Attach the normal reco chain after the reroot path
  reroot.Attach(&far_cosmic_mc);

  set_input_mc(jc);

  reroot_configure(reroot, Detector::kFar);

  //Enable all filters in the reroot path. CandChop crashes otherwise
  //have to do this after reroot_configure since it sets filters to off
  reroot.SetAllFilters(1);
  far_cosmic_mc.SetAllFilters(0);

  far_cosmic_mc_configure(far_cosmic_mc);

  configure_ugli();

  far_mc_set_calibrator(0);

  reroot_do_report(reroot);
  far_mc_do_report(far_cosmic_mc);

  attach_output_mc_srsafitter(jc, far_cosmic_mc, "CandS.root", true);

  far_cosmic_mc_set_msg_levels(jc);
  srsafitter_set_msg_levels(jc);

  run(jc, reroot, nSkip, nRun);
}
