ROOT logo
//*-- Author  : D. Gonzalez-Diaz
//*-- Created : 14/06/2006
//*-- Modified: 24/08/2007 by P.Cabanelas
//*-- Modified: 04/12/2013 by G. Kornakov Added RPC embedding mode

//_HADES_CLASS_DESCRIPTION
///////////////////////////////////////////////////////////////////////////////
//
// HRpcTaskSet
//
// This HRpcSet contains the tasks for the Rpc detector
//
//
///////////////////////////////////////////////////////////////////////////////

using namespace std;
#include "hrpctaskset.h"
#include "hdebug.h"
#include "haddef.h"
#include "hades.h"
#include "hrpcdigitizer.h"
#include "hrpccalibrater.h"
#include "hrpchitf.h"
#include "hrpcclusterf.h"
#include <iostream> 
#include <iomanip>
#include "TObjString.h"

HRpcTaskSet::HRpcTaskSet(const Text_t name[],const Text_t title[]) : HTaskSet(name,title) {
    // Constructor
}


HRpcTaskSet::HRpcTaskSet(void) : HTaskSet() {
    // Default constructor
}


HRpcTaskSet::~HRpcTaskSet(void) {
    // Destructor.
}

void HRpcTaskSet::parseArguments(TString s, Int_t &doCluster) {
    // parses arguments to the make tasks function
    //
    // OPTIONS:
    // noclust    : (default kFALSE) switch clusterfinder to fill only size=1 objects (copy hits)

    doCluster = 1;  // default

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

    Ssiz_t len=s.Length();

    if(len!=0) {

	TObjArray* myarguments = s.Tokenize(",");
	TObjString *stemp;
	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("noclust")   == 0)  doCluster = kFALSE;
	    else
	    {
		Error("parseArguments()","Unknown option = %s",argument.Data());
	    }
	}
	delete myiter;

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

HTask* HRpcTaskSet::make(const Char_t *select,const Option_t *option) {
    // Returns a pointer to the Rpc task or taskset specified by 'select'
    // OPTIONS: see parseArguments()

    HTaskSet *tasks = new HTaskSet("Rpc","List of Rpc tasks");
    TString simulation="simulation";
    TString real ="real";

    TString sel = select;
    TString opt = option;

    sel.ToLower();
    opt.ToLower();
    Int_t doCluster = 1;

    parseArguments(opt,doCluster);

    if(sel.CompareTo(simulation)==0 || gHades->getEmbeddingMode()>0)
    {
	tasks->add( new HRpcDigitizer("rpc.digi","rpc.digi") );
    }
    if(sel.CompareTo(real)==0 || gHades->getEmbeddingMode()>0)
    {
	tasks->add( new HRpcCalibrater("rpc.cal","rpc.cal") );
    }

    // --------------------------------------------------
    // Commom tasks for real, sim and embedding
    tasks->add( new HRpcHitF("rpc.hitf","rpc.hitf") );
    HRpcClusterF* clusterf = new HRpcClusterF("rpc.clusterf","rpc.clusterf") ;
    if(doCluster == 0) {
        clusterf ->setDoSingleClusters(kTRUE);
    }
    tasks->add( clusterf );

    return tasks;
}

