* See cxx source for full Copyright notice */
#include "AliAnalysisTaskSE.h"
+
+
class AliJetFinder;
class AliESDEvent;
-class TTree;
-class TChain;
class AliAODEvent;
class AliJetHistos;
class AliAODExtension;
+class TTree;
+class TChain;
+class TString;
+
class AliAnalysisTaskJets : public AliAnalysisTaskSE
//______________________________________________________________________________
AliCdfJetFinder::~AliCdfJetFinder()
{
+ Clean();
// destructor
}
InitData();
-if (!fNPart) { if (fDebug) {cout << "entries = 0 ; Event empty !!!" << endl ;} return; } // if event empty then exit
-
-FindCones();
-
-ComputeConesWeight();
-
-if (fAODwrite) {
- if(fDebug)cout << "Writing AOD" << endl ;
- WriteJets();
+ if (!fNPart) {
+ if (fDebug) {
+ cout << "entries = 0 ; Event empty !!!" << endl ;
+ }
+ // no need to call clean, InitData does not
+ // create pointers if npart == 0
+ return;
+ } // if event empty then exit
+
+ FindCones();
+
+ ComputeConesWeight();
+
+ if (fAODwrite) {
+ if(fDebug)cout << "Writing AOD" << endl ;
+ WriteJets();
}
-
-if (fAnalyseJets) AnalizeJets();
-
-Clean();
+
+ if (fAnalyseJets) AnalizeJets();
+
+ Clean();
}
}
// tracks REFs written in AOD
AddJet(jet);
+
}
//jets vector parsed and written to AOD
}
void AliCdfJetFinder::Clean()
{
// CLEANING SECTION
- delete [] fVectParticle;
- delete [] fVectJet;
- delete [] fPtArray;
- delete [] fIdxArray;
+ for ( Int_t i = 0 ; i < fNPart ; i++ ){
+ delete fVectParticle[i];
+ fVectParticle[i] = 0;
+ }
+ delete [] fVectParticle;fVectParticle = 0;
+
+ for ( Int_t i = 0 ; i < fNJets ; i++ ){
+ delete fVectJet[i];
+ fVectJet[i] = 0;
+ }
+ delete [] fVectJet;fVectJet = 0;
+
+ delete [] fPtArray;fPtArray = 0;
+ delete [] fIdxArray;fIdxArray = 0;
Reset();
}
TMatrixD *mPyx= new TMatrixD();
TMatrixD *mY = new TMatrixD();
InitDetAnn(dEtSum,xData,vPx,vPy,mPyx,mY);
- if (fNin < fNclustMax) return;
-
+ if (fNin < fNclustMax){
+ delete [] xData[0], delete [] xData[1];
+ delete vPx;
+ delete vPy;
+ delete mPyx;
+ delete mY;
+ return;
+ }
Int_t nc=1, nk;
DoubleClusters(nc,nk,vPy,mY);
do{ //loop over beta
if(lvArray == 0)
{
cout << "Could not get the momentum array" << endl;
+ delete plugin;
return;
}
if(nIn == 0)// nIn = Number of particles in the event
{
if (debug) cout << "entries = 0 ; Event empty !!!" << endl ;
+ delete plugin;
return;
}
}
else {
TClonesArray* fUnit = fReader->GetUnitArray();
- if(fUnit == 0) { cout << "Could not get the momentum array" << endl; return; }
+ if(fUnit == 0) { cout << "Could not get the momentum array" << endl; delete plugin; return; }
Int_t nIn = fUnit->GetEntries();
- if(nIn == 0) { if (debug) cout << "entries = 0 ; Event empty !!!" << endl ; return; }
+ if(nIn == 0) { if (debug) cout << "entries = 0 ; Event empty !!!" << endl ; delete plugin; return; }
// Information extracted from fUnitArray
// load input vectors and calculate total energy in array
Float_t pt,eta,phi,theta,px,py,pz,en;
AddJet(aodjet);
}
}
+
+ delete plugin;
+
}
//____________________________________________________________________________