// <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>. END_HTML
#include "TObjString.h"
#include "hades.h"
#include "haddef.h"
#include "hdebug.h"
#include "hrichanalysis.h"
#include "hrichanalysissim.h"
#include "hrichdigitizer.h"
#include "hrichtaskset.h"
#include "htask.h"
#include <iomanip>
#include <iostream>
#include <cstdlib>
using namespace std;
ClassImp(HRichTaskSet)
Bool_t HRichTaskSet::inoiseOn = kTRUE;
Bool_t HRichTaskSet::iSkipEvent = kFALSE;
HRichTaskSet::HRichTaskSet(const Text_t name[],const Text_t title[]) : HTaskSet(name, title)
{
}
HRichTaskSet::HRichTaskSet(void) : HTaskSet()
{
}
HRichTaskSet::~HRichTaskSet(void)
{
}
HTask*
HRichTaskSet::make(const Char_t *select,const Option_t *option)
{
// <a target="_top" href="http://forum.gsi.de/index.php?t=rview&th=2193&rid=334">
// this forum entry<a>. END_HTML
HTaskSet* tasks = new HTaskSet("Rich", "List of Rich tasks");
const TString simulation = "simulation";
const TString real = "real";
TString sel = select;
TString opt = option;
sel.ToLower();
if ( 0 == sel.CompareTo(simulation) &&
0 != gHades->getEmbeddingMode() )
{
cout << "Error:HRichTaskSet::make() , embeddingMode > 0 in simulation NOT ALLOWED!" << endl;
exit(1);
}
parseArguments(opt);
if ( 0 == sel.CompareTo(simulation) &&
0 == gHades->getEmbeddingMode() )
{
tasks->add(new HRichDigitizer("rich.digi", "Rich digitizer", inoiseOn));
tasks->add(new HRichAnalysisSim("rich.ana", "Ring finder", iSkipEvent));
}
if ( 0 == sel.CompareTo(real) &&
0 == gHades->getEmbeddingMode() )
{
tasks->add(new HRichAnalysis("rich.ana", "Ring finder", iSkipEvent));
}
if( 0 == sel.CompareTo(real) &&
0 != gHades->getEmbeddingMode() )
{
tasks->add(new HRichDigitizer("rich.digi", "Rich digitizer", inoiseOn));
tasks->add(new HRichAnalysisSim("rich.ana", "Ring finder", iSkipEvent));
}
return tasks;
}
void
HRichTaskSet::parseArguments(TString s1)
{
const TString skipEvent = "skipevent";
const TString noiseOff = "noiseoff";
TIterator* myiter = NULL;
TObjString* stemp = NULL;
Char_t* mystring = NULL;
Char_t* buffer = NULL;
Int_t count = 0;
TString argument;
TList myarguments;
s1.ToLower();
s1.ReplaceAll(" ","");
if( 0 != s1.Length() )
{
mystring = const_cast<Char_t*>(s1.Data());
while( 1 )
{
if( 0 == count )
{
buffer = strtok(mystring, ",");
stemp = new TObjString(buffer);
myarguments.Add(stemp);
}
if( ! (buffer=strtok(NULL, ",")) )
break;
stemp = new TObjString(buffer);
myarguments.Add(stemp);
count++;
}
myiter = myarguments.MakeIterator();
myiter->Reset();
while ( 0 != (stemp=static_cast<TObjString*>(myiter->Next())) )
{
argument = stemp->GetString();
if ( 0 == argument.CompareTo(skipEvent) )
{
iSkipEvent = kTRUE;
}
else if ( 0 == argument.CompareTo(noiseOff) )
{
inoiseOn = kFALSE;
}
}
delete myiter;
myiter = NULL;
}
}
Last change: Sat May 22 13:10:07 2010
Last generated: 2010-05-22 13:10
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.