Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 :
4 : #ifndef ALIHLTTRDCLUSTER_H
5 : #define ALIHLTTRDCLUSTER_H
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 *
9 :
10 : /** @file AliHLTTRDCluster.h
11 : @author Thedoor Rascanu
12 : @date
13 : @brief A datacontainer for clusters fitting component for the HLT.
14 : */
15 :
16 : #include "AliTRDcluster.h"
17 : #include "AliHLTDataTypes.h"
18 :
19 : class AliHLTTRDCluster
20 : {
21 : public:
22 : AliHLTTRDCluster();
23 : AliHLTTRDCluster(const AliTRDcluster* const inCluster);
24 : void ExportTRDCluster(AliTRDcluster* const outCluster) const;
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);
27 :
28 : private:
29 : // From AliTRDcluster
30 : UInt_t fSignals; // Signals in the cluster
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
35 : UChar_t fBits; // Bits of the cluster
36 : };
37 :
38 : // disable warnings to avoid
39 : // warning: base class ‘class ...’ has a non-virtual destructor
40 : #if defined __GNUC__
41 : #if __GNUC__ == 4 && __GNUC_MINOR__ > 3
42 : #pragma GCC diagnostic ignored "-Weffc++"
43 : #else
44 : #pragma GCC system_header
45 : #endif
46 : #elif defined __SUNPRO_CC
47 : #pragma disable_warn
48 : #elif defined _MSC_VER
49 : #pragma warning(push, 1)
50 : #endif
51 :
52 : class 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;
59 :
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
68 : // UChar_t fNPads; // Number of pads in cluster
69 : // Float_t fCenter; // Center of the cluster relative to the pad
70 :
71 : };
72 :
73 : #if defined __GNUC__
74 : #if __GNUC__ == 4 && __GNUC_MINOR__ > 3
75 : #pragma GCC diagnostic warning "-Weffc++"
76 : #endif
77 : #elif defined __SUNPRO_CC
78 : #pragma enable_warn
79 : #elif defined _MSC_VER
80 : #pragma warning(pop)
81 : #endif
82 :
83 : struct AliHLTTRDClustersArray {
84 : #ifdef HAVE_NOT_ALITRD_CLUSTERIZER_r42837
85 : typedef AliHLTTRDExtCluster cluster_type;
86 : #else
87 : typedef AliHLTTRDCluster cluster_type;
88 : #endif
89 0 : 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[0];
96 : #endif
97 : };
98 :
99 : #endif
|