]>
Commit | Line | Data |
---|---|---|
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 | |
38 | ClassImp( 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 | 50 | AliPHOSTrackSegmentMaker::AliPHOSTrackSegmentMaker(const char * headerFile, const char * name): TTask(name, headerFile) |
2731cd1e | 51 | { |
7b7c1533 | 52 | // ctor |
8d0f3f77 | 53 | fSplitFile= 0 ; |
54 | } | |
55 | ||
56 | //____________________________________________________________________________ | |
57 | AliPHOSTrackSegmentMaker::~AliPHOSTrackSegmentMaker() | |
58 | { | |
59 | ||
60 | fSplitFile = 0 ; | |
2731cd1e | 61 | } |
62 | ||
8d0f3f77 | 63 | //____________________________________________________________________________ |
64 | void 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 | } |