]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliTaskLoader.cxx
i)Added the fAlirootVersion, fRootVesrion and fGeant3Version fields along with the...
[u/mrichter/AliRoot.git] / STEER / AliTaskLoader.cxx
CommitLineData
a9bbb414 1
2/////////////////////////////////////////////////////////////////////////////////////////////
3// //
4// class AliTaskLoader //
5// //
6// Container of all data needed for full //
7// description of each data type //
8// (Hits, Kine, ...) //
9// //
10// Each data loader has a basic standard setup of BaseLoaders //
11// which can be identuified by indexes (defined by EStdBasicLoaders) //
12// Data managed by these standard base loaders has fixed naming convention //
13// e.g. - tree with hits is always named TreeH //
14// (defined in AliLoader::fgkDefaultHitsContainerName) //
15// - task DtectorName+Name defined //
16// //
17// EStdBasicLoaders idx Object Type Description //
18// kData 0 TTree or TObject main data itself (hits,digits,...) //
19// kTask 1 TTask object producing main data //
20// kQA 2 TTree quality assurance tree //
21// kQATask 3 TTask task producing QA object //
22// //
23// //
24// User can define and add more basic loaders even Run Time. //
25// Caution: in order to save information about added base loader //
26// user must rewrite Run Loader to galice.file, overwriting old setup //
27// //
28/////////////////////////////////////////////////////////////////////////////////////////////
29
30/* $Id$ */
31
32#include "AliLog.h"
33#include "AliRunLoader.h"
34#include "AliTaskLoader.h"
35
36ClassImp(AliTaskLoader)
37
38//______________________________________________________________________________
39AliTaskLoader::AliTaskLoader(const TString& name, AliDataLoader* dl,
40 TTask* parentaltask, Bool_t storeontop):
41 AliBaseLoader(name,dl,storeontop),
42 fParentalTask(parentaltask)
43{
44 //
45 // Constructor
46 //
47}
48
49//______________________________________________________________________________
50AliTaskLoader::AliTaskLoader(const AliTaskLoader& source):
51 AliBaseLoader(source),
52 fParentalTask(source.fParentalTask)
53{
54 //
55 // copy constructor
56 //
57 AliFatal("Copy constructor not implemented");
58}
59
60//______________________________________________________________________________
61AliTaskLoader& AliTaskLoader::operator=(const AliTaskLoader& /*source*/)
62{
63 //
64 // Assignment operator
65 //
66 AliFatal("Assignment operator not implemented");
67 return *this;
68}
69
70//______________________________________________________________________________
71void AliTaskLoader::Clean()
72{
73 //
74 // Removes tasl from parental task
75 // DO NOT DELETE OBJECT contrary to BaseLoader
76 //
77 AliDebug(1, Form("Clean","%s %s",GetName(),GetDataLoader()->GetName()));
78 TObject* obj = Get();
79 if(obj)
80 {
81 AliDebug(1, Form("cleaning %s.",GetName()));
82 RemoveFromBoard(obj);
83 }
84}
85
86
87//______________________________________________________________________________
88void AliTaskLoader::RemoveFromBoard(TObject* obj)
89{
90 //
91 // Removes the task "obj" from the board
92 //
93 GetParentalTask()->GetListOfTasks()->Remove(obj);
94}
95
96//______________________________________________________________________________
97Int_t AliTaskLoader::AddToBoard(TObject* obj)
98{
99 //
100 // Adds task "obj" to the board
101 //
102 TTask* task = dynamic_cast<TTask*>(obj);
103 if (task == 0x0)
104 {
105 AliError("To TTask board can be added only tasks.");
106 return 1;
107 }
108 GetParentalTask()->Add(task);
109 return 0;
110}
111
112//______________________________________________________________________________
113TObject* AliTaskLoader::Get() const
114{
115 //
116 // Returns pointer to the current task
117 //
118 return (GetParentalTask()) ? GetParentalTask()->GetListOfTasks()->FindObject(GetName()) : 0x0;
119}
120
121//______________________________________________________________________________
122TTask* AliTaskLoader::GetParentalTask() const
123{
124 //
125 // Returns parental tasks for this task
126 //
127 return fParentalTask;
128}
129
130
131