]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSPID.cxx
Memory leak corrected.
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPID.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 /* $Id$ */
17
18 //_________________________________________________________________________
19 //  Algorithm class for the identification of particles detected in PHOS        
20 //  base  class  of identified particle  
21 //  Why should I put meaningless comments
22 //  just to satisfy
23 //  the code checker                
24                          
25 //                  
26 //*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko
27
28
29 // --- ROOT system ---
30
31 // --- Standard library ---
32
33 // --- AliRoot header files ---
34 #include "AliConfig.h"
35 #include "AliPHOSPID.h"
36 #include "AliPHOSGetter.h"
37 #include "AliPHOSQualAssDataMaker.h" 
38
39 ClassImp(AliPHOSPID)
40
41 //____________________________________________________________________________
42 AliPHOSPID::AliPHOSPID():
43   TObject(),
44   fGeom(NULL),
45   fESD(0x0),
46   fEMCRecPoints(NULL),
47   fCPVRecPoints(NULL),
48   fTrackSegments(NULL),
49   fRecParticles(NULL),
50   fQADM(0x0)
51 {
52   // ctor
53 }
54
55
56 //____________________________________________________________________________
57 AliPHOSPID::AliPHOSPID(AliPHOSGeometry *geom):
58   TObject(),
59   fGeom(geom),
60   fESD(0x0),
61   fEMCRecPoints(NULL),
62   fCPVRecPoints(NULL),
63   fTrackSegments(NULL),
64   fRecParticles(NULL),
65   fQADM(0x0)
66 {
67   // ctor
68   fRecParticles = new TClonesArray("AliPHOSRecParticle",100) ;
69   fRecParticles->SetName("RECPARTICLES");
70
71   fQADM = new  AliPHOSQualAssDataMaker() ; //!Quality Assurance Data Maker
72   GetQualAssDataMaker()->Init(AliQualAss::kRECPARTICLES) ;    
73 }
74
75 //____________________________________________________________________________
76 AliPHOSPID::AliPHOSPID(const AliPHOSPID & pid) :
77   TObject(pid),
78   fGeom(pid.fGeom),
79   fESD(pid.fESD), 
80   fEMCRecPoints(pid.fEMCRecPoints),
81   fCPVRecPoints(pid.fCPVRecPoints),
82   fTrackSegments(pid.fTrackSegments),
83   fRecParticles(pid.fRecParticles),
84   fQADM(pid.fQADM)
85 {
86   // Copy constructor
87 }
88
89 //____________________________________________________________________________
90 AliPHOSPID::~AliPHOSPID()
91 {
92   // dtor
93   if (fEMCRecPoints) {
94     fEMCRecPoints->Delete();
95     delete fEMCRecPoints;
96   }
97   if (fCPVRecPoints) {
98     fCPVRecPoints->Delete();
99     delete fCPVRecPoints;
100   }
101   delete fQADM ; 
102 }
103
104 //____________________________________________________________________________
105 void AliPHOSPID::SetInput(TTree *clustersTree, TClonesArray *trackSegments)
106 {
107   // Read the clusters tree and creates the
108   // arrays with the EMC and CPV
109   // clusters.
110   // and set the corresponding branch addresses
111
112   fTrackSegments = trackSegments;
113
114   TBranch *emcbranch = clustersTree->GetBranch("PHOSEmcRP");
115   if (!emcbranch) { 
116     AliError("can't get the branch with the PHOS EMC clusters !");
117     return;
118   }
119   fEMCRecPoints = new TObjArray(100) ;
120   emcbranch->SetAddress(&fEMCRecPoints);
121   emcbranch->GetEntry(0);
122
123   TBranch *cpvbranch = clustersTree->GetBranch("PHOSCpvRP");
124   if (!cpvbranch) { 
125     AliError("can't get the branch with the PHOS CPV clusters !");
126     return;
127   }
128   fCPVRecPoints = new TObjArray(100) ;
129   cpvbranch->SetAddress(&fCPVRecPoints);
130   cpvbranch->GetEntry(0);
131 }