Added the option to write objects into separate files and improved the cleaning
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrackSegmentMaker.cxx
CommitLineData
d15a28e7 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
b2a60966 15/* $Id$ */
d15a28e7 16//_________________________________________________________________________
b2a60966 17// Algorithm Base class to construct PHOS track segments
18// Associates EMC and PPSD clusters
19// Unfolds the EMC cluster
baef0810 20//*--
b2a60966 21//*-- Author: Dmitri Peressounko (RRC Ki & SUBATECH)
22
d15a28e7 23
24// --- ROOT system ---
8d0f3f77 25#include "TGeometry.h"
26#include "TFile.h"
27#include "TTree.h"
d15a28e7 28
d15a28e7 29// --- Standard library ---
8d0f3f77 30#include <iostream.h>
31#include <stdlib.h>
d15a28e7 32
d15a28e7 33// --- AliRoot header files ---
8d0f3f77 34#include "AliRun.h"
2731cd1e 35#include "AliPHOSTrackSegmentMaker.h"
8d0f3f77 36#include "AliHeader.h"
d15a28e7 37
38ClassImp( AliPHOSTrackSegmentMaker)
39
40
41//____________________________________________________________________________
7b7c1533 42 AliPHOSTrackSegmentMaker:: AliPHOSTrackSegmentMaker() : TTask("","")
d15a28e7 43{
7b7c1533 44 // ctor
8d0f3f77 45 fSplitFile= 0 ;
46
d15a28e7 47}
7b7c1533 48
2731cd1e 49//____________________________________________________________________________
7b7c1533 50AliPHOSTrackSegmentMaker::AliPHOSTrackSegmentMaker(const char * headerFile, const char * name): TTask(name, headerFile)
2731cd1e 51{
7b7c1533 52 // ctor
8d0f3f77 53 fSplitFile= 0 ;
54}
55
56//____________________________________________________________________________
57AliPHOSTrackSegmentMaker::~AliPHOSTrackSegmentMaker()
58{
59
60 fSplitFile = 0 ;
2731cd1e 61}
62
8d0f3f77 63//____________________________________________________________________________
64void AliPHOSTrackSegmentMaker::SetSplitFile(const TString splitFileName) const
65{
66 // Diverts the TrackSegments in a file separate from the Digits file
67
68
69 TDirectory * cwd = gDirectory ;
70 TFile * splitFile = gAlice->InitTreeFile("R",splitFileName.Data());
71 splitFile->cd() ;
72 gAlice->Write(0, TObject::kOverwrite);
73
74 TTree *treeE = gAlice->TreeE();
75 if (!treeE) {
76 cerr << "ERROR: AliPHOSTrackSegmentMaker::SetSplitFile -> No TreeE found "<<endl;
77 abort() ;
78 }
79
80 // copy TreeE
81 AliHeader *header = new AliHeader();
82 treeE->SetBranchAddress("Header", &header);
83 treeE->SetBranchStatus("*",1);
84 TTree *treeENew = treeE->CloneTree();
85 treeENew->Write(0, TObject::kOverwrite);
86
87 // copy AliceGeom
88 TGeometry *AliceGeom = static_cast<TGeometry*>(cwd->Get("AliceGeom"));
89 if (!AliceGeom) {
90 cerr << "ERROR: AliPHOSTrackSegmentMaker::SetSplitFile -> AliceGeom was not found in the input file "<<endl;
91 abort() ;
92 }
93 AliceGeom->Write(0, TObject::kOverwrite);
94
95 gAlice->MakeTree("R",splitFile);
96 cwd->cd() ;
97 cout << "INFO: AliPHOSTrackSegmentMaker::SetSPlitMode -> TrackSegments will be stored in " << splitFileName.Data() << endl ;
98}