ROOT logo
using namespace std;
#include "htoftaskset.h"
#include "hdebug.h"
#include "haddef.h"
#include "hades.h"
#include "htofdigitizer.h"
#include "htofhitf.h"
#include "htofhitf2.h"
#include "htofhitfsim.h"
#include "htofclusterf.h"
#include "htofclusterfsim.h"

#include "TObjArray.h"
#include "TIterator.h"
#include "TObjString.h"

using namespace std;
#include <iostream>
#include <iomanip>

//*-- Author : Dan Magestro
//*-- Modified: 04/12/2001  by R. Holzmann
//*-- Modified: 19/11/2001  by D. Magestro

//*-- Modified: 30/06/2004  by J. Otwinowski
// TofCluster category is filled by default

//*-- Modified: 06/07/2004  by J. Otwinowski
//	Come back to the optional TofCluster (better for cosmics) 

//*-- Modified: 07/01/2005  by P. Tlusty
//	TofClusterFSim called for sim data instead of TofClusterF 

//_HADES_CLASS_DESCRIPTION 
///////////////////////////////////////////////////////////////////////////////
// HTofTaskSet
//
// This HTaskSet contains the tasks for the Tof detector
//
// BEGIN_HTML<b><font color="maroon">For more information, see <a target="_top" href="http://webdb.gsi.de:8010/pls/hades_webdbs/hanal.hal_posting_query.show_posting_text?p_id=436">this analysis logbook entry<a>.</font></b> END_HTML
//
///////////////////////////////////////////////////////////////////////////////

HTofTaskSet::HTofTaskSet(const Text_t name[],const Text_t title[]) : HTaskSet(name,title) {
    // Constructor
    fhitfinderVersion = 2;
    fdoCluster         = kTRUE;
}


HTofTaskSet::HTofTaskSet(void) : HTaskSet() {
    // Default constructor
    fhitfinderVersion = 2;
    fdoCluster         = kTRUE;
}


HTofTaskSet::~HTofTaskSet(void) {
  // Destructor.
}

void HTofTaskSet::parseArguments(TString s1) {
    // parses arguments to the make tasks function
    //
    // OPTIONS:
    // hitfinder1 : switch hitfinder to old version 1. default is 2;
    // noclust    : siwtch off clusterfinder. default is run clusterfinder


    TString s2 = s1;

    s1.ToLower();
    s1.ReplaceAll(" ","");

    Ssiz_t len=s1.Length();

    if(len!=0) {

	TObjArray* myarguments = s1.Tokenize(",");
	TObjString *stemp;
	TString argument;

	TIterator* myiter=myarguments->MakeIterator();
	// go over list of arguments and compare the known keys

	while ((stemp=(TObjString*)myiter->Next())!= 0)
	{
	    argument=stemp->GetString();

	    Info("parseArguments()","option: %s", argument.Data() );

	    if( argument.CompareTo("hitfinder1") == 0) fhitfinderVersion = 1;
	    if( argument.CompareTo("noclust")   == 0)  fdoCluster        = kFALSE;
	    else
	    {
		Error("parseArguments()","Unknown option = %s",argument.Data());
	    }
	}
	delete myiter;

	myarguments->Delete();
	delete myarguments ;
    }
}


HTask* HTofTaskSet::make(const Char_t *select,const Option_t *option) {
  // Returns a pointer to the Tof task or taskset specified by 'select'

  HTaskSet *tasks = new HTaskSet("Tof","List of Tof tasks");

  TString sel = select;
  TString opt = option;
  sel.ToLower();
  opt.ToLower();
  parseArguments(opt);

  if(sel.CompareTo("simulation")==0&&gHades->getEmbeddingMode()!=0)
  {
      Error("HTofTaskSet::make()","embeddingMode > 0 in simulation NOT ALLOWED!");
      exit(1);
  }

  if( sel.CompareTo("simulation")==0 ||
     (sel.CompareTo("real")      ==0 && gHades->getEmbeddingMode()!=0))
  {
      tasks->add( new HTofDigitizer("tof.digi","tof.digi") );
      if(fhitfinderVersion ==1) tasks->add( new HTofHitFSim("tof.hitfs","tof.hitfs") );
      if(fhitfinderVersion ==2) tasks->add( new HTofHitF2("tof.hitfs","tof.hitfs") );

      if(fdoCluster) {
	  tasks->add( new HTofClusterFSim("tof.clusf","tof.clusf") );
      }
  }
  if(sel.CompareTo("real")==0&&gHades->getEmbeddingMode()==0)
  {
      tasks->add( new HTofHitF("tof.hitf","tof.hitf") );
      if(fhitfinderVersion ==1) tasks->add( new HTofHitF("tof.hitfs","tof.hitfs") );
      if(fhitfinderVersion ==2) tasks->add( new HTofHitF2("tof.hitfs","tof.hitfs") );

      if(fdoCluster) {
	  tasks->add( new HTofClusterF("tof.clusf","tof.clusf") );
      }
  }
  return tasks;
}

