Important changes to the reconstructor classes. Complete elimination of the run-loade...
[u/mrichter/AliRoot.git] / PHOS / AliPHOSClusterizer.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //_________________________________________________________________________
17 //  Base class for the clusterization algorithm (pure abstract)
18 //*--
19 //*-- Author: Yves Schutz  SUBATECH 
20 //////////////////////////////////////////////////////////////////////////////
21
22 #include <TClonesArray.h>
23 #include <TTree.h>
24
25 #include "AliPHOSClusterizer.h"
26 #include "AliPHOSDigit.h"
27 #include "AliLog.h"
28
29 ClassImp(AliPHOSClusterizer)
30
31 //____________________________________________________________________________
32 AliPHOSClusterizer::AliPHOSClusterizer():
33   fGeom(NULL),
34   fDigitsArr(0),
35   fTreeR(0),
36   fEMCRecPoints(0),
37   fCPVRecPoints(0)
38 {
39   // ctor
40 }
41
42 //____________________________________________________________________________
43 AliPHOSClusterizer::AliPHOSClusterizer(AliPHOSGeometry *geom):
44   fGeom(geom),
45   fDigitsArr(0),
46   fTreeR(0),
47   fEMCRecPoints(0),
48   fCPVRecPoints(0)
49 {
50   // ctor
51  
52 }
53
54 //____________________________________________________________________________
55 AliPHOSClusterizer::~AliPHOSClusterizer()
56 {
57   // dtor
58   if (fDigitsArr) {
59     fDigitsArr->Delete();
60     delete fDigitsArr;
61   }
62   if (fEMCRecPoints) {
63     fEMCRecPoints->Delete();
64     delete fEMCRecPoints;
65   }
66   if (fCPVRecPoints) {
67     fCPVRecPoints->Delete();
68     delete fCPVRecPoints;
69   }
70 }
71
72 //____________________________________________________________________________
73 void AliPHOSClusterizer::SetInput(TTree * digitsTree) 
74 {
75   // Get the tree with digits and sets
76   // the input array with digits for PHOS
77   TBranch *branch = digitsTree->GetBranch("PHOS");
78   if (!branch) { 
79     AliError("can't get the branch with the PHOS digits !");
80     return;
81   }
82   fDigitsArr = new TClonesArray("AliPHOSDigit",100);
83   branch->SetAddress(&fDigitsArr);
84   branch->GetEntry(0);
85 }
86
87 //____________________________________________________________________________
88 void AliPHOSClusterizer::SetOutput(TTree * clustersTree) 
89 {
90   // Set the output clusters tree,
91   // creates the arrays for EMC and CPV,
92   // and set the corresponding branch addresses
93   fTreeR = clustersTree;
94
95   AliDebug(9, "Making array for EMC clusters");
96   fEMCRecPoints = new TObjArray(100) ;
97   fEMCRecPoints->SetName("EMCRECPOINTS") ;
98   Int_t split = 0;
99   Int_t bufsize = 32000;
100   fTreeR->Branch("PHOSEmcRP", "TObjArray", &fEMCRecPoints, bufsize, split);
101
102   AliDebug(9, "Making array for CPV clusters");
103   fCPVRecPoints = new TObjArray(100) ;
104   fCPVRecPoints->SetName("CPVRECPOINTS") ;
105   fTreeR->Branch("PHOSCpvRP", "TObjArray", &fCPVRecPoints, bufsize, split);
106 }