ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//-------------------------------------------------------
//          Implementation of the TPC cluster debug information
//
//   Origin: Marian Ivanov   Marian.Ivanov@cern.ch
//   
//   Additional cluster information to monitor clustering performance
//   and to extract a features of detector response
//   Information attached to the default cluster
//   ONLY in DEBUG MODE
//    
//-------------------------------------------------------

/* $Id$ */

#include "AliTPCclusterInfo.h"
#include "AliLog.h"

ClassImp(AliTPCclusterInfo)


AliTPCclusterInfo::AliTPCclusterInfo():
  fNPads(0),
  fNTimeBins(0),
  fNBins(0),
  fGraph(0)
{
  //
  // default constructor
  //  
  for (Int_t i=0; i<25;i++){
    fMatrix[i] = i; 
  }
}

AliTPCclusterInfo::AliTPCclusterInfo(const  AliTPCclusterInfo & info):
  TObject(info),
  fNPads(info.fNPads),
  fNTimeBins(info.fNTimeBins),
  fNBins(info.fNBins),
  fGraph(0)    
{
  //
  // copy constructor
  //
  //  AliInfo("Copy constructor\n");
  for (Int_t i=0; i<25;i++){
    fMatrix[i] = info.fMatrix[i]; 
  }
  if (info.fGraph) {
    fGraph = new Float_t[fNBins];
    for (Int_t i=0;i<fNBins; i++){
      fGraph[i] = info.fGraph[i];
    }
  }
}


AliTPCclusterInfo::AliTPCclusterInfo(Bool_t extend):
  fNPads(0),
  fNTimeBins(0),
  fNBins(0),
  fGraph(0)
{
  //
  // allocate dummy graph - neccessary for IO part to use automatic branching
  //  
  for (Int_t i=0; i<25;i++){
    fMatrix[i] = i; 
  }
  if (extend){
    fNBins = 1;
    fGraph  = new Float_t[1];
    fGraph[0]=-1;
  }
}

AliTPCclusterInfo::AliTPCclusterInfo(Float_t *matrix, Int_t nbins, Float_t* graph):
  fNPads(0),
  fNTimeBins(0),
  fNBins(0),
  fGraph(0)
{
  //
  // constructor of the info
  //
  for (Int_t i=0;i<25;i++){
    fMatrix[i]=matrix[i];
  }
  fNPads=0;
  fNTimeBins=0;
  Int_t center = 5+5+2;
  for (Int_t i=-2; i<=2;i++) if (matrix[center+i]>0) fNTimeBins++;
  for (Int_t i=-2; i<=2;i++) if (matrix[center+i*5]>0) fNPads++;
  fNBins = nbins;
  fGraph = 0;
  if (fNBins>0) {
    fGraph = new Float_t[fNBins];
    for (Int_t i=0;i<fNBins; i++){
      fGraph[i] = graph[i];
    }
  }
}

AliTPCclusterInfo& AliTPCclusterInfo::operator=(const AliTPCclusterInfo& info){
  //
  // assignment operator
  // 
  if (this == &info) return (*this);
  for (Int_t i=0; i<25;i++){
    fMatrix[i] = info.fMatrix[i]; 
  }
  if (info.fGraph) {
    if (fGraph) delete []fGraph;
    fGraph = new Float_t[fNBins];
    for (Int_t i=0;i<fNBins; i++){
      fGraph[i] = info.fGraph[i];
    }
  }  
  return *this;
}


UChar_t AliTPCclusterInfo::GetNPads(Float_t threshold) const { 
  //
  //
  Int_t nPads=0;
  Int_t center = 5+5+2;
  for (Int_t i=-2; i<=2;i++) if (fMatrix[center+i*5]>threshold) nPads++;
  return nPads;
}

UChar_t AliTPCclusterInfo::GetNTimeBins(Float_t threshold) const { 
  //
  //
  //
  Int_t nTimeBins=0;
  Int_t center = 5+5+2;
  for (Int_t i=-2; i<=2;i++) if (fMatrix[center+i]>threshold) nTimeBins++;
  return nTimeBins;
}




