bugfix: memory leak corrected (Stefan Kirsch)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDCluster.h
CommitLineData
93ce7d1b 1//-*- Mode: C++ -*-
2// $Id$
3
d679dd6c 4#ifndef ALIHLTTRDCLUSTER_H
5#define ALIHLTTRDCLUSTER_H
93ce7d1b 6//* This file is property of and copyright by the ALICE HLT Project *
7//* ALICE Experiment at CERN, All rights reserved. *
8//* See cxx source for full Copyright notice *
d679dd6c 9
196a8c4f 10/** @file AliHLTTRDCluster.h
11 @author Thedoor Rascanu
12 @date
13 @brief A datacontainer for clusters fitting component for the HLT.
14*/
15
d679dd6c 16#include "AliTRDcluster.h"
17#include "AliHLTDataTypes.h"
18
19class AliHLTTRDCluster
20{
196a8c4f 21public:
d679dd6c 22 AliHLTTRDCluster();
93ce7d1b 23 AliHLTTRDCluster(const AliTRDcluster* const inCluster);
24 void ExportTRDCluster(AliTRDcluster* const outCluster) const;
196a8c4f 25 static AliHLTUInt32_t SaveAt(AliHLTUInt8_t *const block, const AliTRDcluster* const inClust);
26 static AliHLTUInt32_t LoadFrom(AliTRDcluster *const outClust, const AliHLTUInt8_t *const block);
d679dd6c 27
196a8c4f 28private:
d679dd6c 29 // From AliTRDcluster
196a8c4f 30 UInt_t fSignals; // Signals in the cluster
0fae33c8 31
32 UChar_t fPadCol; // Central pad number in column direction
33 UChar_t fPadRow; // Central pad number in row direction
34 UChar_t fPadTime; // Uncalibrated time bin number
0fae33c8 35 UChar_t fBits; // Bits of the cluster
196a8c4f 36};
37
68506405 38// disable warnings to avoid
39// warning: base class ‘class ...’ has a non-virtual destructor
40#if defined __GNUC__
fcffef80 41#if __GNUC__ == 4 && __GNUC_MINOR__ > 3
68506405 42#pragma GCC diagnostic ignored "-Weffc++"
fcffef80 43#else
44#pragma GCC system_header
45#endif
68506405 46#elif defined __SUNPRO_CC
47#pragma disable_warn
48#elif defined _MSC_VER
49#pragma warning(push, 1)
50#endif
51
196a8c4f 52class AliHLTTRDExtCluster: public AliHLTTRDCluster
53{
54 public:
55 AliHLTTRDExtCluster();
56 AliHLTTRDExtCluster(const AliTRDcluster* const inCluster);
57 void ExportTRDCluster(AliTRDcluster* const outCluster) const;
58 void Print() const;
93ce7d1b 59
196a8c4f 60 private:
61 // From AliCluster
62 Float_t fX; // X of the cluster in the tracking c.s.
63 Float_t fY; // Y of the cluster in the tracking c.s.
64 Float_t fZ; // Z of the cluster in the tracking c.s.
65
66 // UChar_t fClusterMasking; // Bit field containing cluster status information
67 // Char_t fLocalTimeBin; // T0-calibrated time bin number
0fae33c8 68 // UChar_t fNPads; // Number of pads in cluster
69 // Float_t fCenter; // Center of the cluster relative to the pad
93ce7d1b 70
d679dd6c 71};
72
68506405 73#if defined __GNUC__
fcffef80 74#if __GNUC__ == 4 && __GNUC_MINOR__ > 3
68506405 75#pragma GCC diagnostic warning "-Weffc++"
fcffef80 76#endif
68506405 77#elif defined __SUNPRO_CC
78#pragma enable_warn
79#elif defined _MSC_VER
80#pragma warning(pop)
81#endif
82
196a8c4f 83struct AliHLTTRDClustersArray {
21aabbaa 84#ifdef HAVE_NOT_ALITRD_CLUSTERIZER_r42837
196a8c4f 85 typedef AliHLTTRDExtCluster cluster_type;
86#else
87 typedef AliHLTTRDCluster cluster_type;
88#endif
89 AliHLTTRDClustersArray(Int_t det):fDetector(det),fCount(0){}
90 Short_t fDetector;
91 UShort_t fCount;
92#if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
93 cluster_type fCluster[1];
94#else
95 cluster_type fCluster[];
96#endif
97};
98
d679dd6c 99#endif