LCOV - code coverage report
Current view: top level - ITS/ITSbase - AliITSSortTrkl.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 9 11.1 %
Date: 2016-06-14 17:26:59 Functions: 1 13 7.7 %

          Line data    Source code
       1             : #ifndef ALIITSSORTTRKL_H 
       2             : #define ALIITSSORTTRKL_H 
       3             : 
       4             : /* Copyright(c) 2009-2010, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : /* $Id$ */
       8             : 
       9             : ////////////////////////////////////////////////////////////////////////
      10             : //           Helper class for finding multiple primary vertices       //
      11             : //           To be used by AliITSVertexer3D                           //
      12             : //           Origin M. Masera masera@to.infn.it                       //
      13             : ////////////////////////////////////////////////////////////////////////
      14             : 
      15             : 
      16             : #include<TBits.h>
      17             : #include "AliLog.h"
      18             : #include "AliITSTracklPairs.h"
      19             : 
      20             : class TClonesArray;
      21             : 
      22             : class AliITSSortTrkl : public TObject {
      23             : 
      24             :  public:
      25             : 
      26             :   AliITSSortTrkl();
      27             :   AliITSSortTrkl(Int_t n, Double_t cut = 0.05);
      28             :   AliITSSortTrkl(TClonesArray &tclo, Int_t n, Double_t cut, Double_t rcut);
      29             :   virtual ~AliITSSortTrkl();
      30             :   Int_t AddPairs(Int_t t1, Int_t t2, Double_t dca, Double_t *coo);
      31           0 :   Int_t GetIndex() const {return fIndex;}
      32             :   Int_t FindClusters();
      33           0 :   void SetCut(Double_t cut){fCut = cut;}
      34           0 :   Double_t GetCut() const {return fCut; }
      35           0 :   Int_t* GetClusters(Int_t index) const {if(index>=0 && index<fNoClus){return fClusters[index];} else {return NULL;}}
      36           0 :   Int_t GetNumberOfClusters() const {return fNoClus;}
      37           0 :   Int_t GetSizeOfCluster(Int_t index) const {if(index>=0 && index<fNoClus){return fSize[index];} else {return -1;}}
      38             :   static void SortAndClean(Int_t numb, Int_t *arr, Int_t& numb2);
      39             :   Int_t* GetTrackletsLab(Int_t index, Int_t& dim) const;
      40             : 
      41             :   // FOR DEBUGGING PURPOSES
      42           0 :   Int_t* GetClustersTmp(Int_t index){return fClustersTmp[index];}
      43           0 :   AliITSTracklPairs* GetPairsAt(Int_t i) const {if(!(i>=0 && i<fIndex)){AliError(Form("Index %d out of bounds",i)); return NULL;} else{ return fPairs[i];} }
      44             : 
      45             : 
      46             :  protected:
      47             : 
      48             :   AliITSSortTrkl(const AliITSSortTrkl& pa);
      49             :   AliITSSortTrkl& operator=(const AliITSSortTrkl& /* pa */);
      50             :   void Cleanup();
      51             :   void DeleteClustersTmp();
      52             :   void PrepareClustersTmp();
      53             :   void Clustering(Int_t i, Int_t *v);
      54             :   Int_t* FindLabels(Int_t *v, Int_t dimmax, Int_t& dim) const;
      55             : 
      56             :   const Int_t fkSize;         // Maximum number of tracklet pairs
      57             :   Int_t fIndex;               // Total number of tracklet pairs (<=fkSize)
      58             :   AliITSTracklPairs **fPairs;  // array of tracklet pairs (pointers to)
      59             :   Int_t **fClustersTmp;      // Temporary list of clusters of tracklet pairs
      60             :   Int_t **fClusters;      // List of clusters of tracklet pairs after cleanup
      61             :   Int_t fNoClus;         // Number of clusters of tracklet pairs
      62             :   Int_t *fSize;          // Number of pairs for each cluster
      63             :   TBits fMark;           // Used to mask used pairs
      64             :   Double_t fCut;         // cut on distance of DCAs of pairs for association
      65             :   Double_t fCoarseMaxRCut;  // cut on distance from beam axis
      66             : 
      67         118 :  ClassDef(AliITSSortTrkl,0);
      68             : };
      69             : 
      70             : #endif

Generated by: LCOV version 1.11