Last modification from LM in agreement with Paolo. Pedestal file structure changed...
[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
38 ClassImp(AliPHOSPID)
39
40 //____________________________________________________________________________
41 AliPHOSPID::AliPHOSPID():
42   TObject(),
43   fGeom(NULL),
44   fESD(0x0),
45   fEMCRecPoints(NULL),
46   fCPVRecPoints(NULL),
47   fTrackSegments(NULL),
48   fRecParticles(NULL)
49 {
50   // ctor
51 }
52
53
54 //____________________________________________________________________________
55 AliPHOSPID::AliPHOSPID(AliPHOSGeometry *geom):
56   TObject(),
57   fGeom(geom),
58   fESD(0x0),
59   fEMCRecPoints(NULL),
60   fCPVRecPoints(NULL),
61   fTrackSegments(NULL),
62   fRecParticles(NULL)
63 {
64   // ctor
65   fRecParticles = new TClonesArray("AliPHOSRecParticle",100) ;
66   fRecParticles->SetName("RECPARTICLES");
67
68 }
69
70 //____________________________________________________________________________
71 AliPHOSPID::AliPHOSPID(const AliPHOSPID & pid) :
72   TObject(pid),
73   fGeom(pid.fGeom),
74   fESD(pid.fESD), 
75   fEMCRecPoints(pid.fEMCRecPoints),
76   fCPVRecPoints(pid.fCPVRecPoints),
77   fTrackSegments(pid.fTrackSegments),
78   fRecParticles(pid.fRecParticles)
79 {
80   // Copy constructor
81 }
82
83 //____________________________________________________________________________
84 AliPHOSPID::~AliPHOSPID()
85 {
86   // dtor
87   if (fEMCRecPoints) {
88     fEMCRecPoints->Delete();
89     delete fEMCRecPoints;
90   }
91   if (fCPVRecPoints) {
92     fCPVRecPoints->Delete();
93     delete fCPVRecPoints;
94   }
95 }
96
97 //____________________________________________________________________________
98 void AliPHOSPID::SetInput(TTree *clustersTree, TClonesArray *trackSegments)
99 {
100   // Read the clusters tree and creates the
101   // arrays with the EMC and CPV
102   // clusters.
103   // and set the corresponding branch addresses
104
105   fTrackSegments = trackSegments;
106
107   TBranch *emcbranch = clustersTree->GetBranch("PHOSEmcRP");
108   if (!emcbranch) { 
109     AliError("can't get the branch with the PHOS EMC clusters !");
110     return;
111   }
112   fEMCRecPoints = new TObjArray(100) ;
113   emcbranch->SetAddress(&fEMCRecPoints);
114   emcbranch->GetEntry(0);
115
116   TBranch *cpvbranch = clustersTree->GetBranch("PHOSCpvRP");
117   if (!cpvbranch) { 
118     AliError("can't get the branch with the PHOS CPV clusters !");
119     return;
120   }
121   fCPVRecPoints = new TObjArray(100) ;
122   cpvbranch->SetAddress(&fCPVRecPoints);
123   cpvbranch->GetEntry(0);
124 }