fOnlyHadrons(kFALSE),
fCheckMotherPDG(kTRUE),
fTrackEtaCut(0.8),
+ fTrackEtaCutMin(-1.),
fTrackPtMin(0),
fEventSelection(AliVEvent::kMB|AliVEvent::kUserDefined),
fDCAXYCut(0),
AliVParticle* part = ParticleWithCuts( obj, ipart );
if (!part) continue;
// Accept leading-tracks in a limited pseudo-rapidity range
- if( TMath::Abs(part->Eta()) > fTrackEtaCut ) continue;
+ if( TMath::Abs(part->Eta()) > fTrackEtaCut || TMath::Abs(part->Eta()) < fTrackEtaCutMin ) continue;
tracks->AddLast( part );
}
// Order tracks by pT
if (!part) continue;
if (useEtaPtCuts)
- if (TMath::Abs(part->Eta()) > fTrackEtaCut || part->Pt() < fTrackPtMin)
+ if (TMath::Abs(part->Eta()) > fTrackEtaCut || TMath::Abs(part->Eta()) < fTrackEtaCutMin || part->Pt() < fTrackPtMin)
{
if (hasOwnership)
delete part;
if (!partReconstructed) continue;
if (useEtaPtCuts)
- if (TMath::Abs(partReconstructed->Eta()) > fTrackEtaCut || partReconstructed->Pt() < fTrackPtMin)
+ if (TMath::Abs(partReconstructed->Eta()) > fTrackEtaCut || TMath::Abs(partReconstructed->Eta()) < fTrackEtaCutMin || partReconstructed->Pt() < fTrackPtMin)
{
if (hasOwnership)
delete partReconstructed;
TVector3 partVect(part->Px(), part->Py(), part->Pz());
Int_t region = 0;
- if( TMath::Abs(partVect.Eta()) > fTrackEtaCut ) continue;
+ if( TMath::Abs(partVect.Eta()) > fTrackEtaCut || TMath::Abs(partVect.Eta()) < fTrackEtaCutMin) continue;
// transverse regions
if (leadVect.DeltaPhi(partVect) < -k60rad && leadVect.DeltaPhi(partVect) > -k120rad )region = -1; //left
if (leadVect.DeltaPhi(partVect) > k60rad && leadVect.DeltaPhi(partVect) < k120rad ) region = 1; //right
virtual ~AliAnalyseLeadingTrackUE(); //virtual destructor
// Setters
- void SetParticleSelectionCriteria(Int_t filterbit, Bool_t onlyhadrons, Double_t etacut, Double_t ptMin = 0) { fFilterBit = filterbit;
+ void SetParticleSelectionCriteria(Int_t filterbit, Bool_t onlyhadrons, Double_t etacut, Double_t etacutMin=-1., Double_t ptMin = 0) { fFilterBit = filterbit;
fOnlyHadrons = onlyhadrons;
fTrackEtaCut = etacut;
+ fTrackEtaCutMin = etacutMin;
fTrackPtMin = ptMin;}
void SetEventSelection(UInt_t bits) { fEventSelection = bits; }
Bool_t fOnlyHadrons; // consider only charged Pions, Protons and Kaons
Bool_t fCheckMotherPDG; // Check the PDG code of mother for secondaries
Double_t fTrackEtaCut; // pseudo-rapidity limit of transverse regions
+ Double_t fTrackEtaCutMin; // minimum of the pseudo-rapidity limit of transverse regions
Double_t fTrackPtMin; // pt limit for selecting particles
UInt_t fEventSelection; // bit for physics selection
TFormula* fDCAXYCut; // additional pt dependent cut on DCA XY (only for AOD)
// for symmetric bins
THnSparse* source = (THnSparse*) target->Clone();
+ Int_t zVtxBins = 1;
+ if (target->GetNdimensions() > 5)
+ zVtxBins = target->GetAxis(5)->GetNbins();
+
// axes: 0 delta eta; 1 pT,a; 2 pT,t; 3 centrality; 4 delta phi; 5 vtx-z
for (Int_t i3 = 1; i3 <= target->GetAxis(3)->GetNbins(); i3++)
- for (Int_t i5 = 1; i5 <= target->GetAxis(5)->GetNbins(); i5++)
+ for (Int_t i5 = 1; i5 <= zVtxBins; i5++)
{
for (Int_t i1 = 1; i1 <= target->GetAxis(1)->GetNbins(); i1++)
for (Int_t i2 = 1; i2 <= target->GetAxis(2)->GetNbins(); i2++)
fCentralityMethod("V0M"),
// track cuts
fTrackEtaCut(0.8),
+fTrackEtaCutMin(-1.),
fOnlyOneEtaSide(0),
fPtMin(0.5),
fDCAXYCut(0),
// Initialize class with main algorithms, event and track selection.
fAnalyseUE = new AliAnalyseLeadingTrackUE();
- fAnalyseUE->SetParticleSelectionCriteria(fFilterBit, fUseChargeHadrons, fTrackEtaCut, fPtMin);
+ fAnalyseUE->SetParticleSelectionCriteria(fFilterBit, fUseChargeHadrons, fTrackEtaCut, fTrackEtaCutMin, fPtMin);
fAnalyseUE->SetDCAXYCut(fDCAXYCut);
fAnalyseUE->SetTrackStatus(fTrackStatus);
fAnalyseUE->SetCheckMotherPDG(fCheckMotherPDG);
settingsTree->Branch("fZVertex", &fZVertex,"ZVertex/D");
//settingsTree->Branch("fCentralityMethod", fCentralityMethod.Data(),"CentralityMethod/C");
settingsTree->Branch("fTrackEtaCut", &fTrackEtaCut, "TrackEtaCut/D");
+ settingsTree->Branch("fTrackEtaCutMin", &fTrackEtaCutMin, "TrackEtaCutMin/D");
settingsTree->Branch("fOnlyOneEtaSide", &fOnlyOneEtaSide,"OnlyOneEtaSide/I");
settingsTree->Branch("fPtMin", &fPtMin, "PtMin/D");
settingsTree->Branch("fFilterBit", &fFilterBit,"FilterBit/I");
// track cuts
void SetTrackEtaCut( Double_t val ) { fTrackEtaCut = val; }
+ void SetTrackEtaCutMin( Double_t val ) { fTrackEtaCutMin = val; }
void SetOnlyOneEtaSide(Int_t flag) { fOnlyOneEtaSide = flag; }
void SetPtMin(Double_t val) { fPtMin = val; }
void SetFilterBit( UInt_t val ) { fFilterBit = val; }
TString fCentralityMethod; // Method to determine centrality
// Track cuts
- Double_t fTrackEtaCut; // Eta cut on particles
+ Double_t fTrackEtaCut; // Maximum Eta cut on particles
+ Double_t fTrackEtaCutMin; // Minimum Eta cut on particles
Int_t fOnlyOneEtaSide; // decides that only trigger particle from one eta side are considered (0 = all; -1 = negative, 1 = positive)
Double_t fPtMin; // Min pT to start correlations
TFormula* fDCAXYCut; // additional pt dependent cut on DCA XY (only for AOD)
Bool_t fFillpT; // fill sum pT instead of number density
- ClassDef( AliAnalysisTaskPhiCorrelations, 33); // Analysis task for delta phi correlations
+ ClassDef( AliAnalysisTaskPhiCorrelations, 34); // Analysis task for delta phi correlations
};
class AliDPhiBasicParticle : public AliVParticle