]>
Commit | Line | Data |
---|---|---|
93ce7d1b | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | ||
dc2e6604 | 4 | #ifndef ALIHLTTRDCLUSTERIZER_H |
5 | #define ALIHLTTRDCLUSTERIZER_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 * | |
dc2e6604 | 9 | |
10 | //////////////////////////////////////////////////////////////////////////// | |
11 | // // | |
12 | // HLT TRD cluster finder // | |
13 | // // | |
14 | //////////////////////////////////////////////////////////////////////////// | |
15 | ||
16 | #include "AliTRDclusterizer.h" | |
775f67d7 | 17 | #include "AliTRDReconstructor.h" |
dc2e6604 | 18 | #include "AliHLTDataTypes.h" |
775f67d7 | 19 | #include "AliHLTTRDTrackletWordArray.h" |
dc2e6604 | 20 | |
196a8c4f | 21 | class AliHLTTRDClustersArray; |
dc2e6604 | 22 | class AliHLTTRDClusterizer : public AliTRDclusterizer |
23 | { | |
24 | public: | |
25 | AliHLTTRDClusterizer(const AliTRDReconstructor *const rec = 0x0); | |
26 | AliHLTTRDClusterizer(const Text_t *const name, const Text_t *const title, const AliTRDReconstructor *const rec = 0x0); | |
27 | AliHLTTRDClusterizer(const AliHLTTRDClusterizer& c); | |
e47650f5 | 28 | virtual ~AliHLTTRDClusterizer() {}; |
dc2e6604 | 29 | AliHLTTRDClusterizer& operator=(const AliHLTTRDClusterizer& c); |
30 | ||
18ada816 | 31 | void Copy(TObject& c) const; |
775f67d7 | 32 | void SetMemBlock(AliHLTUInt8_t* ptr){ |
33 | if(fReconstructor->IsProcessingTracklets()){ | |
34 | fTrMemBlock=ptr; fTrMemCurrPtr=ptr; | |
93ce7d1b | 35 | fClMemBlock=ptr+GetTrMemBlockSize(); //if IsProcessingTracklets() is enabled we always reserve a data block of size GetTrMemBlockSize() for the tracklets |
775f67d7 | 36 | }else{ |
93ce7d1b | 37 | fClMemBlock=ptr; |
775f67d7 | 38 | } |
93ce7d1b | 39 | fNoOfClusters=0; |
196a8c4f | 40 | fAddedSize=0; |
41 | fLastDet=-1; | |
42 | fClusters=NULL; | |
775f67d7 | 43 | } |
44 | AliHLTUInt8_t* GetClMemBlock(){return fClMemBlock;} | |
45 | AliHLTUInt8_t* GetTrMemBlock(){return fTrMemBlock;} | |
196a8c4f | 46 | UInt_t GetAddedClSize(){return fAddedSize;} |
775f67d7 | 47 | UInt_t GetAddedTrSize(){return (AliHLTUInt8_t*)fTrMemCurrPtr-(AliHLTUInt8_t*)fTrMemBlock;} |
48 | UInt_t GetTrMemBlockSize(){return 30*(sizeof(AliHLTTRDTrackletWordArray)+512*sizeof(UInt_t));} | |
dc2e6604 | 49 | |
50 | protected: | |
196a8c4f | 51 | void AddClusterToArray(AliTRDcluster* cluster); |
775f67d7 | 52 | void AddTrackletsToArray(); |
18ada816 | 53 | |
775f67d7 | 54 | TClonesArray* RecPoints(){return 0x0;} //these are functions in the parents class and must not be used in hlt! |
55 | TClonesArray* TrackletsArray(){return 0x0;} //if used accidentally it may give a compilation error because they are protected, | |
56 | void SetClustersOwner(Bool_t /*own*/){} //but it could be that the error appears only in run time | |
dc2e6604 | 57 | |
775f67d7 | 58 | AliHLTUInt8_t* fClMemBlock; |
59 | AliHLTUInt8_t* fTrMemBlock; | |
60 | AliHLTUInt8_t* fTrMemCurrPtr; | |
196a8c4f | 61 | Int_t fLastDet; |
62 | AliHLTTRDClustersArray* fClusters; | |
63 | AliHLTUInt32_t fAddedSize; | |
dc2e6604 | 64 | |
775f67d7 | 65 | ClassDef(AliHLTTRDClusterizer, 1) |
dc2e6604 | 66 | }; |
67 | ||
68 | #endif |