AliTPCclusterInfo::~AliTPCclusterInfo(){
  //
  // destructor
  //
  if (fGraph)  delete [] fGraph;
}

 AliTPCclusterInfo.cxx:1
 AliTPCclusterInfo.cxx:2
 AliTPCclusterInfo.cxx:3
 AliTPCclusterInfo.cxx:4
 AliTPCclusterInfo.cxx:5
 AliTPCclusterInfo.cxx:6
 AliTPCclusterInfo.cxx:7
 AliTPCclusterInfo.cxx:8
 AliTPCclusterInfo.cxx:9
 AliTPCclusterInfo.cxx:10
 AliTPCclusterInfo.cxx:11
 AliTPCclusterInfo.cxx:12
 AliTPCclusterInfo.cxx:13
 AliTPCclusterInfo.cxx:14
 AliTPCclusterInfo.cxx:15
 AliTPCclusterInfo.cxx:16
 AliTPCclusterInfo.cxx:17
 AliTPCclusterInfo.cxx:18
 AliTPCclusterInfo.cxx:19
 AliTPCclusterInfo.cxx:20
 AliTPCclusterInfo.cxx:21
 AliTPCclusterInfo.cxx:22
 AliTPCclusterInfo.cxx:23
 AliTPCclusterInfo.cxx:24
 AliTPCclusterInfo.cxx:25
 AliTPCclusterInfo.cxx:26
 AliTPCclusterInfo.cxx:27
 AliTPCclusterInfo.cxx:28
 AliTPCclusterInfo.cxx:29
 AliTPCclusterInfo.cxx:30
 AliTPCclusterInfo.cxx:31
 AliTPCclusterInfo.cxx:32
 AliTPCclusterInfo.cxx:33
 AliTPCclusterInfo.cxx:34
 AliTPCclusterInfo.cxx:35
 AliTPCclusterInfo.cxx:36
 AliTPCclusterInfo.cxx:37
 AliTPCclusterInfo.cxx:38
 AliTPCclusterInfo.cxx:39
 AliTPCclusterInfo.cxx:40
 AliTPCclusterInfo.cxx:41
 AliTPCclusterInfo.cxx:42
 AliTPCclusterInfo.cxx:43
 AliTPCclusterInfo.cxx:44
 AliTPCclusterInfo.cxx:45
 AliTPCclusterInfo.cxx:46
 AliTPCclusterInfo.cxx:47
 AliTPCclusterInfo.cxx:48
 AliTPCclusterInfo.cxx:49
 AliTPCclusterInfo.cxx:50
 AliTPCclusterInfo.cxx:51
 AliTPCclusterInfo.cxx:52
 AliTPCclusterInfo.cxx:53
 AliTPCclusterInfo.cxx:54
 AliTPCclusterInfo.cxx:55
 AliTPCclusterInfo.cxx:56
 AliTPCclusterInfo.cxx:57
 AliTPCclusterInfo.cxx:58
 AliTPCclusterInfo.cxx:59
 AliTPCclusterInfo.cxx:60
 AliTPCclusterInfo.cxx:61
 AliTPCclusterInfo.cxx:62
 AliTPCclusterInfo.cxx:63
 AliTPCclusterInfo.cxx:64
 AliTPCclusterInfo.cxx:65
 AliTPCclusterInfo.cxx:66
 AliTPCclusterInfo.cxx:67
 AliTPCclusterInfo.cxx:68
 AliTPCclusterInfo.cxx:69
 AliTPCclusterInfo.cxx:70
 AliTPCclusterInfo.cxx:71
 AliTPCclusterInfo.cxx:72
 AliTPCclusterInfo.cxx:73
 AliTPCclusterInfo.cxx:74
 AliTPCclusterInfo.cxx:75
 AliTPCclusterInfo.cxx:76
 AliTPCclusterInfo.cxx:77
 AliTPCclusterInfo.cxx:78
 AliTPCclusterInfo.cxx:79
 AliTPCclusterInfo.cxx:80
 AliTPCclusterInfo.cxx:81
 AliTPCclusterInfo.cxx:82
 AliTPCclusterInfo.cxx:83
 AliTPCclusterInfo.cxx:84
 AliTPCclusterInfo.cxx:85
 AliTPCclusterInfo.cxx:86
 AliTPCclusterInfo.cxx:87
 AliTPCclusterInfo.cxx:88
 AliTPCclusterInfo.cxx:89
 AliTPCclusterInfo.cxx:90
 AliTPCclusterInfo.cxx:91
 AliTPCclusterInfo.cxx:92
 AliTPCclusterInfo.cxx:93
 AliTPCclusterInfo.cxx:94
 AliTPCclusterInfo.cxx:95
 AliTPCclusterInfo.cxx:96
 AliTPCclusterInfo.cxx:97
 AliTPCclusterInfo.cxx:98
 AliTPCclusterInfo.cxx:99
 AliTPCclusterInfo.cxx:100
 AliTPCclusterInfo.cxx:101
 AliTPCclusterInfo.cxx:102
 AliTPCclusterInfo.cxx:103
 AliTPCclusterInfo.cxx:104
 AliTPCclusterInfo.cxx:105
 AliTPCclusterInfo.cxx:106
 AliTPCclusterInfo.cxx:107
 AliTPCclusterInfo.cxx:108
 AliTPCclusterInfo.cxx:109
 AliTPCclusterInfo.cxx:110
 AliTPCclusterInfo.cxx:111
 AliTPCclusterInfo.cxx:112
 AliTPCclusterInfo.cxx:113
 AliTPCclusterInfo.cxx:114
 AliTPCclusterInfo.cxx:115
 AliTPCclusterInfo.cxx:116
 AliTPCclusterInfo.cxx:117
 AliTPCclusterInfo.cxx:118
 AliTPCclusterInfo.cxx:119
 AliTPCclusterInfo.cxx:120
 AliTPCclusterInfo.cxx:121
 AliTPCclusterInfo.cxx:122
 AliTPCclusterInfo.cxx:123
 AliTPCclusterInfo.cxx:124
 AliTPCclusterInfo.cxx:125
 AliTPCclusterInfo.cxx:126
 AliTPCclusterInfo.cxx:127
 AliTPCclusterInfo.cxx:128
 AliTPCclusterInfo.cxx:129
 AliTPCclusterInfo.cxx:130
 AliTPCclusterInfo.cxx:131
 AliTPCclusterInfo.cxx:132
 AliTPCclusterInfo.cxx:133
 AliTPCclusterInfo.cxx:134
 AliTPCclusterInfo.cxx:135
 AliTPCclusterInfo.cxx:136
 AliTPCclusterInfo.cxx:137
 AliTPCclusterInfo.cxx:138
 AliTPCclusterInfo.cxx:139
 AliTPCclusterInfo.cxx:140
 AliTPCclusterInfo.cxx:141
 AliTPCclusterInfo.cxx:142
 AliTPCclusterInfo.cxx:143
 AliTPCclusterInfo.cxx:144
 AliTPCclusterInfo.cxx:145
 AliTPCclusterInfo.cxx:146
 AliTPCclusterInfo.cxx:147
 AliTPCclusterInfo.cxx:148
 AliTPCclusterInfo.cxx:149
 AliTPCclusterInfo.cxx:150
 AliTPCclusterInfo.cxx:151
 AliTPCclusterInfo.cxx:152
 AliTPCclusterInfo.cxx:153
 AliTPCclusterInfo.cxx:154
 AliTPCclusterInfo.cxx:155
 AliTPCclusterInfo.cxx:156
 AliTPCclusterInfo.cxx:157
 AliTPCclusterInfo.cxx:158
 AliTPCclusterInfo.cxx:159
 AliTPCclusterInfo.cxx:160
 AliTPCclusterInfo.cxx:161
 AliTPCclusterInfo.cxx:162
 AliTPCclusterInfo.cxx:163
 AliTPCclusterInfo.cxx:164
 AliTPCclusterInfo.cxx:165
 AliTPCclusterInfo.cxx:166