FairRoot/PandaRoot
Public Member Functions | Protected Attributes | List of all members
PndMasterTask Class Reference

Abstract class for all the master task list classes. More...

#include <PndMasterTask.h>

Inheritance diagram for PndMasterTask:
PndBlackBoxTask PndPersistencyTask PndMasterDigiOnlyTask PndMasterDigiTask PndMasterLocalRecoTask PndMasterMultiPidTask PndMasterPidTask PndMasterRecoIdealTask PndMasterRecoTask PndMasterSimTask

Public Member Functions

 PndMasterTask ()
 Default constructor. More...
 
 PndMasterTask (const char *name)
 Proper Constructor. More...
 
virtual ~PndMasterTask ()
 Destructor. More...
 
void PrintTaskList ()
 It prints the list of tasks. More...
 
virtual void SetPersistency (Bool_t pers=kTRUE)
 Set the persistency of all the tasks This function has to be implemented for each master task, since different tasks use different functions to change the persistency of the output TClonesArrays. More...
 
void SetVerbose (Int_t iVerbose=1)
 Set the Verbosity to all the tasks. More...
 
void SetVerbose (Int_t nTask, Int_t iVerbose)
 Set the Verbosity to a single task. More...
 
FairTask * GetTask (Int_t nTask)
 Return the pointer to a single task. More...
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
Bool_t GetPersistency ()
 

Protected Attributes

std::vector< PndPersistencyTask * > fBranchTasks
 
std::vector< FairTask * > fStandardTasks
 
std::map< PndPersistencyTask
*, bool > 
fFixedPersistency
 

Detailed Description

Abstract class for all the master task list classes.

Master task Class

This class is the basic for all the master task classes, digi, reco, pid and so on. It provides basic functionalities, such as the possibility to set the Verbosity for each task separately or for all the tasks together, the possibility to getretrieve a Task in order to use some setter, and a print of all the included tasks.

Author
Stefano Spataro spata.nosp@m.ro@t.nosp@m.o.inf.nosp@m.n.it, Torino University
Version
1.0
Date
Feb 1, 2016

Definition at line 21 of file PndMasterTask.h.

Constructor & Destructor Documentation

PndMasterTask::PndMasterTask ( )

Default constructor.

Definition at line 7 of file PndMasterTask.cxx.

7  :
8  PndBlackBoxTask("Master Task")
9 {
10 }
PndBlackBoxTask(const char *name)
PndMasterTask::PndMasterTask ( const char *  name)

Proper Constructor.

Definition at line 13 of file PndMasterTask.cxx.

13  :
15 {
16 }
PndBlackBoxTask(const char *name)
TString name
PndMasterTask::~PndMasterTask ( )
virtual

Destructor.

Definition at line 83 of file PndMasterTask.cxx.

References gGeoManager.

84 {
85  if (gROOT->GetVersionInt() >= 60602 && gGeoManager!=NULL) {
86  gGeoManager->GetListOfVolumes()->Delete();
87  gGeoManager->GetListOfShapes()->Delete();
88  delete gGeoManager;
89  }
90 }
TGeoManager * gGeoManager

Member Function Documentation

void PndBlackBoxTask::Exec ( Option_t *  opt)
virtualinherited

Reimplemented in PndBufferTestTask.

Definition at line 50 of file PndBlackBoxTask.cxx.

51 {
52  return;
53 }
Bool_t PndPersistencyTask::GetPersistency ( )
inlineinherited

Definition at line 32 of file PndPersistencyTask.h.

References PndPersistencyTask::fPersistency.

