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.                  *
 **************************************************************************/

//_________________________________________________________________________
//  Base class for the clusterization algorithm (pure abstract)
//*--
//*-- Author: Yves Schutz  SUBATECH 
//////////////////////////////////////////////////////////////////////////////

#include <TClonesArray.h>
#include <TTree.h>

#include "AliPHOSClusterizer.h"
#include "AliPHOSDigit.h"
#include "AliLog.h"

ClassImp(AliPHOSClusterizer)

AliPHOSCalibData * AliPHOSClusterizer::fgCalibData  = 0 ; 

//____________________________________________________________________________
AliPHOSClusterizer::AliPHOSClusterizer():
  fGeom(NULL),
  fDigitsArr(0),
  fTreeR(0),
  fEMCRecPoints(0),
  fCPVRecPoints(0)
{
  // ctor
  fDigitsArr    = new TClonesArray("AliPHOSDigit",100);
  fEMCRecPoints = new TObjArray(100) ;
  fEMCRecPoints ->SetName("EMCRECPOINTS") ;
  fCPVRecPoints = new TObjArray(100) ;
  fCPVRecPoints ->SetName("CPVRECPOINTS") ;
}

//____________________________________________________________________________
AliPHOSClusterizer::AliPHOSClusterizer(AliPHOSGeometry *geom):
  fGeom(geom),
  fDigitsArr(0),
  fTreeR(0),
  fEMCRecPoints(0),
  fCPVRecPoints(0)
{
  // ctor
  fDigitsArr    = new TClonesArray("AliPHOSDigit",100);
  fEMCRecPoints = new TObjArray(100) ;
  fEMCRecPoints ->SetName("EMCRECPOINTS") ;
  fCPVRecPoints = new TObjArray(100) ;
  fCPVRecPoints ->SetName("CPVRECPOINTS") ;
}

//____________________________________________________________________________
AliPHOSClusterizer::~AliPHOSClusterizer()
{
  // dtor
  if (fDigitsArr) {
    fDigitsArr->Delete();
    delete fDigitsArr;
  }
  if (fEMCRecPoints) {
    fEMCRecPoints->Delete();
    delete fEMCRecPoints;
  }
  if (fCPVRecPoints) {
    fCPVRecPoints->Delete();
    delete fCPVRecPoints;
  }
}

//____________________________________________________________________________
void AliPHOSClusterizer::SetInput(TTree * digitsTree) 
{
  // Get the tree with digits and sets
  // the input array with digits for PHOS
  TBranch *branch = digitsTree->GetBranch("PHOS");
  if (!branch) { 
    AliError("can't get the branch with the PHOS digits !");
    return;
  }
  fDigitsArr->Clear("C");
  branch->SetAddress(&fDigitsArr);
  branch->GetEntry(0);
}

