From 413ab3a352dcbccb0a8cea39f85c46c92ab4073d Mon Sep 17 00:00:00 2001 From: loizides Date: Fri, 6 Sep 2013 06:20:51 +0000 Subject: [PATCH] Allow cut on z for leading jet (Marta) --- PWGJE/EMCALJetTasks/AliJetContainer.cxx | 66 ++++++++++++++++++++++++- PWGJE/EMCALJetTasks/AliJetContainer.h | 8 ++- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/PWGJE/EMCALJetTasks/AliJetContainer.cxx b/PWGJE/EMCALJetTasks/AliJetContainer.cxx index 99e242d629a..2ea48930150 100644 --- a/PWGJE/EMCALJetTasks/AliJetContainer.cxx +++ b/PWGJE/EMCALJetTasks/AliJetContainer.cxx @@ -33,6 +33,8 @@ AliJetContainer::AliJetContainer(): fJetMaxPhi(10), fMaxClusterPt(1000), fMaxTrackPt(100), + fZLeadingEmcCut(10.), + fZLeadingChCut(10.), fLeadingHadronType(0), fNLeadingJets(1), fJetBitMap(0), @@ -65,6 +67,8 @@ AliJetContainer::AliJetContainer(const char *name): fJetMaxPhi(10), fMaxClusterPt(1000), fMaxTrackPt(100), + fZLeadingEmcCut(10.), + fZLeadingChCut(10.), fLeadingHadronType(0), fNLeadingJets(1), fJetBitMap(0), @@ -279,12 +283,16 @@ Bool_t AliJetContainer::AcceptJet(AliEmcalJet *jet) const if (jet->AreaEmc()fZLeadingChCut || GetZLeadingEmc(jet)>fZLeadingEmcCut) + return kFALSE; + if (!AcceptBiasJet(jet)) return kFALSE; if (jet->MaxTrackPt() > fMaxTrackPt || jet->MaxClusterPt() > fMaxClusterPt) return kFALSE; + Double_t jetPhi = jet->Phi(); Double_t jetEta = jet->Eta(); @@ -343,6 +351,61 @@ void AliJetContainer::GetLeadingHadronMomentum(TLorentzVector &mom, AliEmcalJet mom.SetPtEtaPhiM(maxClusterPt,maxClusterEta,maxClusterPhi,0.139); } +//________________________________________________________________________ +Double_t AliJetContainer::GetZLeadingEmc(AliEmcalJet *jet) const +{ + + if (fClusterContainer && fClusterContainer->GetArray() ) { + TLorentzVector mom; + + AliVCluster *cluster = jet->GetLeadingCluster(fClusterContainer->GetArray()); + if (cluster) { + cluster->GetMomentum(mom, const_cast(fVertex)); + + return GetZ(jet,mom); + } + else + return -1; + } + else + return -1; +} + +//________________________________________________________________________ +Double_t AliJetContainer::GetZLeadingCharged(AliEmcalJet *jet) const +{ + + if (fParticleContainer && fParticleContainer->GetArray() ) { + TLorentzVector mom; + + AliVParticle *track = jet->GetLeadingTrack(fParticleContainer->GetArray()); + if (track) { + mom.SetPtEtaPhiM(track->Pt(),track->Eta(),track->Phi(),0.139); + + return GetZ(jet,mom); + } + else + return -1; + } + else + return -1; +} + +//________________________________________________________________________ +Double_t AliJetContainer::GetZ(AliEmcalJet *jet, TLorentzVector mom) const +{ + + Double_t pJetSq = jet->Px()*jet->Px() + jet->Py()*jet->Py() + jet->Pz()*jet->Pz(); + + if(pJetSq>0.) + return (mom.Px()*jet->Px() + mom.Py()*jet->Py() + mom.Pz()*jet->Pz())/pJetSq; + else { + AliWarning(Form("%s: strange, pjet*pjet seems to be zero pJetSq: %f",GetName(), pJetSq)); + return -1; + } + +} + //________________________________________________________________________ void AliJetContainer::SetJetEtaPhiEMCAL() { @@ -391,7 +454,8 @@ void AliJetContainer::ResetCuts() fMaxClusterPt = 1000; fMaxTrackPt = 100; fLeadingHadronType = 0; - + fZLeadingEmcCut = 10.; + fZLeadingChCut = 10.; } //________________________________________________________________________ diff --git a/PWGJE/EMCALJetTasks/AliJetContainer.h b/PWGJE/EMCALJetTasks/AliJetContainer.h index 227fb2cf33e..1001730d0c7 100644 --- a/PWGJE/EMCALJetTasks/AliJetContainer.h +++ b/PWGJE/EMCALJetTasks/AliJetContainer.h @@ -48,6 +48,7 @@ class AliJetContainer : public AliEmcalContainer { void SetJetPhiLimits(Float_t min, Float_t max) { fJetMinPhi = min, fJetMaxPhi = max ; } void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; } void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0"); fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; } + void SetZLeadingCut(Float_t zemc, Float_t zch) { fZLeadingEmcCut = zemc; fZLeadingChCut = zch ; } void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; } void SetJetPtCut(Float_t cut) { fJetPtCut = cut ; } @@ -79,6 +80,9 @@ class AliJetContainer : public AliEmcalContainer { Int_t GetNJets() const {return GetNEntries();} Double_t GetLeadingHadronPt(AliEmcalJet* jet) const; void GetLeadingHadronMomentum(TLorentzVector &mom, AliEmcalJet* jet) const; + Double_t GetZ(AliEmcalJet *jet, TLorentzVector mom) const; + Double_t GetZLeadingEmc(AliEmcalJet *jet) const; + Double_t GetZLeadingCharged(AliEmcalJet *jet) const; AliRhoParameter *GetRhoParameter() {return fRho;} Double_t GetRhoVal() const { if (fRho) return fRho->GetVal(); else return 0;} const TString& GetRhoName() const {return fRhoName;} @@ -108,6 +112,8 @@ class AliJetContainer : public AliEmcalContainer { Float_t fJetMaxPhi; // maximum phi jet acceptance Float_t fMaxClusterPt; // maximum cluster constituent pt to accept the jet Float_t fMaxTrackPt; // maximum track constituent pt to accept the jet + Float_t fZLeadingEmcCut; // maximum z,leading neutral + Float_t fZLeadingChCut; // maximum z,leading charged Int_t fLeadingHadronType; // 0 = charged, 1 = neutral, 2 = both Int_t fNLeadingJets; // how many jets are to be considered the leading jet(s) UInt_t fJetBitMap; // bit map of accepted jets @@ -123,7 +129,7 @@ class AliJetContainer : public AliEmcalContainer { AliJetContainer(const AliJetContainer& obj); // copy constructor AliJetContainer& operator=(const AliJetContainer& other); // assignment - ClassDef(AliJetContainer,3); + ClassDef(AliJetContainer,4); }; -- 2.43.0