Referenced by PndLmdPixelHitProducerFast::GetPersistance(), PndMdtDigitization::Init(), PndMdtHitProducerIdeal::Init(), PndMdtClusterTask::Init(), PndFtsHitProducerRealFast::Init(), PndRichHitProducer::Init(), PndSttHitProducerRealFast::Init(), PndDiscTaskReconstruction::Init(), PndSttHelixHitProducer::Init(), PndDiscTaskPID::Init(), PndIdealTrackFinder::Init(), PndSttMvdGemTracking::Init(), PndMdtTrkProducer::Init(), PndFtsHitProducerRealFull::Init(), PndLmdPixelClusterTask::Init(), PndSttHitProducerRealFull::Init(), PndLmdStripClusterTask::Init(), PndEmcApdHitProducer::Init(), PndMissingPzCleanerTask::Init(), PndEmcMakeRecoHit::Init(), PndEmcMakeClusterOnline::Init(), PndTrackSmearTask::Init(), PndEmcFWEndcapTimebasedWaveforms::Init(), PndSttHitProducerIdeal::Init(), PndEmcFWEndcapDigi::Init(), PndFtsHitProducerIdeal::Init(), PndEmcMakeCluster::Init(), PndMdtPointsToWaveform::Init(), PndDiscTaskDigitization::Init(), PndEmcMakeDigi::Init(), PndSdsTimeWalkCorrTask::Init(), PndLmdPixelHitProducerFast::Init(), PndDrcHitFinder::Init(), PndRichHitFinder::Init(), PndEmcMakeCorr::Init(), PndFtofHitProducerIdeal::Init(), PndEmcHitsToWaveform::Init(), PndSciTDigiTask::Init(), PndDrcHitProducerIdeal::Init(), PndSdsHitProducerIdeal::Init(), PndSciTHitProducerIdeal::Init(), PndRecoMultiKalmanTask2::Init(), PndEmcHitProducer::Init(), PndDrcHitProducerReal::Init(), PndDskFLGHitProducerIdeal::Init(), PndEmcTmpWaveformToDigi::Init(), PndDrcDigiTask::Init(), PndEmcWaveformToDigi::Init(), PndSttMatchTracks::Init(), PndEmcWaveformToCalibratedDigi::Init(), PndTrkTracking2::Init(), PndSttFindTracks::Init(), PndEmcMultiWaveformToCalibratedDigi::Init(), PndRecoKalmanTask2::Init(), PndDrcTimeDigiTask::Init(), PndEmcExpClusterSplitter::Init(), PndFtsHoughTrackerTask::Init(), PndSdsNoiseProducer::Init(), PndEmcPhiBumpSplitter::Init(), PndSdsIdealRecoTask::Init(), PndSdsHybridHitProducer::Init(), PndRecoMultiKalmanTask::Init(), PndSdsIdealClusterTask::Init(), PndRecoKalmanTask::Init(), PndSdsStripHitProducerDif::Init(), PndGemDigitize::Init(), PndSdsStripHitProducer::Init(), PndGemFindHits::Init(), PndSdsPixelClusterTask::Init(), PndSdsStripClusterTask::Init(), PndMvdGemTrackFinderOnHits::Init(), PndBarrelTrackFinder::Init(), PndEmcFullDigiTask::PndEmcFullDigiTask(), PndEmcMakeBump::PndEmcMakeBump(), PndUnassignedHitsTask::RegisterBranches(), PndMvdClusterTask::SetPersistance(), PndMvdDigiTask::SetPersistance(), PndEmcMakeBump::SetStorageOfData(), and PndEmcFullDigiTask::StoreDigi().

32 { return fPersistency; }
FairTask * PndMasterTask::GetTask ( Int_t  nTask)

Return the pointer to a single task.

This function allows to retrieve the pointer of a task inside the task list, when you want to use some particular setter or change someting in the task.

Parameters
nTaskIndex of the task you want to modify. Instead of the integer you can use the enum "k" + task name (i.e. kMvdDigiTask, kSttHitProducerRealFast, etc...)
Returns
A pointer to the corresponding task

Retrieve the pointer to a Task in the list

Definition at line 75 of file PndMasterTask.cxx.

76 {
77  TList* thistasks = this->GetListOfTasks();
78 
79  return ((FairTask*)thistasks->At(nTask));
80 }
InitStatus PndBlackBoxTask::Init ( )
virtualinherited

Reimplemented in PndBufferTestTask.

Definition at line 43 of file PndBlackBoxTask.cxx.

44 {
45  return kSUCCESS;
46 }
void PndMasterTask::PrintTaskList ( )

It prints the list of tasks.

Print the list of the task which are included in the list

This function print the task number, its title and its name. This can be important when it is needed to modify a particular task and the task number is needed. In any case, the use of enum should be preferred.

Remarks
The task names are not well defined in the classes, some of them are missing. We should define a better scheme.

Definition at line 24 of file PndMasterTask.cxx.

References counter, and next.

25 {
26  TList* thistasks = this->GetListOfTasks();
27 
28  Int_t counter = 0;
29  TIter next(thistasks->MakeIterator());
30  while (FairTask *task = (FairTask*)next())
31  {
32  if (counter < 10)
33  std::cout << "Task #" << counter << "\tTitle: " << task->GetTitle() << "\tName: " << task->GetName() << std::endl;
34  else
35  std::cout << "Task #" << counter << "\tTitle: " << task->GetTitle() << "\tName: " << task->GetName() << std::endl;
36  counter++;
37  }
38 
39  return;
40 }
int counter
Definition: ZeeAnalysis.C:59
static int next[96]
Definition: ranlxd.cxx:374
InitStatus PndBlackBoxTask::ReInit ( )
virtualinherited

