* provided "as is" without express or implied warranty. *
**************************************************************************/
+
/* $Id$ */
//_________________________________________________________________________
// Output object for jetfinder
-//
+// --
//*-- Author: Renan Cabrera (LBL)
// Mark Horner (LBL/UCT)
-//
-
+// --
#include <stdio.h>
-#include <TClonesArray.h>
#include <TParticle.h>
#include <TTree.h>
ClassImp(AliEMCALJetFinderOutput)
//________________________________________________________________________
-AliEMCALJetFinderOutput::AliEMCALJetFinderOutput()
-{
+AliEMCALJetFinderOutput::AliEMCALJetFinderOutput(){
+ // Default constructor
+
+ fNMaxJets=10;
+ fNMaxParticles=2000;
+ fNMaxPartons=4;
+ fInitialised=kFALSE;
+ fDebug=0;
+ fNPartons=0;
+ fNJets=0;
+ fNParticles=0;
+
+ fJetsArray=0;
+ fParticlesArray=0;
+ fPartonsArray=0;
+
if (fDebug>0) Info("AliEMCALJetFinderOutput","Beginning Constructor");
- fNMaxJets=10;
- fNMaxParticles=2000;
- fNMaxPartons=4;
- fInitialised = kFALSE;
- InitArrays();
-}
+} //________________________________________________________________________
void AliEMCALJetFinderOutput::InitArrays()
{
-
+ // Initialise arrays - legacy from TClones days
if (fDebug>1) Info("AliEMCALJetFinderOutput","Beginning InitArrays");
-
- fJetsArray = new TClonesArray("AliEMCALJet",fNMaxJets);
- fNJets = 0;
- fPartonsArray = new TClonesArray("AliEMCALParton",fNMaxPartons);
- fNPartons = 0;
- fParticlesArray = new TClonesArray("TParticle",fNMaxParticles);
- fNParticles =0;
- fInitialised = kTRUE;
-
+ fParticlesArray=new TClonesArray("TParticle",fNMaxParticles);
+ fPartonsArray=new TClonesArray("AliEMCALParton",fNMaxPartons);
+ fJetsArray=new TClonesArray("AliEMCALJet",fNMaxJets);
+ //fJetsArray->BypassStreamer(kFALSE);
+ fInitialised=1;
}
//_______________________________________________________________________
AliEMCALJetFinderOutput::~AliEMCALJetFinderOutput()
{
+ // Default destrucotr
if (fDebug>0) Info("~AliEMCALJetFinderOutput","Beginning Destructor");
-if (fInitialised)
-{
- fJetsArray->Delete();
- fPartonsArray->Delete();
- fParticlesArray->Delete();
-
- delete fJetsArray;
- delete fPartonsArray;
delete fParticlesArray;
-}
+ delete fPartonsArray;
+ delete fJetsArray;
}
//_______________________________________________________________________
void AliEMCALJetFinderOutput::Reset(AliEMCALJetFinderResetType_t resettype)
{
+// Reset stored data
+
if (fDebug>1) Info("Reset","Beginning Reset");
if (!fInitialised) InitArrays();
if ( resettype == kResetAll ||
resettype == kResetJets||
resettype == kResetData ){
- fJetsArray->Delete();
fNJets = 0;
+ if (fJetsArray)
+ fJetsArray->Clear();
}
if ( resettype == kResetAll ||
resettype == kResetPartons||
resettype == kResetData ){
- fPartonsArray->Delete();
fNPartons = 0;
+ if (fPartonsArray)
+ fPartonsArray->Clear();
}
if ( resettype == kResetAll ||
resettype == kResetParticles||
resettype == kResetData ){
- fParticlesArray->Delete();
fNParticles = 0;
+ if (fParticlesArray)
+ fParticlesArray->Clear();
}
}
//________________________________________________________________________
void AliEMCALJetFinderOutput::AddJet(AliEMCALJet* jet)
{
+// Add a jet to the array
+
if (fDebug>1) Info("AddJet","Beginning AddJet");
if (!fInitialised) InitArrays();
- if (fNJets < fNMaxJets){
- new( (*fJetsArray)[fNJets] ) AliEMCALJet( *jet );
+
+ if (fNJets < fNMaxJets){
+ new(fJetsArray->AddrAt(fNJets)) AliEMCALJet( *jet );
fNJets++;
}else
{
Error("AddJet","Cannot AddJet - maximum exceeded");
- }
+ }
+
}
//_______________________________________________________________________
void AliEMCALJetFinderOutput::AddParton(AliEMCALParton* parton)
{
+//Add a parton to the array
+
if (fDebug>1) Info("AddParton","Beginning AddParton");
if (!fInitialised) InitArrays();
if (fNPartons < fNMaxPartons){
- new( (*fPartonsArray)[fNPartons] ) AliEMCALParton( *parton );
+ new(fPartonsArray->AddrAt(fNPartons)) AliEMCALParton( *parton );
fNPartons++;
}else
{
Error("AddParton","Cannot AddParton - maximum exceeded");
}
-
+
}
//_______________________________________________________________________
void AliEMCALJetFinderOutput::AddParticle(TParticle* particle)
{
+//Add a particle tot he array
+
if (fDebug>1) Info("AddParticle","Beginning AddParticle");
if (!fInitialised) InitArrays();
if (fNParticles < fNMaxParticles){
- new( (*fParticlesArray)[fNParticles] ) TParticle( *particle );
+ new(fParticlesArray->AddrAt(fNParticles)) TParticle( *particle );
fNParticles++;
}else
{
Error("AddParticle","Cannot AddParticle - maximum exceeded");
- }
-
+ }
}
//______________________________________________________________________
AliEMCALJet* AliEMCALJetFinderOutput::GetJet(Int_t jetID)
{
+ // return a jet
if (fDebug>1) Info("GetJet","Beginning GetJet");
if (jetID >= fNJets) return 0;
- return (AliEMCALJet*)((*fJetsArray)[jetID]);
+ return (AliEMCALJet*)fJetsArray->At(jetID);
-
}
//______________________________________________________________________
AliEMCALParton* AliEMCALJetFinderOutput::GetParton(Int_t partonID)
{
+ //return a parton
if (fDebug>1) Info("GetParton","Beginning GetParton");
if (partonID >= fNPartons) return 0;
- return (AliEMCALParton*)((*fPartonsArray)[partonID]);
-
-
+ return (AliEMCALParton*) fPartonsArray->At(partonID);
}
//______________________________________________________________________
TParticle* AliEMCALJetFinderOutput::GetParticle(Int_t particleID)
{
+//return a particle
+
if (fDebug>1) Info("GetParticle","Beginning GetParticle");
if (particleID >= fNParticles) return 0;
- return (TParticle*)((*fParticlesArray)[particleID]);
-
+ return (TParticle*) fParticlesArray->At(particleID);
}