]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSUpgradeClusterList.h
ITS-upgrade simulation/reconstruction code (C. Terrevoli, A. Mastroserio)
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUpgradeClusterList.h
CommitLineData
1d9af2d5 1#ifndef ITSUPGRADE_CLUSTER_LIST_H
2#define ITSUPGRADE_CLUSTER_LIST_H
3/* Copyright(c) 2004-2006, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5//////////////////////////////////////////////////////////////////////
6// Author: A.Mastroserio, C.Terrevoli //
7// annalisa.mastroserio@cern.ch //
8// cristina.terrevoli@ba.infn.it //
9// //
10// This is class implements the use of a list of clusters. //
11// //
12//////////////////////////////////////////////////////////////////////
13
14/* $Id$ */
15#include <Rtypes.h>
16
17class AliITSUpgradeClusterListNode;
18
19class AliITSUpgradeClusterList {
20
21 public:
22 AliITSUpgradeClusterList();
23 AliITSUpgradeClusterList(AliITSUpgradeClusterListNode* first,UInt_t nrEntries);
24 AliITSUpgradeClusterList(const AliITSUpgradeClusterList& ilist);
25 virtual ~AliITSUpgradeClusterList();
26 AliITSUpgradeClusterList& operator=(const AliITSUpgradeClusterList& ilist);
27
28 void Clear();
29 AliITSUpgradeClusterList* Clone() const;
30 Bool_t Insert(Float_t col, Float_t row, UShort_t size, UShort_t widthZ, UShort_t widthPhi, UShort_t type, UShort_t charge, Int_t labels[10]);
31
32 UInt_t GetNrEntries() const {return fNrEntries;}
33 Float_t GetColIndex(UInt_t index);
34 Float_t GetRowIndex(UInt_t index);
35 UShort_t GetSizeIndex(UInt_t index);
36 UShort_t GetWidthZIndex(UInt_t index);
37 UShort_t GetWidthPhiIndex(UInt_t index);
38 UShort_t GetTypeIndex(UInt_t index);
39 UShort_t GetCharge(UInt_t index);
40 Int_t * GetLabels(UInt_t index);
41
42 private:
43 UInt_t fNrEntries;
44 AliITSUpgradeClusterListNode* fFirst;
45 AliITSUpgradeClusterListNode* fLast;
46
47 Bool_t fFastAccess;
48 AliITSUpgradeClusterListNode** fFastAccessArray;
49 UInt_t fDummyIndex;
50
51
52 void ClearNode(AliITSUpgradeClusterListNode* &node); // delete this node and all after
53 AliITSUpgradeClusterListNode* CloneNode(AliITSUpgradeClusterListNode* node) const;
54
55 void ClearFastAccess();
56 void InitFastAccess();
57 void InitFastAccessNode(AliITSUpgradeClusterListNode* node);
58 void SetLastNode();
59
60};
61
62#endif