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

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.29  2007/08/28 12:55:08  policheh
 * Loaders removed from the reconstruction code (C.Cheshkov)
 *
 * Revision 1.28  2007/08/07 14:12:03  kharlov
 * Quality assurance added (Yves Schutz)
 *
 * Revision 1.27  2006/08/25 16:56:30  kharlov
 * Compliance with Effective C++
 *
 * Revision 1.26  2006/08/25 16:00:53  kharlov
 * Compliance with Effective C++AliPHOSHit.cxx
 *
 * Revision 1.25  2005/05/28 14:19:05  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
// Algorithm Base class to construct PHOS track segments
// Associates EMC and PPSD clusters
// Unfolds the EMC cluster   
//*-- 
//*-- Author: Dmitri Peressounko (RRC Ki & SUBATECH)


// --- ROOT system ---
#include "TTree.h"

// --- Standard library ---

// --- AliRoot header files ---
#include "AliPHOSTrackSegmentMaker.h"
#include "AliLog.h"

ClassImp( AliPHOSTrackSegmentMaker) 


//____________________________________________________________________________
AliPHOSTrackSegmentMaker:: AliPHOSTrackSegmentMaker() : 
  TObject(),
  fESD(0), 
  fGeom(0),
  fEMCRecPoints(0),
  fCPVRecPoints(0)
{
 // ctor
  fEMCRecPoints = new TObjArray(100) ;
  fCPVRecPoints = new TObjArray(100) ;
}

//____________________________________________________________________________
AliPHOSTrackSegmentMaker::AliPHOSTrackSegmentMaker(AliPHOSGeometry *geom):
  TObject(),
  fESD(0), 
  fGeom(geom),
  fEMCRecPoints(0),
  fCPVRecPoints(0)
{
  // ctor
  fEMCRecPoints = new TObjArray(100) ;
  fCPVRecPoints = new TObjArray(100) ;
}

//____________________________________________________________________________
AliPHOSTrackSegmentMaker::AliPHOSTrackSegmentMaker(const AliPHOSTrackSegmentMaker & tsmaker) :
  TObject(tsmaker),
  fESD(tsmaker.GetESD()), 
  fGeom(tsmaker.fGeom),
  fEMCRecPoints(tsmaker.fEMCRecPoints),
  fCPVRecPoints(tsmaker.fCPVRecPoints)
{
  //Copy constructor
} 

//____________________________________________________________________________
AliPHOSTrackSegmentMaker::~AliPHOSTrackSegmentMaker()
{
  //Remove this from the parental task before destroying
  if (fEMCRecPoints) {
    fEMCRecPoints->Delete();
    delete fEMCRecPoints;
  }
  if (fCPVRecPoints) {
    fCPVRecPoints->Delete();
    delete fCPVRecPoints;
  }
}

