]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliTaskLoader.cxx
Fix for #79159: Changes to be committed in STEER
[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
a9bbb414 49//______________________________________________________________________________
50void AliTaskLoader::Clean()
51{
52 //
53 // Removes tasl from parental task
54 // DO NOT DELETE OBJECT contrary to BaseLoader
55 //
65b25288 56 AliDebug(1, Form("Clean %s %s",GetName(),GetDataLoader()->GetName()));
a9bbb414 57 TObject* obj = Get();
58 if(obj)
59 {
60 AliDebug(1, Form("cleaning %s.",GetName()));
61 RemoveFromBoard(obj);
62 }
63}
64
65
66//______________________________________________________________________________
67void AliTaskLoader::RemoveFromBoard(TObject* obj)
68{
69 //
70 // Removes the task "obj" from the board
71 //
72 GetParentalTask()->GetListOfTasks()->Remove(obj);
73}
74
75//______________________________________________________________________________
76Int_t AliTaskLoader::AddToBoard(TObject* obj)
77{
78 //
79 // Adds task "obj" to the board
80 //
81 TTask* task = dynamic_cast<TTask*>(obj);
82 if (task == 0x0)
83 {
84 AliError("To TTask board can be added only tasks.");
85 return 1;
86 }
87 GetParentalTask()->Add(task);
88 return 0;
89}
90
91//______________________________________________________________________________
92TObject* AliTaskLoader::Get() const
93{
94 //
95 // Returns pointer to the current task
96 //
97 return (GetParentalTask()) ? GetParentalTask()->GetListOfTasks()->FindObject(GetName()) : 0x0;
98}
99
100//______________________________________________________________________________
101TTask* AliTaskLoader::GetParentalTask() const
102{
103 //
104 // Returns parental tasks for this task
105 //
106 return fParentalTask;
107}
108
109
110