ClassImp(HRpcTaskSet)










 hrpctaskset.cc:1
 hrpctaskset.cc:2
 hrpctaskset.cc:3
 hrpctaskset.cc:4
 hrpctaskset.cc:5
 hrpctaskset.cc:6
 hrpctaskset.cc:7
 hrpctaskset.cc:8
 hrpctaskset.cc:9
 hrpctaskset.cc:10
 hrpctaskset.cc:11
 hrpctaskset.cc:12
 hrpctaskset.cc:13
 hrpctaskset.cc:14
 hrpctaskset.cc:15
 hrpctaskset.cc:16
 hrpctaskset.cc:17
 hrpctaskset.cc:18
 hrpctaskset.cc:19
 hrpctaskset.cc:20
 hrpctaskset.cc:21
 hrpctaskset.cc:22
 hrpctaskset.cc:23
 hrpctaskset.cc:24
 hrpctaskset.cc:25
 hrpctaskset.cc:26
 hrpctaskset.cc:27
 hrpctaskset.cc:28
 hrpctaskset.cc:29
 hrpctaskset.cc:30
 hrpctaskset.cc:31
 hrpctaskset.cc:32
 hrpctaskset.cc:33
 hrpctaskset.cc:34
 hrpctaskset.cc:35
 hrpctaskset.cc:36
 hrpctaskset.cc:37
 hrpctaskset.cc:38
 hrpctaskset.cc:39
 hrpctaskset.cc:40
 hrpctaskset.cc:41
 hrpctaskset.cc:42
 hrpctaskset.cc:43
 hrpctaskset.cc:44
 hrpctaskset.cc:45
 hrpctaskset.cc:46
 hrpctaskset.cc:47
 hrpctaskset.cc:48
 hrpctaskset.cc:49
 hrpctaskset.cc:50
 hrpctaskset.cc:51
 hrpctaskset.cc:52
 hrpctaskset.cc:53
 hrpctaskset.cc:54
 hrpctaskset.cc:55
 hrpctaskset.cc:56
 hrpctaskset.cc:57
 hrpctaskset.cc:58
 hrpctaskset.cc:59
 hrpctaskset.cc:60
 hrpctaskset.cc:61
 hrpctaskset.cc:62
 hrpctaskset.cc:63
 hrpctaskset.cc:64
 hrpctaskset.cc:65
 hrpctaskset.cc:66
 hrpctaskset.cc:67
 hrpctaskset.cc:68
 hrpctaskset.cc:69
 hrpctaskset.cc:70
 hrpctaskset.cc:71
 hrpctaskset.cc:72
 hrpctaskset.cc:73
 hrpctaskset.cc:74
 hrpctaskset.cc:75
 hrpctaskset.cc:76
 hrpctaskset.cc:77
 hrpctaskset.cc:78
 hrpctaskset.cc:79
 hrpctaskset.cc:80
 hrpctaskset.cc:81
 hrpctaskset.cc:82
 hrpctaskset.cc:83
 hrpctaskset.cc:84
 hrpctaskset.cc:85
 hrpctaskset.cc:86
 hrpctaskset.cc:87
 hrpctaskset.cc:88
 hrpctaskset.cc:89
 hrpctaskset.cc:90
 hrpctaskset.cc:91
 hrpctaskset.cc:92
 hrpctaskset.cc:93
 hrpctaskset.cc:94
 hrpctaskset.cc:95
 hrpctaskset.cc:96
 hrpctaskset.cc:97
 hrpctaskset.cc:98
 hrpctaskset.cc:99
 hrpctaskset.cc:100
 hrpctaskset.cc:101
 hrpctaskset.cc:102
 hrpctaskset.cc:103
 hrpctaskset.cc:104
 hrpctaskset.cc:105
 hrpctaskset.cc:106
 hrpctaskset.cc:107
 hrpctaskset.cc:108
 hrpctaskset.cc:109
 hrpctaskset.cc:110
 hrpctaskset.cc:111
 hrpctaskset.cc:112
 hrpctaskset.cc:113
 hrpctaskset.cc:114
 hrpctaskset.cc:115
 hrpctaskset.cc:116
 hrpctaskset.cc:117
 hrpctaskset.cc:118
 hrpctaskset.cc:119
 hrpctaskset.cc:120
 hrpctaskset.cc:121
 hrpctaskset.cc:122
 hrpctaskset.cc:123
 hrpctaskset.cc:124
 hrpctaskset.cc:125
 hrpctaskset.cc:126
 hrpctaskset.cc:127
 hrpctaskset.cc:128
 hrpctaskset.cc:129
 hrpctaskset.cc:130
 hrpctaskset.cc:131
 hrpctaskset.cc:132