Enlarging array
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALJetFinderOutput.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 /* $Id$ */
18
19 //_________________________________________________________________________
20 //  Output object for jetfinder
21 // --
22 //*-- Author:   Renan Cabrera (LBL)
23 //              Mark Horner (LBL/UCT)
24 // --
25
26
27 #include <stdio.h>
28 #include <TParticle.h>
29 #include <TTree.h>
30
31 //.....................
32 #include "AliEMCALJet.h"
33 #include "AliEMCALParton.h"
34 #include "AliEMCALJetFinderOutput.h"
35 #include "AliEMCALJetFinderInput.h"
36
37 ClassImp(AliEMCALJetFinderOutput)
38
39 //________________________________________________________________________
40 AliEMCALJetFinderOutput::AliEMCALJetFinderOutput(){ 
41         // Default constructor
42         
43         fNMaxJets=10;
44         fNMaxParticles=2000;
45         fNMaxPartons=4;
46         fInitialised=kFALSE;
47         fNPartons=0;
48         fNJets=0;    
49         fNParticles=0;
50                                                                 
51
52 if (fDebug>0) Info("AliEMCALJetFinderOutput","Beginning Constructor");
53
54 } //________________________________________________________________________
55 void AliEMCALJetFinderOutput::InitArrays()
56 {
57         // Initialise arrays - legacy from TClones days
58 if (fDebug>1) Info("AliEMCALJetFinderOutput","Beginning InitArrays");
59
60 }
61
62 //_______________________________________________________________________
63 AliEMCALJetFinderOutput::~AliEMCALJetFinderOutput()
64 {
65         // Default destrucotr
66 if (fDebug>0) Info("~AliEMCALJetFinderOutput","Beginning Destructor");
67 }
68
69 //_______________________________________________________________________
70 void AliEMCALJetFinderOutput::Reset(AliEMCALJetFinderResetType_t resettype)
71 {
72 // Reset stored data
73         
74 if (fDebug>1) Info("Reset","Beginning Reset");
75 if (!fInitialised) InitArrays();
76  if (   resettype == kResetAll ||
77         resettype == kResetJets||
78         resettype == kResetData ){
79          fNJets = 0;
80  }
81  if (   resettype == kResetAll ||
82         resettype == kResetPartons||              
83         resettype == kResetData ){
84          fNPartons = 0;
85  }
86  if (   resettype == kResetAll ||    
87         resettype == kResetParticles||              
88         resettype == kResetData ){
89          fNParticles = 0;
90  }
91 }
92 //________________________________________________________________________
93 void AliEMCALJetFinderOutput::AddJet(AliEMCALJet* jet)
94 {
95 // Add a jet to the array
96         
97 if (fDebug>1) Info("AddJet","Beginning AddJet");
98 if (!fInitialised) InitArrays();
99
100
101         if (fNJets < fNMaxJets){
102                 new( &fJetsArray[fNJets])   AliEMCALJet( *jet );
103                 fNJets++;
104         }else
105         {
106                 Error("AddJet","Cannot AddJet - maximum exceeded");
107                 }
108    
109 }
110
111
112 //_______________________________________________________________________
113 void AliEMCALJetFinderOutput::AddParton(AliEMCALParton* parton)
114 {
115 //Add a parton to the array
116         
117 if (fDebug>1) Info("AddParton","Beginning AddParton");
118 if (!fInitialised) InitArrays();
119
120         if (fNPartons < fNMaxPartons){
121                 new( &fPartonsArray[fNPartons] )  AliEMCALParton( *parton );
122                 fNPartons++;
123         }else
124         {
125                 Error("AddParton","Cannot AddParton - maximum exceeded");
126         }
127  
128 }
129
130 //_______________________________________________________________________
131 void AliEMCALJetFinderOutput::AddParticle(TParticle* particle)
132 {
133 //Add a particle tot he array
134         
135 if (fDebug>1) Info("AddParticle","Beginning AddParticle");
136 if (!fInitialised) InitArrays();
137
138         if (fNParticles < fNMaxParticles){
139                 new( &fParticlesArray[fNParticles] )  TParticle( *particle );
140                 fNParticles++;
141         }else
142         {
143                 Error("AddParticle","Cannot AddParticle - maximum exceeded");
144                 }
145 }
146
147 //______________________________________________________________________
148 AliEMCALJet* AliEMCALJetFinderOutput::GetJet(Int_t jetID)
149 {
150         // return a jet
151 if (fDebug>1) Info("GetJet","Beginning GetJet");
152         
153   if (jetID >= fNJets) return 0;
154   return &(fJetsArray[jetID]);
155   
156 }
157
158 //______________________________________________________________________
159 AliEMCALParton* AliEMCALJetFinderOutput::GetParton(Int_t partonID)
160 {
161         //return a parton
162 if (fDebug>1) Info("GetParton","Beginning GetParton");
163
164   if (partonID >= fNPartons) return 0;
165   return &(fPartonsArray[partonID]);
166 }
167
168 //______________________________________________________________________
169 TParticle* AliEMCALJetFinderOutput::GetParticle(Int_t particleID)
170 {
171 //return a particle
172         
173 if (fDebug>1) Info("GetParticle","Beginning GetParticle");
174
175   if (particleID >= fNParticles) return 0;
176 return &(fParticlesArray[particleID]);
177
178 }
179