#include "hpiontrackertaskset.h"
#include "hpiontrackercalibrater.h"
#include "hpiontrackerhitf.h"
#include "hpiontrackertrackf.h"
#include "TObjString.h"
#include "TObjArray.h"
using namespace std;
ClassImp(HPionTrackerTaskSet)
HPionTrackerTaskSet::HPionTrackerTaskSet(void) : HTaskSet() {
  
  fSkipEvent = kFALSE;
  fUsePionTrackerHit = kTRUE;
  fUsePionTrackerTrack = kTRUE;
}
HPionTrackerTaskSet::HPionTrackerTaskSet(const Text_t name[], const Text_t title[])
                    : HTaskSet(name, title) {
  
  fSkipEvent = kFALSE;
  fUsePionTrackerHit = kTRUE;
  fUsePionTrackerTrack = kTRUE;
}
HTask* HPionTrackerTaskSet::make(const Char_t *select, const Option_t *option) {
  
  
  
  
  HTaskSet *tasks = new HTaskSet("PionTracker", "List of PionTracker tasks");
  TString sel = select;
  TString opt = option;
  sel.ToLower();
  opt.ToLower();
  parseArguments(opt);
  if (sel.IsNull() || sel.CompareTo("real")==0) {
    tasks->add(new HPionTrackerCalibrater("piontracker.cal", "PionTracker cal"));
    if (kTRUE == fUsePionTrackerHit) {
      tasks->add(new HPionTrackerHitF("piontracker.hitF", "PionTracker hit finder", fSkipEvent));
    }
    if (kTRUE == fUsePionTrackerTrack) {
      tasks->add(new HPionTrackerTrackF("piontracker.trackF", "PionTracker track finder", fSkipEvent));
    }
  }
  return tasks;
}
void HPionTrackerTaskSet::parseArguments(TString s1) {
  
  s1.ToLower();
  s1.ReplaceAll(" ", "");
  if (0 != s1.Length()) {
    TIterator*  myiter      = NULL;
    TObjString* stemp       = NULL;
    TString     argument;
    TObjArray*  myarguments = s1 .Tokenize(",");
    
    
    myiter = myarguments->MakeIterator();
    myiter->Reset();
    while (0 != (stemp = static_cast<TObjString*>(myiter->Next()))) {
      argument = stemp->GetString();
      if (0 == argument.CompareTo("skipevents")) {
        fSkipEvent = kTRUE;
      }
      if (0 == argument.CompareTo("nopiontrackerhit")) {
        fUsePionTrackerHit = kFALSE;
      }
      if (0 == argument.CompareTo("nopiontrackertrack")) {
        fUsePionTrackerTrack = kFALSE;
      }
    }
    delete myiter;
    myiter = NULL;
    myarguments->Delete();
    delete myarguments;
  }
}
 hpiontrackertaskset.cc:10  hpiontrackertaskset.cc:11  hpiontrackertaskset.cc:12  hpiontrackertaskset.cc:13  hpiontrackertaskset.cc:14  hpiontrackertaskset.cc:15  hpiontrackertaskset.cc:16  hpiontrackertaskset.cc:17  hpiontrackertaskset.cc:18  hpiontrackertaskset.cc:19  hpiontrackertaskset.cc:20  hpiontrackertaskset.cc:21  hpiontrackertaskset.cc:22  hpiontrackertaskset.cc:23  hpiontrackertaskset.cc:24  hpiontrackertaskset.cc:25  hpiontrackertaskset.cc:26  hpiontrackertaskset.cc:27  hpiontrackertaskset.cc:28  hpiontrackertaskset.cc:29  hpiontrackertaskset.cc:30  hpiontrackertaskset.cc:31  hpiontrackertaskset.cc:32  hpiontrackertaskset.cc:33  hpiontrackertaskset.cc:34  hpiontrackertaskset.cc:35  hpiontrackertaskset.cc:36  hpiontrackertaskset.cc:37  hpiontrackertaskset.cc:38  hpiontrackertaskset.cc:39  hpiontrackertaskset.cc:40  hpiontrackertaskset.cc:41  hpiontrackertaskset.cc:42  hpiontrackertaskset.cc:43  hpiontrackertaskset.cc:44  hpiontrackertaskset.cc:45  hpiontrackertaskset.cc:46  hpiontrackertaskset.cc:47  hpiontrackertaskset.cc:48  hpiontrackertaskset.cc:49  hpiontrackertaskset.cc:50  hpiontrackertaskset.cc:51  hpiontrackertaskset.cc:52  hpiontrackertaskset.cc:53  hpiontrackertaskset.cc:54  hpiontrackertaskset.cc:55  hpiontrackertaskset.cc:56  hpiontrackertaskset.cc:57  hpiontrackertaskset.cc:58  hpiontrackertaskset.cc:59  hpiontrackertaskset.cc:60  hpiontrackertaskset.cc:61  hpiontrackertaskset.cc:62  hpiontrackertaskset.cc:63  hpiontrackertaskset.cc:64  hpiontrackertaskset.cc:65  hpiontrackertaskset.cc:66  hpiontrackertaskset.cc:67  hpiontrackertaskset.cc:68  hpiontrackertaskset.cc:69  hpiontrackertaskset.cc:70  hpiontrackertaskset.cc:71  hpiontrackertaskset.cc:72  hpiontrackertaskset.cc:73  hpiontrackertaskset.cc:74  hpiontrackertaskset.cc:75  hpiontrackertaskset.cc:76  hpiontrackertaskset.cc:77  hpiontrackertaskset.cc:78  hpiontrackertaskset.cc:79  hpiontrackertaskset.cc:80  hpiontrackertaskset.cc:81  hpiontrackertaskset.cc:82  hpiontrackertaskset.cc:83  hpiontrackertaskset.cc:84  hpiontrackertaskset.cc:85  hpiontrackertaskset.cc:86  hpiontrackertaskset.cc:87  hpiontrackertaskset.cc:88  hpiontrackertaskset.cc:89  hpiontrackertaskset.cc:90  hpiontrackertaskset.cc:91  hpiontrackertaskset.cc:92  hpiontrackertaskset.cc:93  hpiontrackertaskset.cc:94  hpiontrackertaskset.cc:95  hpiontrackertaskset.cc:96  hpiontrackertaskset.cc:97  hpiontrackertaskset.cc:98