//*-- 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; } }