ClassImp(HTofTaskSet)










 htoftaskset.cc:1
 htoftaskset.cc:2
 htoftaskset.cc:3
 htoftaskset.cc:4
 htoftaskset.cc:5
 htoftaskset.cc:6
 htoftaskset.cc:7
 htoftaskset.cc:8
 htoftaskset.cc:9
 htoftaskset.cc:10
 htoftaskset.cc:11
 htoftaskset.cc:12
 htoftaskset.cc:13
 htoftaskset.cc:14
 htoftaskset.cc:15
 htoftaskset.cc:16
 htoftaskset.cc:17
 htoftaskset.cc:18
 htoftaskset.cc:19
 htoftaskset.cc:20
 htoftaskset.cc:21
 htoftaskset.cc:22
 htoftaskset.cc:23
 htoftaskset.cc:24
 htoftaskset.cc:25
 htoftaskset.cc:26
 htoftaskset.cc:27
 htoftaskset.cc:28
 htoftaskset.cc:29
 htoftaskset.cc:30
 htoftaskset.cc:31
 htoftaskset.cc:32
 htoftaskset.cc:33
 htoftaskset.cc:34
 htoftaskset.cc:35
 htoftaskset.cc:36
 htoftaskset.cc:37
 htoftaskset.cc:38
 htoftaskset.cc:39
 htoftaskset.cc:40
 htoftaskset.cc:41
 htoftaskset.cc:42
 htoftaskset.cc:43
 htoftaskset.cc:44
 htoftaskset.cc:45
 htoftaskset.cc:46
 htoftaskset.cc:47
 htoftaskset.cc:48
 htoftaskset.cc:49
 htoftaskset.cc:50
 htoftaskset.cc:51
 htoftaskset.cc:52
 htoftaskset.cc:53
 htoftaskset.cc:54
 htoftaskset.cc:55
 htoftaskset.cc:56
 htoftaskset.cc:57
 htoftaskset.cc:58
 htoftaskset.cc:59
 htoftaskset.cc:60
 htoftaskset.cc:61
 htoftaskset.cc:62
 htoftaskset.cc:63
 htoftaskset.cc:64
 htoftaskset.cc:65
 htoftaskset.cc:66
 htoftaskset.cc:67
 htoftaskset.cc:68
 htoftaskset.cc:69
 htoftaskset.cc:70
 htoftaskset.cc:71
 htoftaskset.cc:72
 htoftaskset.cc:73
 htoftaskset.cc:74
 htoftaskset.cc:75
 htoftaskset.cc:76
 htoftaskset.cc:77
 htoftaskset.cc:78
 htoftaskset.cc:79
 htoftaskset.cc:80
 htoftaskset.cc:81
 htoftaskset.cc:82
 htoftaskset.cc:83
 htoftaskset.cc:84
 htoftaskset.cc:85
 htoftaskset.cc:86
 htoftaskset.cc:87
 htoftaskset.cc:88
 htoftaskset.cc:89
 htoftaskset.cc:90
 htoftaskset.cc:91
 htoftaskset.cc:92
 htoftaskset.cc:93
 htoftaskset.cc:94
 htoftaskset.cc:95
 htoftaskset.cc:96
 htoftaskset.cc:97
 htoftaskset.cc:98
 htoftaskset.cc:99
 htoftaskset.cc:100
 htoftaskset.cc:101
 htoftaskset.cc:102
 htoftaskset.cc:103
 htoftaskset.cc:104
 htoftaskset.cc:105
 htoftaskset.cc:106
 htoftaskset.cc:107
 htoftaskset.cc:108
 htoftaskset.cc:109
 htoftaskset.cc:110
 htoftaskset.cc:111
 htoftaskset.cc:112
 htoftaskset.cc:113
 htoftaskset.cc:114
 htoftaskset.cc:115
 htoftaskset.cc:116
 htoftaskset.cc:117
 htoftaskset.cc:118
 htoftaskset.cc:119
 htoftaskset.cc:120
 htoftaskset.cc:121
 htoftaskset.cc:122
 htoftaskset.cc:123
 htoftaskset.cc:124
 htoftaskset.cc:125
 htoftaskset.cc:126
 htoftaskset.cc:127
 htoftaskset.cc:128
 htoftaskset.cc:129
 htoftaskset.cc:130
 htoftaskset.cc:131
 htoftaskset.cc:132
 htoftaskset.cc:133
 htoftaskset.cc:134
 htoftaskset.cc:135
 htoftaskset.cc:136
 htoftaskset.cc:137
 htoftaskset.cc:138
 htoftaskset.cc:139
 htoftaskset.cc:140
 htoftaskset.cc:141
 htoftaskset.cc:142
 htoftaskset.cc:143
 htoftaskset.cc:144
 htoftaskset.cc:145
 htoftaskset.cc:146
 htoftaskset.cc:147
 htoftaskset.cc:148
 htoftaskset.cc:149
 htoftaskset.cc:150
 htoftaskset.cc:151
 htoftaskset.cc:152
 htoftaskset.cc:153
 htoftaskset.cc:154
 htoftaskset.cc:155
 htoftaskset.cc:156
 htoftaskset.cc:157
 htoftaskset.cc:158