//*-- Author : Dan Magestro
//*-- Modified: 19/11/2001 by D. Magestro
//_HADES_CLASS_DESCRIPTION
///////////////////////////////////////////////////////////////////////////////
// HStartTaskSet
//
// This HTaskSet contains the tasks for the Start detector
//
// Active options for HStart2HitF task:
// - skipevents: controls skipping of all events without successful
// start time reconstruction.
//
// BEGIN_HTMLFor more information, see this analysis logbook entry. END_HTML
//
///////////////////////////////////////////////////////////////////////////////
#include "TObjString.h"
#include "hstart2calibrater.h"
#include "hstart2hitf.h"
#include "hstarttaskset.h"
#include "htaskset.h"
using namespace std;
ClassImp(HStartTaskSet)
HTask* HStartTaskSet::make(const Char_t *select, const Option_t *option)
{
// Returns a pointer to the Start task or taskset specified by 'select'
//
// Active options for HStart2HitF task:
// - skipevents: controls skipping of all events without successful
// start time reconstruction.
HTaskSet *tasks = new HTaskSet("Start", "List of Start tasks");
TString sel = select;
TString opt = option;
opt.ToLower();
parseArguments(opt);
if (sel.IsNull()) {
tasks->add(new HStart2Calibrater("start.cal", "Start cal"));
if (kTRUE == fUseStartHit) {
tasks->add(new HStart2HitF("start.hitF", "Start hit finder", fSkipEvent));
}
}
return tasks;
}
void HStartTaskSet::parseArguments(TString s1)
{
s1.ToLower();
s1.ReplaceAll(" ", "");
if (0 != s1.Length()) {
TIterator* myiter = NULL;
TObjString* stemp = NULL;
TString argument;
TObjArray* myarguments = s1 .Tokenize(",");
// iterate over the list of arguments and compare it
// to the known key words.
myiter = myarguments->MakeIterator();
myiter->Reset();
while (0 != (stemp = static_cast(myiter->Next()))) {
argument = stemp->GetString();
if (0 == argument.CompareTo("skipevents")) {
fSkipEvent = kTRUE;
}
if (0 == argument.CompareTo("nostarthit")) {
fUseStartHit = kFALSE;
}
}
delete myiter;
myiter = NULL;
myarguments ->Delete();
delete myarguments;
}
}