Definition at line 25 of file PndBlackBoxTask.cxx.

26 {
27  return kSUCCESS;
28 }
void PndBlackBoxTask::SetParContainers ( )
virtualinherited

Definition at line 21 of file PndBlackBoxTask.cxx.

22 {
23 }
void PndMasterTask::SetPersistency ( Bool_t  pers = kTRUE)
virtual

Set the persistency of all the tasks This function has to be implemented for each master task, since different tasks use different functions to change the persistency of the output TClonesArrays.

Parameters
fPersistencyPersistency level: 0 no TCA, 1 all TCA

Set the Persistency of all the tasks in the same way

Reimplemented in PndMasterLocalRecoTask, PndMasterMultiPidTask, PndMasterPidTask, PndMasterDigiTask, PndMasterRecoIdealTask, and PndMasterSimTask.

Definition at line 66 of file PndMasterTask.cxx.

References fBranchTasks, and fFixedPersistency.

Referenced by PndMasterRunAna::AddDigiOnlyTasks(), and PndMasterRunAna::AddRecoTasks().

67 {
68  std::for_each(fBranchTasks.begin(), fBranchTasks.end(), [pers](PndPersistencyTask* task){task->SetPersistency(pers);});
69  std::for_each(fFixedPersistency.begin(), fFixedPersistency.end(), [](std::pair<PndPersistencyTask*, bool> task){task.first->SetPersistency(task.second);});
70 
71  return;
72 }
std::vector< PndPersistencyTask * > fBranchTasks
Definition: PndMasterTask.h:80
std::map< PndPersistencyTask *, bool > fFixedPersistency
Definition: PndMasterTask.h:82
void PndMasterTask::SetVerbose ( Int_t  iVerbose = 1)

Set the Verbosity to all the tasks.

Parameters
iVerboseVerbosity level: 0 no messages, the higher more messages

Set the Verbosity of all the tasks at the same number

Definition at line 43 of file PndMasterTask.cxx.

References next.

Referenced by PndMasterDigiOnlyTask::PndMasterDigiOnlyTask(), PndMasterDigiTask::PndMasterDigiTask(), PndMasterLocalRecoTask::PndMasterLocalRecoTask(), PndMasterMultiPidTask::PndMasterMultiPidTask(), PndMasterPidTask::PndMasterPidTask(), PndMasterRecoIdealTask::PndMasterRecoIdealTask(), PndMasterRecoTask::PndMasterRecoTask(), PndMasterSimTask::PndMasterSimTask(), and SetVerbose().

44 {
45  TList* thistasks = this->GetListOfTasks();
46 
47  TIter next(thistasks->MakeIterator());
48  while (FairTask *task = (FairTask*)next())
49  {
50  task->SetVerbose(iVerbose);
51  }
52 
53  return;
54 }
Int_t iVerbose
static int next[96]
Definition: ranlxd.cxx:374
void PndMasterTask::SetVerbose ( Int_t  nTask,
Int_t  iVerbose 
)

Set the Verbosity to a single task.

This function has to be used when you want to change the verbosity to a single task

Parameters
nTaskIndex of the task you want to modify. Instead of the integer you can use the enum k + task name (i.e. kMvdDigiTask, hSttHitProducerRealFast
iVerboseVerbosity. 0 -> no messages; the higher -> more messages

Set the Verbosity of a single task

Definition at line 57 of file PndMasterTask.cxx.

References SetVerbose().

58 {
59  TList* thistasks = this->GetListOfTasks();
60  ((FairTask*)thistasks->At(nTask))->SetVerbose(iVerbose);
61 
62  return;
63 }
void SetVerbose(Int_t iVerbose=1)
Set the Verbosity to all the tasks.
Int_t iVerbose

Member Data Documentation

std::vector<PndPersistencyTask*> PndMasterTask::fBranchTasks
protected
std::map<PndPersistencyTask*, bool> PndMasterTask::fFixedPersistency
protected
std::vector<FairTask*> PndMasterTask::fStandardTasks
protected

Definition at line 81 of file PndMasterTask.h.

Referenced by PndMasterPidTask::PndMasterPidTask().


The documentation for this class was generated from the following files: