10 #include <TLorentzVector.h> 13 #include "AliVTrack.h" 14 #include "AliVCluster.h" 25 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)
33 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)
59 AliError(
"No input vectors added to jet finder!");
83 for (
UInt_t i=0; i<fastjets.size(); i++)
93 AliEmcalJet* jet =
new AliEmcalJet(fastjets[i].perp(), fastjets[i].eta(), fastjets[i].phi(), fastjets[i].m());
125 if ((!pJet) || (!pContJets))
return kFALSE;
130 AliVParticle *pTrk = pJet->
TrackAt(i, pContTrks->GetArray());
if (!pTrk)
continue;
136 AliVCluster *pClu = pJet->
ClusterAt(i, pContClus->GetArray());
if (!pClu)
continue;
138 TLorentzVector vClu; pClu->GetMomentum(vClu, dVtx);
144 AliError(
"No input vectors added to jet finder!");
150 const std::vector<TLorentzVector> aGhosts = pJet->
GetGhosts();
170 for (
UInt_t j=0; j<aFilteredJets.size(); j++) {
171 if (aFilteredJets[j].perp()<
fJetMinPt)
continue;
172 if (TMath::Abs(aFilteredJets[j].eta())>
fJetMaxEta)
continue;
176 aFilteredJets[j].eta(),
177 aFilteredJets[j].phi(),
178 aFilteredJets[j].m());
191 UInt_t nConstis = aConstis.size();
197 for (
UInt_t i=0; i<nConstis; i++) {
198 Int_t uid = aConstis[i].user_index();
199 if (uid>= 100) { piece->
AddTrackAt( 1*uid-100, nt); ++nt; }
200 if (uid<=-100) { piece->
AddClusterAt(-1*uid-100, nc); ++nc; }
255 for (std::size_t i=0; i<
fJetArray.size(); i++)
266 for (std::size_t i=0; i<
fJetArray.size(); i++)
277 for (std::size_t i=0; i<
fJetArray.size(); i++)
286 Double_t AliEmcalJetFinder::Nsubjettiness(
AliEmcalJet *pJet,
AliJetContainer *pContJets,
Double_t dVtx[3],
Int_t N,
Int_t Algorithm,
Double_t Radius,
Double_t Beta,
Int_t Option,
Int_t Measure,
Double_t Beta_SD,
Double_t ZCut,
Int_t SoftDropOn){
294 if ((!pJet) || (!pContJets))
return kFALSE;
299 AliVParticle *pTrk = pJet->
TrackAt(i, pContTrks->GetArray());
if (!pTrk)
continue;
304 AliVCluster *pClu = pJet->
ClusterAt(i, pContClus->GetArray());
if (!pClu)
continue;
306 TLorentzVector vClu; pClu->GetMomentum(vClu, dVtx);
312 AliError(
"No input vectors added to jet finder!");
318 const std::vector<TLorentzVector> aGhosts = pJet->
GetGhosts();
332 if (Measure==1)
return fFastjetWrapper->AliFJWrapper::NSubjettiness(N,Algorithm,Radius, Beta, Option,1);
333 else return fFastjetWrapper->AliFJWrapper::NSubjettiness(N,Algorithm,Radius, Beta, Option,0,Beta_SD,ZCut,SoftDropOn);
Double_t GetFilteredJetArea(UInt_t idx) const
void AddTrackAt(Int_t track, Int_t idx)
void AddInputVector(Double_t px, Double_t py, Double_t pz)
Bool_t Filter(AliEmcalJet *pJet, AliJetContainer *pContJets, Double_t dVtx[3])
void AddInputGhost(Double_t px, Double_t py, Double_t pz, Double_t E)
void AddClusterAt(Int_t clus, Int_t idx)
Int_t ClusterAt(Int_t idx) const
AliClusterContainer * GetClusterContainer() const
void SetMinJetPt(Double_t MinPt)
void SetMaxRap(Double_t maxrap)
fastjet::PseudoJet GetFilteredJetAreaVector(UInt_t idx) const
void SetAreaE(Double_t a)
void SetRecombScheme(const fastjet::RecombinationScheme &scheme)
void FillPhiHistogram(TH1 *histogram)
void FillPtHistogram(TH1 *histogram)
Container for particles within the EMCAL framework.
Int_t TrackAt(Int_t idx) const
UShort_t GetNumberOfTracks() const
Double_t Nsubjettiness(AliEmcalJet *pJet, AliJetContainer *pContJets, Double_t dVtx[3], Int_t N, Int_t Algorithm, Double_t Radius, Double_t Beta, Int_t Option=0, Int_t Measure=0, Double_t Beta_SD=0, Double_t ZCut=0.1, Int_t SoftDropOn=0)
AliParticleContainer * GetParticleContainer() const
const std::vector< fastjet::PseudoJet > & GetInclusiveJets() const
UShort_t GetNumberOfClusters() const
Double_t GetJetArea(UInt_t idx) const
void SetAlgorithm(const fastjet::JetAlgorithm &algor)
virtual void Clear(const Option_t *="")
void SetGhostArea(Double_t gharea)
std::vector< fastjet::PseudoJet > GetJetConstituents(UInt_t idx) const
void SetAreaEta(Double_t a)
AliFJWrapper * fFastjetWrapper
Represent a jet reconstructed using the EMCal jet framework.
void SetNumberOfTracks(Int_t n)
const std::vector< TLorentzVector > GetGhosts() const
virtual void AddInputVector(Double_t px, Double_t py, Double_t pz, Double_t E, Int_t index=-99999)
virtual void AddInputGhost(Double_t px, Double_t py, Double_t pz, Double_t E, Int_t index=-99999)
std::vector< AliEmcalJet * > fJetArray
std::vector< fastjet::PseudoJet > GetFilteredJetConstituents(UInt_t idx) const
void SetAreaPhi(Double_t a)
void SetAreaType(const fastjet::AreaType &atype)
Container structure for EMCAL clusters.
Container for jet within the EMCAL jet framework.
void SetNumberOfClusters(Int_t n)
const std::vector< fastjet::PseudoJet > & GetFilteredJets() const
void FillEtaHistogram(TH1 *histogram)