ROOT logo
//*-- Author  : K. Lapidus
//*-- Created :

//_HADES_CLASS_DESCRIPTION 
///////////////////////////////////////////////////////////////////////////////
//
// HEmcTaskSet
//
// This HTaskSet contains the tasks for the Emc
//
///////////////////////////////////////////////////////////////////////////////

using namespace std;
#include "hemctaskset.h"
#include "hemccalibrater.h"
#include "hemcdigitizer.h"
#include "hemcclusterf.h"
#include "hdebug.h"
#include "haddef.h"
#include <iostream> 
#include <iomanip>
#include "TObjString.h"

HTask* HEmcTaskSet::make(const Char_t* select, Option_t* option) {
  // Returns a pointer to the task or taskset specified by 'select'
  HTaskSet *tasks = new HTaskSet("Emc","List of Emc tasks");
  TString simulation="simulation"; 
  TString real ="real";            

  TString sel = select;
  TString opt = option;
  sel.ToLower();
  opt.ToLower();

  parseArguments(opt);
  
  if(sel.CompareTo(simulation)==0){
    if (doEmcCal)
      tasks->add(new HEmcDigitizer("emc.digi","emc.digi"));
    if (doEmcClusF)
      tasks->add(new HEmcClusterF("emc.clusf","emc.clusf"));
  }
  
  if(sel.CompareTo(real)==0){  	 	
    if (doEmcCal)
      tasks->add(new HEmcCalibrater("emc.cal", "Emc calibrater"));
    if (doEmcClusF)
      tasks->add(new HEmcClusterF("emc.clusf","emc.clusf"));
  }

  return tasks;
}

void HEmcTaskSet::parseArguments(TString s)
{
    // parses arguments (straw, rpc) to the make tasks function

    s.ToLower();
    s.ReplaceAll(" ", "");

    Ssiz_t len = s.Length();

    if (len!=0)
    {
        doEmcCal = kFALSE;
        doEmcClusF = kFALSE;

        TObjArray* myarguments = s.Tokenize(",");
        TObjString *stemp = 0;
        TString argument;
        TIterator* myiter = myarguments->MakeIterator();
        // go over list of arguments and compare the known keys

        while ((stemp=(TObjString*)myiter->Next()) != 0)
        {
            argument=stemp->GetString();
            Info("parseArguments()", "option: %s", argument.Data());

            if (argument.CompareTo("cal") == 0)
            {
                doEmcCal   = kTRUE;
            }
            else if (argument.CompareTo("clusf") == 0)
            {
                doEmcCal   = kTRUE;
                doEmcClusF = kTRUE;
            }
            else
            {
                Error("parseArguments()", "Unknown option = %s", argument.Data());
            }
        }
        delete myiter;

        myarguments->Delete();
        delete myarguments;
    }
}

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