]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDCluster.h
- DCAr and DCAz with cuts are removed, not necessary
[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 #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   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
99 #endif