]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSPID.cxx
No optimization with gcc 4.3.0
[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 #include "TBranch.h"
31 #include "TClonesArray.h"
32 #include "TTree.h"
33
34 // --- Standard library ---
35
36 // --- AliRoot header files ---
37 #include "AliConfig.h"
38 #include "AliLog.h"
39 #include "AliPHOSPID.h"
40
41 ClassImp(AliPHOSPID)
42
43 //____________________________________________________________________________
44 AliPHOSPID::AliPHOSPID():
45   TObject(),
46   fGeom(NULL),
47   fESD(0x0),
48   fEMCRecPoints(NULL),
49   fCPVRecPoints(NULL),
50   fTrackSegments(NULL),
51   fRecParticles(NULL)
52 {
53   // ctor
54 }
55
56
57 //____________________________________________________________________________
58 AliPHOSPID::AliPHOSPID(AliPHOSGeometry *geom):
59   TObject(),
60   fGeom(geom),
61   fESD(0x0),
62   fEMCRecPoints(NULL),
63   fCPVRecPoints(NULL),
64   fTrackSegments(NULL),
65   fRecParticles(NULL)
66 {
67   // ctor
68   fEMCRecPoints = new TObjArray(100) ;
69   fCPVRecPoints = new TObjArray(100) ;
70   fRecParticles = new TClonesArray("AliPHOSRecParticle",100) ;
71   fRecParticles->SetName("RECPARTICLES");
72
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 {
85   // Copy constructor
86 }
87
88 //____________________________________________________________________________
89 AliPHOSPID::~AliPHOSPID()
90 {
91   // dtor
92   if (fEMCRecPoints) {
93     fEMCRecPoints->Delete();
94     delete fEMCRecPoints;
95   }
96   if (fCPVRecPoints) {
97     fCPVRecPoints->Delete();
98     delete fCPVRecPoints;
99   }
100 }
101
102 //____________________________________________________________________________
103 void AliPHOSPID::SetInput(TTree *clustersTree, TClonesArray *trackSegments)
104 {
105   // Read the clusters tree and creates the
106   // arrays with the EMC and CPV
107   // clusters.
108   // and set the corresponding branch addresses
109
110   fTrackSegments = trackSegments;
111
112   TBranch *emcbranch = clustersTree->GetBranch("PHOSEmcRP");
113   if (!emcbranch) { 
114     AliError("can't get the branch with the PHOS EMC clusters !");
115     return;
116   }
117   emcbranch->SetAddress(&fEMCRecPoints);
118   fEMCRecPoints->Delete();
119   emcbranch->GetEntry(0);
120
121   TBranch *cpvbranch = clustersTree->GetBranch("PHOSCpvRP");
122   if (!cpvbranch) { 
123     AliError("can't get the branch with the PHOS CPV clusters !");
124     return;
125   }
126   cpvbranch->SetAddress(&fCPVRecPoints);
127   fCPVRecPoints->Delete();
128   cpvbranch->GetEntry(0);
129 }