]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliAODCaloCluster.cxx
To test the retrieval and storage of raw tag files, return in case of DCS problems...
[u/mrichter/AliRoot.git] / STEER / AliAODCaloCluster.cxx
CommitLineData
fa86343a 1/**************************************************************************
2 * Copyright(c) 1998-2007, 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/* $Id$ */
17
18//-------------------------------------------------------------------------
19// AOD calorimeter cluster class (for PHOS and EMCAL)
20// Author: Markus Oldenburg, CERN
21//-------------------------------------------------------------------------
22
23#include "AliAODCaloCluster.h"
24
25ClassImp(AliAODCaloCluster)
26
27//______________________________________________________________________________
28AliAODCaloCluster::AliAODCaloCluster() :
29 AliAODCluster(),
30 fDistToBadChannel(-999.),
31 fDispersion(-1),
32 fM20(0.),
33 fM01(0.),
34 fM02(0.),
35 fM11(0.),
36 fEmcCpvDistance(-999.),
37 fNExMax(0),
38 fTracksMatched(),
e649177a 39 fNCells(0),
40 fCellsAbsId(),
41 fCellsAmpFraction()
fa86343a 42{
43 // default constructor
44
45}
46
47//______________________________________________________________________________
48AliAODCaloCluster::AliAODCaloCluster(Int_t id,
49 UInt_t nLabel,
50 Int_t *label,
51 Double_t energy,
52 Double_t x[3],
53 Double_t pid[9],
54 Char_t ttype,
55 UInt_t selectInfo) :
56 AliAODCluster(id, nLabel, label, energy, x, pid, ttype, selectInfo),
57 fDistToBadChannel(-999.),
58 fDispersion(-1),
59 fM20(0.),
60 fM01(0.),
61 fM02(0.),
62 fM11(0.),
63 fEmcCpvDistance(-999.),
64 fNExMax(0),
65 fTracksMatched(),
e649177a 66 fNCells(0),
67 fCellsAbsId(),
68 fCellsAmpFraction()
fa86343a 69{
70 // constructor
71
72}
73
74//______________________________________________________________________________
75AliAODCaloCluster::AliAODCaloCluster(Int_t id,
76 UInt_t nLabel,
77 Int_t *label,
78 Float_t energy,
79 Float_t x[3],
80 Float_t pid[9],
81 Char_t ttype,
82 UInt_t selectInfo) :
83 AliAODCluster(id, nLabel, label, energy, x, pid, ttype, selectInfo),
84 fDistToBadChannel(-999.),
85 fDispersion(-1),
86 fM20(0.),
87 fM01(0.),
88 fM02(0.),
89 fM11(0.),
90 fEmcCpvDistance(-999.),
91 fNExMax(0),
92 fTracksMatched(),
e649177a 93 fNCells(0),
94 fCellsAbsId(),
95 fCellsAmpFraction()
fa86343a 96{
97 // constructor
98}
99
100
101//______________________________________________________________________________
102AliAODCaloCluster::~AliAODCaloCluster()
103{
104 // destructor
e649177a 105 if(fCellsAmpFraction) delete[] fCellsAmpFraction; fCellsAmpFraction=0;
106 if(fCellsAbsId) delete[] fCellsAbsId; fCellsAbsId = 0;
fa86343a 107}
108
109
110//______________________________________________________________________________
111AliAODCaloCluster::AliAODCaloCluster(const AliAODCaloCluster& clus) :
112 AliAODCluster(clus),
113 fDistToBadChannel(clus.fDistToBadChannel),
114 fDispersion(clus.fDispersion),
115 fM20(clus.fM20),
116 fM01(clus.fM01),
117 fM02(clus.fM02),
118 fM11(clus.fM11),
119 fEmcCpvDistance(clus.fEmcCpvDistance),
120 fNExMax(clus.fNExMax),
121 fTracksMatched(clus.fTracksMatched),
e649177a 122 fNCells(clus.fNCells),
123 fCellsAbsId(),
124 fCellsAmpFraction()
fa86343a 125{
126 // Copy constructor
e649177a 127
128 if (clus.fNCells > 0) {
129
130 if(clus.fCellsAbsId){
131 fCellsAbsId = new UShort_t[clus.fNCells];
132 for (Int_t i=0; i<clus.fNCells; i++)
133 fCellsAbsId[i]=clus.fCellsAbsId[i];
134 }
135
136 if(clus.fCellsAmpFraction){
137 fCellsAmpFraction = new Double32_t[clus.fNCells];
138 for (Int_t i=0; i<clus.fNCells; i++)
139 fCellsAmpFraction[i]=clus.fCellsAmpFraction[i];
140 }
141
142 }
143
fa86343a 144}
145
146//______________________________________________________________________________
147AliAODCaloCluster& AliAODCaloCluster::operator=(const AliAODCaloCluster& clus)
148{
149 // Assignment operator
150 if(this!=&clus) {
151
152 AliAODCluster::operator=(clus);
153
154 fDistToBadChannel = clus.fDistToBadChannel;
155 fDispersion = clus.fDispersion;
156 fM20 = clus.fM20;
157 fM01 = clus.fM01;
158 fM02 = clus.fM02;
159 fM11 = clus.fM11;
160 fEmcCpvDistance = clus.fEmcCpvDistance;
161 fNExMax = clus.fNExMax;
162 fTracksMatched = clus.fTracksMatched;
e649177a 163
164 fNCells= clus. fNCells;
165 if (clus.fNCells > 0) {
166
167 if(clus.fCellsAbsId){
168 fCellsAbsId = new UShort_t[clus.fNCells];
169 for (Int_t i=0; i<clus.fNCells; i++)
170 fCellsAbsId[i]=clus.fCellsAbsId[i];
171 }
172
173 if(clus.fCellsAmpFraction){
174 fCellsAmpFraction = new Double32_t[clus.fNCells];
175 for (Int_t i=0; i<clus.fNCells; i++)
176 fCellsAmpFraction[i]=clus.fCellsAmpFraction[i];
177 }
178
179 }
180
fa86343a 181 }
182
183 return *this;
184}
185
186//_______________________________________________________________________
187Bool_t AliAODCaloCluster::HasTrackMatched(TObject *trk) const
188{
189 // Checks if the given track contributed to this cluster.
190
191 TRefArrayIter iter(&fTracksMatched);
192 while (TObject *track = iter.Next()) {
193 if (trk == track) return kTRUE;
194 }
195 return kFALSE;
196}