+ }
+
+ if(clu)
+ return (AliPHOSClusterizer **) l->GetObjectRef(clu) ;
+ else
+ return 0 ;
+}
+
+//____________________________________________________________________________
+Bool_t AliPHOSGetter::PostClusterizer(const char * name) const
+{ // ------------------ AliPHOSClusterizer ------------------------
+
+ TFolder * aliceF = (TFolder*)gROOT->FindObjectAny("YSAlice") ;
+
+ // the hierarchy is //YSALICE/tasks/Reconstructionner/PHOS/recpointsname
+ TTask * reF = (TTask*)aliceF->FindObject("tasks/Reconstructioner") ;
+ if ( !reF ) {
+ cerr << "ERROR: AliPHOSGetter::Post Rer -> Task tasks/Reconstructioner" << " not found!" << endl;
+ return kFALSE ;
+ }
+
+ TTask * phos = (TTask*)reF->GetListOfTasks()->FindObject("PHOS") ;
+
+ if ( !phos ) {
+ cerr <<"ERROR: AliPHOSGetter::Post Rer -> tasks/Reconstructioner/PHOS" << " not found!" << endl;
+ return kFALSE ;
+ }
+ AliPHOSClusterizer * phoscl = new AliPHOSClusterizerv1() ;
+ TString clun(name) ;
+ clun+=":clu-v1" ;
+ phoscl->SetName(clun) ;
+ phos->Add(phoscl) ;
+ return kTRUE;
+
+}
+//____________________________________________________________________________
+Bool_t AliPHOSGetter::PostTrackSegments(const char * name) const
+{ // ---------------TrackSegments -----------------------------------
+
+ TFolder * aliceF = (TFolder*)gROOT->FindObjectAny("YSAlice") ;
+ // the hierarchy is //YSALICE/WhiteBoard/TrackSegments/PHOS/tracksegmentsname
+ TFolder * tracksegmentsF = (TFolder*)aliceF->FindObject("WhiteBoard/TrackSegments/PHOS") ;
+ tracksegmentsF->SetTitle("") ;
+ if ( !tracksegmentsF) {
+ cerr << "ERROR: AliPHOSGetter::Post T -> Folder WhiteBoard/TrackSegments/PHOS" << " not found!" << endl;
+ return kFALSE ;
+ }
+ TObject * tss = tracksegmentsF->FindObject(name ) ;
+ if (!tss) {
+ TClonesArray * ts = new TClonesArray("AliPHOSTrackSegment",100) ;
+ ts->SetName(name) ;
+ tracksegmentsF->Add(ts) ;
+ }
+ return kTRUE;
+}
+
+//____________________________________________________________________________
+TClonesArray ** AliPHOSGetter::TrackSegmentsRef(const char * name) const
+{ // ---------------TrackSegments -----------------------------------
+
+ TFolder * phosF = (TFolder*)gROOT->FindObjectAny("YSAlice/WhiteBoard/TrackSegments/PHOS") ;
+ if ( !phosF) {
+ cerr << "ERROR: AliPHOSGetter::TrackSegmentsRef -> Folder WhiteBoard/TrackSegments/PHOS" << " not found!" << endl;
+ return 0 ;
+ }
+
+ TObject * tss = phosF->FindObject(name) ;
+ if (!tss) {
+ return 0 ;
+ }
+ return (TClonesArray **) phosF->GetListOfFolders()->GetObjectRef(tss) ;
+}
+
+//____________________________________________________________________________
+Bool_t AliPHOSGetter::PostTrackSegmentMaker(AliPHOSTrackSegmentMaker * tsmaker) const
+{ //------------Track Segment Maker ------------------------------
+
+ TFolder * aliceF = (TFolder*)gROOT->FindObjectAny("YSAlice") ;
+
+ // the hierarchy is //YSALICE/tasks/Reconstructionner/PHOS/tracksegmentsname
+ TTask * reF = (TTask*)aliceF->FindObject("tasks/Reconstructioner") ;
+ if ( !reF ) {
+ cerr << "ERROR: AliPHOSGetter::Post Ter -> Task tasks/Reconstructioner" << " not found!" << endl;
+ return kFALSE ;
+ }
+ TTask * phos = (TTask*)reF->GetListOfTasks()->FindObject("PHOS") ;
+ if ( !phos ) {
+ cerr <<"ERROR: AliPHOSGetter::Post Ter -> tasks/Reconstructioner/PHOS" << " not found!" << endl;
+ return kFALSE ;
+ }
+
+ AliPHOSTrackSegmentMaker * phosts =
+ (AliPHOSTrackSegmentMaker*)phos->GetListOfTasks()->FindObject(tsmaker->GetName()) ;
+ if (phosts) {
+ phosts->Delete() ;
+ phos->GetListOfTasks()->Remove(phosts) ;
+ }
+ phos->Add(tsmaker) ;
+ return kTRUE;
+
+}
+//____________________________________________________________________________
+Bool_t AliPHOSGetter::PostTrackSegmentMaker(const char * name) const
+{ //------------Track Segment Maker ------------------------------
+
+ TFolder * aliceF = (TFolder*)gROOT->FindObjectAny("YSAlice") ;
+
+ // the hierarchy is //YSALICE/tasks/Reconstructionner/PHOS/tracksegmentsname
+ TTask * reF = (TTask*)aliceF->FindObject("tasks/Reconstructioner") ;
+ if ( !reF ) {
+ cerr << "ERROR: AliPHOSGetter::Post Ter -> Task tasks/Reconstructioner" << " not found!" << endl;
+ return kFALSE ;
+ }
+ TTask * phos = (TTask*)reF->GetListOfTasks()->FindObject("PHOS") ;
+ if ( !phos ) {
+ cerr <<"ERROR: AliPHOSGetter::Post Ter -> tasks/Reconstructioner/PHOS" << " not found!" << endl;
+ return kFALSE ;
+ }
+ AliPHOSTrackSegmentMaker * phosts =
+ (AliPHOSTrackSegmentMaker*)phos->GetListOfTasks()->FindObject(name) ;
+ if (!phosts) {
+ phosts = new AliPHOSTrackSegmentMakerv1() ;
+ TString tsn(name);
+ tsn+=":tsm-v1" ;
+ phosts->SetName(tsn) ;
+ phos->Add(phosts) ;
+ }
+ return kTRUE;
+
+}
+//____________________________________________________________________________
+AliPHOSTrackSegmentMaker ** AliPHOSGetter::TSMakerRef(const char * name) const
+{ //------------Track Segment Maker ------------------------------
+
+ TTask * reF = (TTask*)gROOT->FindObjectAny("YSAlice/tasks/Reconstructioner") ;
+ if ( !reF ) {
+ cerr << "ERROR: AliPHOSGetter::TrackSegmentMakerRef -> Task tasks/Reconstructioner"
+ << " not found!" << endl;
+ return 0 ;
+ }
+
+ TTask * phos = (TTask*)reF->GetListOfTasks()->FindObject("PHOS") ;
+ if ( !phos ) {
+ cerr << "ERROR: AliPHOSGetter::TrackSegmentMakerRef -> Task tasks/Reconstructioner/PHOS"
+ << " not found!" << endl;
+ return 0 ;
+ }
+ TList * l = phos->GetListOfTasks() ;
+ TIter it(l) ;
+ TTask * task ;
+ TTask * tsm = 0 ;
+ TString tsmname(name) ;
+ tsmname+=":tsm-" ;
+ while((task = (TTask *)it.Next()) ){
+ TString taskname(task->GetName()) ;
+ if(taskname.BeginsWith(tsmname)){
+ tsm = task ;
+ break ;