]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDCluster.h
- adding new print mode for DataType2Text and some documentation
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDCluster.h
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 #pragma GCC diagnostic ignored "-Weffc++"
42 #elif defined __SUNPRO_CC
43 #pragma disable_warn
44 #elif defined _MSC_VER
45 #pragma warning(push, 1)
46 #endif
47
48 class AliHLTTRDExtCluster: public AliHLTTRDCluster
49 {
50  public:
51   AliHLTTRDExtCluster();
52   AliHLTTRDExtCluster(const AliTRDcluster* const inCluster);
53   void ExportTRDCluster(AliTRDcluster* const outCluster) const;
54   void Print() const;
55
56  private:
57   // From AliCluster
58   Float_t  fX;             // X of the cluster in the tracking c.s.
59   Float_t  fY;             // Y of the cluster in the tracking c.s.
60   Float_t  fZ;             // Z of the cluster in the tracking c.s.
61
62   // UChar_t  fClusterMasking; // Bit field containing cluster status information
63   // Char_t   fLocalTimeBin;   // T0-calibrated time bin number
64   // UChar_t  fNPads;          //  Number of pads in cluster 
65   // Float_t  fCenter;         //  Center of the cluster relative to the pad  
66
67 };
68
69 #if defined __GNUC__
70 #pragma GCC diagnostic warning "-Weffc++"
71 #elif defined __SUNPRO_CC
72 #pragma enable_warn
73 #elif defined _MSC_VER
74 #pragma warning(pop)
75 #endif
76
77 struct AliHLTTRDClustersArray {
78 #ifdef HAVE_NOT_ALITRD_RECOPARAM_r41621
79   typedef AliHLTTRDExtCluster cluster_type;
80 #else
81   typedef AliHLTTRDCluster cluster_type;
82 #endif
83   AliHLTTRDClustersArray(Int_t det):fDetector(det),fCount(0){}
84   Short_t  fDetector;
85   UShort_t fCount;
86 #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
87   cluster_type fCluster[1];
88 #else
89   cluster_type fCluster[];
90 #endif
91 };
92
93 #endif