//____________________________________________________________________________
void AliPHOSClusterizer::SetOutput(TTree * clustersTree) 
{
  // Set the output clusters tree,
  // creates the arrays for EMC and CPV,
  // and set the corresponding branch addresses
  fTreeR = clustersTree;

  AliDebug(9, "Making array for EMC clusters");
  Int_t split = 0;
  Int_t bufsize = 32000;
  fTreeR->Branch("PHOSEmcRP", "TObjArray", &fEMCRecPoints, bufsize, split);

  AliDebug(9, "Making array for CPV clusters");
  fTreeR->Branch("PHOSCpvRP", "TObjArray", &fCPVRecPoints, bufsize, split);
}
 AliPHOSClusterizer.cxx:1
 AliPHOSClusterizer.cxx:2
 AliPHOSClusterizer.cxx:3
 AliPHOSClusterizer.cxx:4
 AliPHOSClusterizer.cxx:5
 AliPHOSClusterizer.cxx:6
 AliPHOSClusterizer.cxx:7
 AliPHOSClusterizer.cxx:8
 AliPHOSClusterizer.cxx:9
 AliPHOSClusterizer.cxx:10
 AliPHOSClusterizer.cxx:11
 AliPHOSClusterizer.cxx:12
 AliPHOSClusterizer.cxx:13
 AliPHOSClusterizer.cxx:14
 AliPHOSClusterizer.cxx:15
 AliPHOSClusterizer.cxx:16
 AliPHOSClusterizer.cxx:17
 AliPHOSClusterizer.cxx:18
 AliPHOSClusterizer.cxx:19
 AliPHOSClusterizer.cxx:20
 AliPHOSClusterizer.cxx:21
 AliPHOSClusterizer.cxx:22
 AliPHOSClusterizer.cxx:23
 AliPHOSClusterizer.cxx:24
 AliPHOSClusterizer.cxx:25
 AliPHOSClusterizer.cxx:26
 AliPHOSClusterizer.cxx:27
 AliPHOSClusterizer.cxx:28
 AliPHOSClusterizer.cxx:29
 AliPHOSClusterizer.cxx:30
 AliPHOSClusterizer.cxx:31
 AliPHOSClusterizer.cxx:32
 AliPHOSClusterizer.cxx:33
 AliPHOSClusterizer.cxx:34
 AliPHOSClusterizer.cxx:35
 AliPHOSClusterizer.cxx:36
 AliPHOSClusterizer.cxx:37
 AliPHOSClusterizer.cxx:38
 AliPHOSClusterizer.cxx:39
 AliPHOSClusterizer.cxx:40
 AliPHOSClusterizer.cxx:41
 AliPHOSClusterizer.cxx:42
 AliPHOSClusterizer.cxx:43
 AliPHOSClusterizer.cxx:44
 AliPHOSClusterizer.cxx:45
 AliPHOSClusterizer.cxx:46
 AliPHOSClusterizer.cxx:47
 AliPHOSClusterizer.cxx:48
 AliPHOSClusterizer.cxx:49
 AliPHOSClusterizer.cxx:50
 AliPHOSClusterizer.cxx:51
 AliPHOSClusterizer.cxx:52
 AliPHOSClusterizer.cxx:53
 AliPHOSClusterizer.cxx:54
 AliPHOSClusterizer.cxx:55
 AliPHOSClusterizer.cxx:56
 AliPHOSClusterizer.cxx:57
 AliPHOSClusterizer.cxx:58
 AliPHOSClusterizer.cxx:59
 AliPHOSClusterizer.cxx:60
 AliPHOSClusterizer.cxx:61
 AliPHOSClusterizer.cxx:62
 AliPHOSClusterizer.cxx:63
 AliPHOSClusterizer.cxx:64
 AliPHOSClusterizer.cxx:65
 AliPHOSClusterizer.cxx:66
 AliPHOSClusterizer.cxx:67
 AliPHOSClusterizer.cxx:68
 AliPHOSClusterizer.cxx:69
 AliPHOSClusterizer.cxx:70
 AliPHOSClusterizer.cxx:71
 AliPHOSClusterizer.cxx:72
 AliPHOSClusterizer.cxx:73
 AliPHOSClusterizer.cxx:74
 AliPHOSClusterizer.cxx:75
 AliPHOSClusterizer.cxx:76
 AliPHOSClusterizer.cxx:77
 AliPHOSClusterizer.cxx:78
 AliPHOSClusterizer.cxx:79
 AliPHOSClusterizer.cxx:80
 AliPHOSClusterizer.cxx:81
 AliPHOSClusterizer.cxx:82
 AliPHOSClusterizer.cxx:83
 AliPHOSClusterizer.cxx:84
 AliPHOSClusterizer.cxx:85
 AliPHOSClusterizer.cxx:86
 AliPHOSClusterizer.cxx:87
 AliPHOSClusterizer.cxx:88
 AliPHOSClusterizer.cxx:89
 AliPHOSClusterizer.cxx:90
 AliPHOSClusterizer.cxx:91
 AliPHOSClusterizer.cxx:92
 AliPHOSClusterizer.cxx:93
 AliPHOSClusterizer.cxx:94
 AliPHOSClusterizer.cxx:95
 AliPHOSClusterizer.cxx:96
 AliPHOSClusterizer.cxx:97
 AliPHOSClusterizer.cxx:98
 AliPHOSClusterizer.cxx:99
 AliPHOSClusterizer.cxx:100
 AliPHOSClusterizer.cxx:101
 AliPHOSClusterizer.cxx:102
 AliPHOSClusterizer.cxx:103
 AliPHOSClusterizer.cxx:104
 AliPHOSClusterizer.cxx:105
 AliPHOSClusterizer.cxx:106
 AliPHOSClusterizer.cxx:107
 AliPHOSClusterizer.cxx:108
 AliPHOSClusterizer.cxx:109
 AliPHOSClusterizer.cxx:110
 AliPHOSClusterizer.cxx:111
 AliPHOSClusterizer.cxx:112
 AliPHOSClusterizer.cxx:113