HYDRA_development_version
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
hpiontrackertaskset.cc
Go to the documentation of this file.
1 //_HADES_CLASS_DESCRIPTION
2 ///////////////////////////////////////////////////////////////////////////////
3 // HPionTrackerTaskSet
4 //
5 // This HTaskSet contains the tasks for the PionTracker detector
6 //
7 // Options:
8 // - nopiontrackerhit: runs the task list only up to cal level (default: kTRUE)
9 // - skipevents: options for HPionTrackerHitF task (default: kFALSE)
10 // controls skipping of all events without successful
11 // time reconstruction.
12 //
13 ///////////////////////////////////////////////////////////////////////////////
14 
15 #include "hpiontrackertaskset.h"
16 #include "hpiontrackercalibrater.h"
17 #include "hpiontrackerhitf.h"
18 #include "hpiontrackertrackf.h"
19 #include "TObjString.h"
20 #include "TObjArray.h"
21 
22 using namespace std;
23 
25 
27  // default constructor sets the default options
28  fSkipEvent = kFALSE;
29  fUsePionTrackerHit = kTRUE;
30  fUsePionTrackerTrack = kTRUE;
31 }
32 
33 HPionTrackerTaskSet::HPionTrackerTaskSet(const Text_t name[], const Text_t title[])
34  : HTaskSet(name, title) {
35  // constructor sets the default options
36  fSkipEvent = kFALSE;
37  fUsePionTrackerHit = kTRUE;
38  fUsePionTrackerTrack = kTRUE;
39 }
40 
41 HTask* HPionTrackerTaskSet::make(const Char_t *select, const Option_t *option) {
42  // creates the task list
43  // the parameter "select" accepts NULL or "real"
44  // possible options: nopiontrackerhit, skipevents (see class docu)
45  // Returns a pointer to the PionTracker task or taskset specified by 'select'
46  HTaskSet *tasks = new HTaskSet("PionTracker", "List of PionTracker tasks");
47  TString sel = select;
48  TString opt = option;
49  sel.ToLower();
50  opt.ToLower();
51  parseArguments(opt);
52 
53  if (sel.IsNull() || sel.CompareTo("real")==0) {
54  tasks->add(new HPionTrackerCalibrater("piontracker.cal", "PionTracker cal"));
55  if (kTRUE == fUsePionTrackerHit) {
56  tasks->add(new HPionTrackerHitF("piontracker.hitF", "PionTracker hit finder", fSkipEvent));
57  }
58  if (kTRUE == fUsePionTrackerTrack) {
59  tasks->add(new HPionTrackerTrackF("piontracker.trackF", "PionTracker track finder", fSkipEvent));
60  }
61  }
62  return tasks;
63 }
64 
66  // parses the list of options
67  s1.ToLower();
68  s1.ReplaceAll(" ", "");
69 
70  if (0 != s1.Length()) {
71  TIterator* myiter = NULL;
72  TObjString* stemp = NULL;
73  TString argument;
74  TObjArray* myarguments = s1 .Tokenize(",");
75 
76  // iterate over the list of arguments and compare it
77  // to the known key words.
78  myiter = myarguments->MakeIterator();
79  myiter->Reset();
80  while (0 != (stemp = static_cast<TObjString*>(myiter->Next()))) {
81  argument = stemp->GetString();
82  if (0 == argument.CompareTo("skipevents")) {
83  fSkipEvent = kTRUE;
84  }
85  if (0 == argument.CompareTo("nopiontrackerhit")) {
86  fUsePionTrackerHit = kFALSE;
87  }
88  if (0 == argument.CompareTo("nopiontrackertrack")) {
89  fUsePionTrackerTrack = kFALSE;
90  }
91  }
92 
93  delete myiter;
94  myiter = NULL;
95  myarguments->Delete();
96  delete myarguments;
97  }
98 }
HTaskSet(void)
Definition: htaskset.cc:42
void parseArguments(TString s1)
HTask * make(const Char_t *select="", const Option_t *option="")
Bool_t add(HTask *)
Definition: htaskset.cc:82
ClassImp(HPionTrackerTaskSet) HPionTrackerTaskSet
Definition: htask.h:14