ROOT logo
#ifndef ALIITSUCLUSTERLINES_H
#define ALIITSUCLUSTERLINES_H
/* Copyright(c) 2009-2014, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
 
/////////////////////////////////////////////////////////////////////////////
// Class intended to gather and compute the parameters of vertex candidate //
/////////////////////////////////////////////////////////////////////////////
 
#include <TObject.h>
#include <Riostream.h>
#include "AliStrLine.h"
#include <vector>

using std::vector;


class AliITSUClusterLines : public TObject {
 public:
  AliITSUClusterLines();
  AliITSUClusterLines(UInt_t first, AliStrLine *firstL, UInt_t second, AliStrLine *secondL,Bool_t=kFALSE);
  virtual ~AliITSUClusterLines();
  
  void Add(UInt_t label, AliStrLine *line, Bool_t weight=kFALSE);
  void ComputeClusterCentroid();
  inline UInt_t GetSize() const { return fLabels.size(); }
  inline Int_t* GetLabels(UInt_t &n) {n=fLabels.size(); return &fLabels[0]; }
  inline void GetA(Float_t a[3]) { for(Int_t i=0; i<3; ++i) a[i]=fA[i]; }
  inline void GetA(Double_t a[3]) { for(Int_t i=0; i<3; ++i) a[i]=fA[i]; }
  inline void GetB(Float_t b[3]) { for(Int_t i=0; i<3; ++i) b[i]=fB[i]; }
  inline void GetB(Double_t b[3]) { for(Int_t i=0; i<3; ++i) b[i]=fB[i]; }
  void GetCovMatrix(Float_t cov[6]);
  void GetCovMatrix(Double_t cov[6]);
  inline void GetVertex(Float_t p[3]) { for(Int_t i=0; i<3; ++i) p[i]=fV[i]; }
  inline void GetVertex(Double_t p[3]) { for(Int_t i=0; i<3; ++i) p[i]=fV[i]; }
  inline void GetWeight(Float_t w[9]) { for(Int_t i=0; i<9; ++i) w[i]=fW[i]; }
  inline void GetWeight(Double_t w[9]) { for(Int_t i=0; i<9; ++i) w[i]=fW[i]; }
  //
  virtual Bool_t IsSortable()                 const {return kTRUE;}
  virtual Bool_t IsEqual(const TObject* obj)  const;
  virtual Int_t	 Compare(const TObject* obj)  const;

 protected:
  Double_t fA[6];         // AX=B 
  Double_t fB[3];         // AX=B
  vector<Int_t> fLabels;  // labels
  Double_t fV[3];         // vertex candidate
  Double_t fW[9];         // weight matrix
  ClassDef(AliITSUClusterLines,1);
};

#endif
 AliITSUClusterLines.h:1
 AliITSUClusterLines.h:2
 AliITSUClusterLines.h:3
 AliITSUClusterLines.h:4
 AliITSUClusterLines.h:5
 AliITSUClusterLines.h:6
 AliITSUClusterLines.h:7
 AliITSUClusterLines.h:8
 AliITSUClusterLines.h:9
 AliITSUClusterLines.h:10
 AliITSUClusterLines.h:11
 AliITSUClusterLines.h:12
 AliITSUClusterLines.h:13
 AliITSUClusterLines.h:14
 AliITSUClusterLines.h:15
 AliITSUClusterLines.h:16
 AliITSUClusterLines.h:17
 AliITSUClusterLines.h:18
 AliITSUClusterLines.h:19
 AliITSUClusterLines.h:20
 AliITSUClusterLines.h:21
 AliITSUClusterLines.h:22
 AliITSUClusterLines.h:23
 AliITSUClusterLines.h:24
 AliITSUClusterLines.h:25
 AliITSUClusterLines.h:26
 AliITSUClusterLines.h:27
 AliITSUClusterLines.h:28
 AliITSUClusterLines.h:29
 AliITSUClusterLines.h:30
 AliITSUClusterLines.h:31
 AliITSUClusterLines.h:32
 AliITSUClusterLines.h:33
 AliITSUClusterLines.h:34
 AliITSUClusterLines.h:35
 AliITSUClusterLines.h:36
 AliITSUClusterLines.h:37
 AliITSUClusterLines.h:38
 AliITSUClusterLines.h:39
 AliITSUClusterLines.h:40
 AliITSUClusterLines.h:41
 AliITSUClusterLines.h:42
 AliITSUClusterLines.h:43
 AliITSUClusterLines.h:44
 AliITSUClusterLines.h:45
 AliITSUClusterLines.h:46
 AliITSUClusterLines.h:47
 AliITSUClusterLines.h:48
 AliITSUClusterLines.h:49
 AliITSUClusterLines.h:50
 AliITSUClusterLines.h:51
 AliITSUClusterLines.h:52