//____________________________________________________________________________
void AliPHOSTrackSegmentMaker::SetInput(TTree *clustersTree)
{
  // Read the clusters tree and set addresses to the
  // arrays with the EMC and CPV clusters

  TBranch *emcbranch = clustersTree->GetBranch("PHOSEmcRP");
  if (!emcbranch) { 
    AliError("can't get the branch with the PHOS EMC clusters !");
    return;
  }
  emcbranch->SetAddress(&fEMCRecPoints);
  fEMCRecPoints->Delete();
  emcbranch->GetEntry(0);

  TBranch *cpvbranch = clustersTree->GetBranch("PHOSCpvRP");
  if (!cpvbranch) { 
    AliError("can't get the branch with the PHOS CPV clusters !");
    return;
  }
  cpvbranch->SetAddress(&fCPVRecPoints);
  fCPVRecPoints->Delete();
  cpvbranch->GetEntry(0);
}
 AliPHOSTrackSegmentMaker.cxx:1
 AliPHOSTrackSegmentMaker.cxx:2
 AliPHOSTrackSegmentMaker.cxx:3
 AliPHOSTrackSegmentMaker.cxx:4
 AliPHOSTrackSegmentMaker.cxx:5
 AliPHOSTrackSegmentMaker.cxx:6
 AliPHOSTrackSegmentMaker.cxx:7
 AliPHOSTrackSegmentMaker.cxx:8
 AliPHOSTrackSegmentMaker.cxx:9
 AliPHOSTrackSegmentMaker.cxx:10
 AliPHOSTrackSegmentMaker.cxx:11
 AliPHOSTrackSegmentMaker.cxx:12
 AliPHOSTrackSegmentMaker.cxx:13
 AliPHOSTrackSegmentMaker.cxx:14
 AliPHOSTrackSegmentMaker.cxx:15
 AliPHOSTrackSegmentMaker.cxx:16
 AliPHOSTrackSegmentMaker.cxx:17
 AliPHOSTrackSegmentMaker.cxx:18
 AliPHOSTrackSegmentMaker.cxx:19
 AliPHOSTrackSegmentMaker.cxx:20
 AliPHOSTrackSegmentMaker.cxx:21
 AliPHOSTrackSegmentMaker.cxx:22
 AliPHOSTrackSegmentMaker.cxx:23
 AliPHOSTrackSegmentMaker.cxx:24
 AliPHOSTrackSegmentMaker.cxx:25
 AliPHOSTrackSegmentMaker.cxx:26
 AliPHOSTrackSegmentMaker.cxx:27
 AliPHOSTrackSegmentMaker.cxx:28
 AliPHOSTrackSegmentMaker.cxx:29
 AliPHOSTrackSegmentMaker.cxx:30
 AliPHOSTrackSegmentMaker.cxx:31
 AliPHOSTrackSegmentMaker.cxx:32
 AliPHOSTrackSegmentMaker.cxx:33
 AliPHOSTrackSegmentMaker.cxx:34
 AliPHOSTrackSegmentMaker.cxx:35
 AliPHOSTrackSegmentMaker.cxx:36
 AliPHOSTrackSegmentMaker.cxx:37
 AliPHOSTrackSegmentMaker.cxx:38
 AliPHOSTrackSegmentMaker.cxx:39
 AliPHOSTrackSegmentMaker.cxx:40
 AliPHOSTrackSegmentMaker.cxx:41
 AliPHOSTrackSegmentMaker.cxx:42
 AliPHOSTrackSegmentMaker.cxx:43
 AliPHOSTrackSegmentMaker.cxx:44
 AliPHOSTrackSegmentMaker.cxx:45
 AliPHOSTrackSegmentMaker.cxx:46
 AliPHOSTrackSegmentMaker.cxx:47
 AliPHOSTrackSegmentMaker.cxx:48
 AliPHOSTrackSegmentMaker.cxx:49
 AliPHOSTrackSegmentMaker.cxx:50
 AliPHOSTrackSegmentMaker.cxx:51
 AliPHOSTrackSegmentMaker.cxx:52
 AliPHOSTrackSegmentMaker.cxx:53
 AliPHOSTrackSegmentMaker.cxx:54
 AliPHOSTrackSegmentMaker.cxx:55
 AliPHOSTrackSegmentMaker.cxx:56
 AliPHOSTrackSegmentMaker.cxx:57
 AliPHOSTrackSegmentMaker.cxx:58
 AliPHOSTrackSegmentMaker.cxx:59
 AliPHOSTrackSegmentMaker.cxx:60
 AliPHOSTrackSegmentMaker.cxx:61
 AliPHOSTrackSegmentMaker.cxx:62
 AliPHOSTrackSegmentMaker.cxx:63
 AliPHOSTrackSegmentMaker.cxx:64
 AliPHOSTrackSegmentMaker.cxx:65
 AliPHOSTrackSegmentMaker.cxx:66
 AliPHOSTrackSegmentMaker.cxx:67
 AliPHOSTrackSegmentMaker.cxx:68
 AliPHOSTrackSegmentMaker.cxx:69
 AliPHOSTrackSegmentMaker.cxx:70
 AliPHOSTrackSegmentMaker.cxx:71
 AliPHOSTrackSegmentMaker.cxx:72
 AliPHOSTrackSegmentMaker.cxx:73
 AliPHOSTrackSegmentMaker.cxx:74
 AliPHOSTrackSegmentMaker.cxx:75
 AliPHOSTrackSegmentMaker.cxx:76
 AliPHOSTrackSegmentMaker.cxx:77
 AliPHOSTrackSegmentMaker.cxx:78
 AliPHOSTrackSegmentMaker.cxx:79
 AliPHOSTrackSegmentMaker.cxx:80
 AliPHOSTrackSegmentMaker.cxx:81
 AliPHOSTrackSegmentMaker.cxx:82
 AliPHOSTrackSegmentMaker.cxx:83
 AliPHOSTrackSegmentMaker.cxx:84
 AliPHOSTrackSegmentMaker.cxx:85
 AliPHOSTrackSegmentMaker.cxx:86
 AliPHOSTrackSegmentMaker.cxx:87
 AliPHOSTrackSegmentMaker.cxx:88
 AliPHOSTrackSegmentMaker.cxx:89
 AliPHOSTrackSegmentMaker.cxx:90
 AliPHOSTrackSegmentMaker.cxx:91
 AliPHOSTrackSegmentMaker.cxx:92
 AliPHOSTrackSegmentMaker.cxx:93
 AliPHOSTrackSegmentMaker.cxx:94
 AliPHOSTrackSegmentMaker.cxx:95
 AliPHOSTrackSegmentMaker.cxx:96
 AliPHOSTrackSegmentMaker.cxx:97
 AliPHOSTrackSegmentMaker.cxx:98
 AliPHOSTrackSegmentMaker.cxx:99
 AliPHOSTrackSegmentMaker.cxx:100
 AliPHOSTrackSegmentMaker.cxx:101
 AliPHOSTrackSegmentMaker.cxx:102
 AliPHOSTrackSegmentMaker.cxx:103
 AliPHOSTrackSegmentMaker.cxx:104
 AliPHOSTrackSegmentMaker.cxx:105
 AliPHOSTrackSegmentMaker.cxx:106
 AliPHOSTrackSegmentMaker.cxx:107
 AliPHOSTrackSegmentMaker.cxx:108
 AliPHOSTrackSegmentMaker.cxx:109
 AliPHOSTrackSegmentMaker.cxx:110
 AliPHOSTrackSegmentMaker.cxx:111
 AliPHOSTrackSegmentMaker.cxx:112
 AliPHOSTrackSegmentMaker.cxx:113
 AliPHOSTrackSegmentMaker.cxx:114
 AliPHOSTrackSegmentMaker.cxx:115
 AliPHOSTrackSegmentMaker.cxx:116
 AliPHOSTrackSegmentMaker.cxx:117
 AliPHOSTrackSegmentMaker.cxx:118
 AliPHOSTrackSegmentMaker.cxx:119
 AliPHOSTrackSegmentMaker.cxx:120
 AliPHOSTrackSegmentMaker.cxx:121
 AliPHOSTrackSegmentMaker.cxx:122
 AliPHOSTrackSegmentMaker.cxx:123
 AliPHOSTrackSegmentMaker.cxx:124
 AliPHOSTrackSegmentMaker.cxx:125
 AliPHOSTrackSegmentMaker.cxx:126
 AliPHOSTrackSegmentMaker.cxx:127
 AliPHOSTrackSegmentMaker.cxx:128
 AliPHOSTrackSegmentMaker.cxx:129
 AliPHOSTrackSegmentMaker.cxx:130
 AliPHOSTrackSegmentMaker.cxx:131