ROOT logo
//*-- 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_HTML<b><font color="maroon">For more information, see <a target="_top" href="http://webdb.gsi.de/pls/hades_webdbs/hanal.hal_posting_query.show_posting_text?p_id=436">this analysis logbook entry<a>.</font></b> END_HTML
//
///////////////////////////////////////////////////////////////////////////////

#include "TObjString.h"

#include "hstart2calibrater.h"
#include "hstart2hitf.h"
#include "hstart2hitfsim.h"
#include "hstarttaskset.h"
#include "htaskset.h"
#include "hades.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'
   // select :  real or simulation
   //
   // Active options for HStart2HitF task:
   //    - skipevents: controls skipping of all events without successful
   //                  start time reconstruction.
   //    - nostarthit: do not use hitfinder

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

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

   if (sel.CompareTo("real") == 0 || gHades->getEmbeddingMode() > 0) {
       tasks->add(new HStart2Calibrater("start.cal", "Start cal"));
      if (kTRUE == fUseStartHit) {
         tasks->add(new HStart2HitF("start.hitF", "Start hit finder", fSkipEvent));
      }
   }
   if (sel.CompareTo("simulation") == 0 || gHades->getEmbeddingMode() > 0) {
       tasks->add(new HStart2HitFSim("start.hitF", "Start hit finder"));
   }
   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<TObjString*>(myiter->Next()))) {
         argument = stemp->GetString();
	 Info("parseArguments()","option: %s", argument.Data() );
         if (0 == argument.CompareTo("skipevents")) {
            fSkipEvent = kTRUE;
         }
         if (0 == argument.CompareTo("nostarthit")) {
            fUseStartHit = kFALSE;
	 }
      }
      delete myiter;
      myiter = NULL;

      myarguments ->Delete();
      delete myarguments;

   }
}
 hstarttaskset.cc:1
 hstarttaskset.cc:2
 hstarttaskset.cc:3
 hstarttaskset.cc:4
 hstarttaskset.cc:5
 hstarttaskset.cc:6
 hstarttaskset.cc:7
 hstarttaskset.cc:8
 hstarttaskset.cc:9
 hstarttaskset.cc:10
 hstarttaskset.cc:11
 hstarttaskset.cc:12
 hstarttaskset.cc:13
 hstarttaskset.cc:14
 hstarttaskset.cc:15
 hstarttaskset.cc:16
 hstarttaskset.cc:17
 hstarttaskset.cc:18
 hstarttaskset.cc:19
 hstarttaskset.cc:20
 hstarttaskset.cc:21
 hstarttaskset.cc:22
 hstarttaskset.cc:23
 hstarttaskset.cc:24
 hstarttaskset.cc:25
 hstarttaskset.cc:26
 hstarttaskset.cc:27
 hstarttaskset.cc:28
 hstarttaskset.cc:29
 hstarttaskset.cc:30
 hstarttaskset.cc:31
 hstarttaskset.cc:32
 hstarttaskset.cc:33
 hstarttaskset.cc:34
 hstarttaskset.cc:35
 hstarttaskset.cc:36
 hstarttaskset.cc:37
 hstarttaskset.cc:38
 hstarttaskset.cc:39
 hstarttaskset.cc:40
 hstarttaskset.cc:41
 hstarttaskset.cc:42
 hstarttaskset.cc:43
 hstarttaskset.cc:44
 hstarttaskset.cc:45
 hstarttaskset.cc:46
 hstarttaskset.cc:47
 hstarttaskset.cc:48
 hstarttaskset.cc:49
 hstarttaskset.cc:50
 hstarttaskset.cc:51
 hstarttaskset.cc:52
 hstarttaskset.cc:53
 hstarttaskset.cc:54
 hstarttaskset.cc:55
 hstarttaskset.cc:56
 hstarttaskset.cc:57
 hstarttaskset.cc:58
 hstarttaskset.cc:59
 hstarttaskset.cc:60
 hstarttaskset.cc:61
 hstarttaskset.cc:62
 hstarttaskset.cc:63
 hstarttaskset.cc:64
 hstarttaskset.cc:65
 hstarttaskset.cc:66
 hstarttaskset.cc:67
 hstarttaskset.cc:68
 hstarttaskset.cc:69
 hstarttaskset.cc:70
 hstarttaskset.cc:71
 hstarttaskset.cc:72
 hstarttaskset.cc:73
 hstarttaskset.cc:74
 hstarttaskset.cc:75
 hstarttaskset.cc:76
 hstarttaskset.cc:77
 hstarttaskset.cc:78
 hstarttaskset.cc:79
 hstarttaskset.cc:80
 hstarttaskset.cc:81
 hstarttaskset.cc:82
 hstarttaskset.cc:83
 hstarttaskset.cc:84
 hstarttaskset.cc:85
 hstarttaskset.cc:86
 hstarttaskset.cc:87
 hstarttaskset.cc:88
 hstarttaskset.cc:89
 hstarttaskset.cc:90
 hstarttaskset.cc:91
 hstarttaskset.cc:92
 hstarttaskset.cc:93
 hstarttaskset.cc:94
 hstarttaskset.cc:95