//*-- Author : A.Rustamov

//Tsk set to All momentum Reconstruction methods
//The arguments:
//metamatching is connected by default!!!!
//spline -conect spline  task
//docluser - connect Tof clustering

#include "hades.h"
#include "hdetector.h"
#include "hspectrometer.h"
#include "hmdctaskset.h"
#include "htask.h"
#include "htaskset.h"
#include "hdebug.h"
#include <TROOT.h>
#include <TClass.h>
#include "haddef.h"
#include "hmdccalibrater1.h"
#include "hmdccalibrater2.h"
#include "hmdccalibrater2sim.h"
#include "hmdcdigitizer.h"
#include "hmdctrackdset.h"
#include "hmdcdedxmaker.h"
#include "hmdcvertexfind.h"
#include "hmdchitf.h"
#include "hreconstructor.h"
#include "hmdcsegmentf.h"
#include "hmdcsetup.h"
#include "hruntimedb.h"
#include "hrun.h"
#include "hdatasource.h"
#include "hlocation.h"
#include "hmessagemgr.h"
#include "hsplinetrackF.h"
#include "hmetamatchF.h"
#include "htofcluster.h"
#include "hsplinetaskset.h"
#include "hsplinetofclF.h"
#include <TBrowser.h>
//#include "hmdctrackgtofclF.h"

using namespace std;

Bool_t HSplineTaskSet::isSpline=kFALSE;
Bool_t HSplineTaskSet::isMetaMatching=kFALSE;
//Bool_t HSplineTaskSet::isSimulation=kFALSE;
Bool_t HSplineTaskSet::isClustering=kFALSE;

HMetaMatchF*    HSplineTaskSet::pMetaMatchF=0;
HSplineTrackF*  HSplineTaskSet::pSplineTrackF=0;
HSplineTofClF*  HSplineTaskSet::pSplineTofClF=0;
//HTofClusterf*   HSplineTaskSet::pTofClusterF=0;

 HSplineTaskSet::HSplineTaskSet(){;}
 HSplineTaskSet::HSplineTaskSet(Text_t name[],Text_t title[]):HTaskSet(name,title){;}
 HSplineTaskSet::~HSplineTaskSet()
{ 
 if( pMetaMatchF)
{ 
  delete pMetaMatchF;
  pMetaMatchF=0;
}
if (pSplineTrackF)
{
  delete pSplineTrackF;
  pSplineTrackF=0;
}
//if(pTofClusterF)
//{
//  delete pTofClusterF;
//  ptofClusterF=0;

//}
}

 HTask* HSplineTaskSet::make(const char* select,Option_t *options)
{
  HTaskSet *tasks=new HTaskSet("Spline","Spline Task Sets");
  TString opt=options;
  parseArguments(opt);
  pMetaMatchF=new HMetaMatchF("MetaMAtching","MetaMAtching");
  tasks->add(pMetaMatchF);
  //if(isSimulation)
//    {
      if(isSpline)
        {
	  pSplineTrackF=new HSplineTrackF("SplineTrack","SplineTrack");
          tasks->add(pSplineTrackF);
	}
   	
      if(isClustering)
      {
      pSplineTofClF=new HSplineTofClF("tofClustering","tofClustering",1);
      tasks->add(pSplineTofClF);
      }	
      
      else
      {
        pSplineTofClF=new HSplineTofClF("tofClustering","tofClustering",0);
        tasks->add(pSplineTofClF);
      }
      
      
//    }

  return tasks;
}

 void HSplineTaskSet::parseArguments(TString a)
{
  char* mystring=(char*)a.Data();
  char* buffer;
  TList myarguments;
  TObjString *stemp;
  TString argument;
  Int_t count=0;
  
  while(1) // find all token in option string and put them to a list
    {
      if(count==0)
	{
	  buffer=strtok(mystring,",");
	  stemp=new TObjString(buffer);
	  myarguments.Add(stemp);
	}
      
      if(!(buffer=strtok(NULL,",")))break;
      stemp=new TObjString(buffer);
      myarguments.Add(stemp);
      
      count++;
    }
  TIterator* myiter=myarguments.MakeIterator();
  while ((stemp=(TObjString*)myiter->Next())!= 0) {
    argument=stemp->GetString();
    if(argument.CompareTo("spline")==0)
	    {
	      isSpline=kTRUE;
	    }
    if(argument.CompareTo("doClustering")==0)
                {
		isClustering=kTRUE;
		}
					  	    
      
  }
  delete myiter;
}

  ClassImp(HSplineTaskSet)
  
  
  


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.