Resolved merge conflict
[u/mrichter/AliRoot.git] / TRD / AliTRDclusterizer.cxx
CommitLineData
f7336fa3 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 **************************************************************************/
15
16/*
17$Log$
18*/
19
20///////////////////////////////////////////////////////////////////////////////
21// //
22// TRD cluster finder base class //
23// //
24///////////////////////////////////////////////////////////////////////////////
25
26#include "AliRun.h"
27
28#include "AliTRD.h"
29#include "AliTRDclusterizer.h"
30
31ClassImp(AliTRDclusterizer)
32
33//_____________________________________________________________________________
34AliTRDclusterizer::AliTRDclusterizer():TNamed()
35{
36 //
37 // AliTRDclusterizer default constructor
38 //
39
40 fInputFile = NULL;
41 fEvent = 0;
42
43}
44
45//_____________________________________________________________________________
46AliTRDclusterizer::AliTRDclusterizer(const Text_t* name, const Text_t* title)
47 :TNamed(name, title)
48{
49 //
50 // AliTRDclusterizer default constructor
51 //
52
53 fInputFile = NULL;
54 fEvent = 0;
55
56 Init();
57
58}
59
60//_____________________________________________________________________________
61AliTRDclusterizer::~AliTRDclusterizer()
62{
63
64 if (fInputFile) {
65 fInputFile->Close();
66 delete fInputFile;
67 }
68
69}
70
71//_____________________________________________________________________________
72void AliTRDclusterizer::Init()
73{
74 //
75 // Initializes the cluster finder
76 //
77
78}
79
80//_____________________________________________________________________________
81Bool_t AliTRDclusterizer::Open(const Char_t *name, Int_t nEvent)
82{
83 //
84 // Opens a ROOT-file with TRD-hits and reads in the digits-tree
85 //
86
87 // Connect the AliRoot file containing Geometry, Kine, and Hits
88 fInputFile = (TFile*) gROOT->GetListOfFiles()->FindObject(name);
89 if (!fInputFile) {
90 printf("AliTRDclusterizer::Open -- ");
91 printf("Open the ALIROOT-file %s.\n",name);
92 fInputFile = new TFile(name,"UPDATE");
93 }
94 else {
95 printf("AliTRDclusterizer::Open -- ");
96 printf("%s is already open.\n",name);
97 }
98
99 // Get AliRun object from file or create it if not on file
100 //if (!gAlice) {
101 gAlice = (AliRun*) fInputFile->Get("gAlice");
102 if (gAlice) {
103 printf("AliTRDclusterizer::Open -- ");
104 printf("AliRun object found on file.\n");
105 }
106 else {
107 printf("AliTRDclusterizer::Open -- ");
108 printf("Could not find AliRun object.\n");
109 return kFALSE;
110 }
111 //}
112
113 fEvent = nEvent;
114
115 // Import the Trees for the event nEvent in the file
116 Int_t nparticles = gAlice->GetEvent(fEvent);
117 if (nparticles <= 0) {
118 printf("AliTRDclusterizer::Open -- ");
119 printf("No entries in the trees for event %d.\n",fEvent);
120 return kFALSE;
121 }
122
123 return kTRUE;
124
125}
126
127//_____________________________________________________________________________
128Bool_t AliTRDclusterizer::WriteCluster()
129{
130 //
131 // Writes out the TRD-cluster
132 //
133
134 // Write the new tree into the input file (use overwrite option)
135 Char_t treeName[7];
136 sprintf(treeName,"TreeR%d",fEvent);
137 printf("AliTRDclusterizer::WriteCluster -- ");
138 printf("Write the cluster tree %s for event %d.\n"
139 ,treeName,fEvent);
140 gAlice->TreeR()->Write(treeName,2);
141
142 return kTRUE;
143
144}
145
146ClassImp(AliTRDcluster)
147
148//_____________________________________________________________________________
149AliTRDcluster::AliTRDcluster(Int_t *tracks, Int_t *cluster, Float_t energy, Float_t* position)
150 :TObject()
151{
152 //
153 // Create a TRD cluster
154 //
155
156 fDetector = cluster[0];
157
158 fTimeSlice = cluster[1];
159 fEnergy = energy;
160
161 fX = position[0];
162 fY = position[1];
163 fZ = position[2];
164
165 fTracks[0] = tracks[0];
166 fTracks[1] = tracks[1];
167 fTracks[2] = tracks[2];
168
169}