// $Id$
//
// Standalone jet finder
+// CINT-compatible wrapper for AliFJWrapper, can be used in macros and from the ROOT command line.
+// Compiled code can use AliFJWrapper directly
//
// Authors: R.Haake
-#ifndef ALIEMCALJETFINDER_CXX
-#define ALIEMCALJETFINDER_CXX
-
#include "AliFJWrapper.h"
#include "AliEmcalJet.h"
#include "AliEmcalJetFinder.h"
//________________________________________________________________________
AliEmcalJetFinder::AliEmcalJetFinder() :
- TNamed("EmcalJetFinder","EmcalJetFinder"), fFastjetWrapper(0), fInputVectorIndex(0), fJetCount(0), fJetArray(), fGhostArea(0.005), fRadius(0.4), fJetAlgorithm(0), fTrackMaxEta(0.9), fJetMaxEta(0.5), fJetMinPt(0), fJetMinArea(0)
+ TNamed("EmcalJetFinder","EmcalJetFinder"), fFastjetWrapper(0), fInputVectorIndex(0), fJetCount(0), fJetArray(), fGhostArea(0.005), fRadius(0.4), fJetAlgorithm(0), fRecombScheme(-1), fTrackMaxEta(0.9), fJetMaxEta(0.5), fJetMinPt(0), fJetMinArea(0)
{
// Constructor
fFastjetWrapper = new AliFJWrapper("FJWrapper", "FJWrapper");
//________________________________________________________________________
AliEmcalJetFinder::AliEmcalJetFinder(const char* name) :
- TNamed(name, name), fFastjetWrapper(0), fInputVectorIndex(0), fJetCount(0), fJetArray(), fGhostArea(0.005), fRadius(0.4), fJetAlgorithm(0), fTrackMaxEta(0.9), fJetMaxEta(0.5), fJetMinPt(0), fJetMinArea(0)
+ TNamed(name, name), fFastjetWrapper(0), fInputVectorIndex(0), fJetCount(0), fJetArray(), fGhostArea(0.005), fRadius(0.4), fJetAlgorithm(0), fRecombScheme(-1), fTrackMaxEta(0.9), fJetMaxEta(0.5), fJetMinPt(0), fJetMinArea(0)
{
// Constructor
fFastjetWrapper = new AliFJWrapper("FJWrapper", "FJWrapper");
Bool_t AliEmcalJetFinder::FindJets()
{
// Tidy up and check input
+ for (UInt_t i=0; i<fJetArray.size(); i++) {
+ delete fJetArray[i];
+ fJetArray[i] = 0;
+ }
fJetArray.clear();
fJetCount = 0;
if(!fInputVectorIndex)
fFastjetWrapper->SetAlgorithm(fastjet::antikt_algorithm);
if(fJetAlgorithm == 1)
fFastjetWrapper->SetAlgorithm(fastjet::kt_algorithm);
+ if(fRecombScheme>=0)
+ fFastjetWrapper->SetRecombScheme(static_cast<fastjet::RecombinationScheme>(fRecombScheme));
fFastjetWrapper->SetMaxRap(fTrackMaxEta);
// Set the most important properties of the jet
Int_t nConstituents(fFastjetWrapper->GetJetConstituents(i).size());
+ jet->SetArea(fFastjetWrapper->GetJetArea(i));
jet->SetNumberOfTracks(nConstituents);
jet->SetNumberOfClusters(nConstituents);
fJetArray[fJetCount] = jet;
fJetArray.resize(fJetCount);
+ //fastjets.clear(); // will be done by the destructor at the end of the function
fFastjetWrapper->Clear();
fInputVectorIndex = 0;
return kTRUE;
fInputVectorIndex++;
}
+//________________________________________________________________________
+void AliEmcalJetFinder::AddInputVector(Double_t px, Double_t py, Double_t pz, Double_t E)
+{
+ fFastjetWrapper->AddInputVector(px, py, pz, E, fInputVectorIndex + 100);
+ fInputVectorIndex++;
+}
+
//________________________________________________________________________
void AliEmcalJetFinder::FillPtHistogram(TH1* histogram)
{
if(!histogram)
return;
- for (Int_t i=0; i<fJetArray.size(); i++)
+ for (std::size_t i=0; i<fJetArray.size(); i++)
{
histogram->Fill(fJetArray[i]->Pt());
}
{
if(!histogram)
return;
- for (Int_t i=0; i<fJetArray.size(); i++)
+ for (std::size_t i=0; i<fJetArray.size(); i++)
{
histogram->Fill(fJetArray[i]->Phi());
}
{
if(!histogram)
return;
- for (Int_t i=0; i<fJetArray.size(); i++)
+ for (std::size_t i=0; i<fJetArray.size(); i++)
{
histogram->Fill(fJetArray[i]->Eta());
}
}
-#endif