,fRandom(0)
+ ,fOnlyLeadingJets(kFALSE)
+
// PID framework
,fNumInclusivePIDtasks(0)
,fNumJetPIDtasks(0)
,fProNtracksLeadingJetRecSecS(0)
,fProNtracksLeadingJetRecSecSsc(0)
,fRandom(0)
+ ,fOnlyLeadingJets(kFALSE)
// PID framework
,fNumInclusivePIDtasks(0)
,fNumJetPIDtasks(0)
,fProNtracksLeadingJetRecSecS(copy.fProNtracksLeadingJetRecSecS)
,fProNtracksLeadingJetRecSecSsc(copy.fProNtracksLeadingJetRecSecSsc)
,fRandom(copy.fRandom)
+ ,fOnlyLeadingJets(copy.fOnlyLeadingJets)
// PID framework
,fNumInclusivePIDtasks(copy.fNumInclusivePIDtasks)
,fNumJetPIDtasks(copy.fNumJetPIDtasks)
fProNtracksLeadingJetRecSecS = o.fProNtracksLeadingJetRecSecS;
fProNtracksLeadingJetRecSecSsc = o.fProNtracksLeadingJetRecSecSsc;
fRandom = o.fRandom;
+ fOnlyLeadingJets = o.fOnlyLeadingJets;
// PID framework
fUseInclusivePIDtask = o.fUseInclusivePIDtask;
AliPIDResponse* pidResponse = 0x0;
if (fUseJetPIDtask || fUseInclusivePIDtask) {
- if (!inputHandler)
+ if (!inputHandler) {
AliFatal("Input handler needed");
+ return;
+ }
else {
// PID response object
pidResponse = inputHandler->GetPIDResponse();
- if (!pidResponse)
+ if (!pidResponse) {
AliFatal("PIDResponse object was not created");
+ return;
+ }
}
}
if(fQAMode&2 && (ij==0)) fQAJetHistosGenLeading->FillJetQA( jet->Eta(), TVector2::Phi_0_2pi(jet->Phi()), jet->Pt() );
- if((ij==0) || 1){ // leading jet //TODO all jets
+ if((ij==0) || !fOnlyLeadingJets){ // leading jets or all jets
TList* jettracklist = new TList();
Double_t sumPt = 0.;
Bool_t isBadJet = kFALSE;
if(fQAMode&2) fQAJetHistosRecCuts->FillJetQA( jet->Eta(), TVector2::Phi_0_2pi(jet->Phi()), jet->Pt());
if(fQAMode&2 && (ij==0)) fQAJetHistosRecCutsLeading->FillJetQA( jet->Eta(), TVector2::Phi_0_2pi(jet->Phi()), jet->Pt() );
- if((ij==0) || 1){ // leading jet //TODO all jets
+ if((ij==0) || !fOnlyLeadingJets){ // leading jets or all jets
Double_t ptFractionEmbedded = 0;
AliAODJet* embeddedJet = 0;
delete jettracklist;
} // end: cut embedded ratio
- } // end: leading jet
+ } // end: leading jet or all jets
} // end: rec. jets after cuts
} // end: QA, FF and intra-jet
Bool_t isBadJetRec = kFALSE;
- if((ij==0) || 1){ // leading jet //TODO all jets
+ if((ij==0) || !fOnlyLeadingJets){ // leading jets or all jets
// for efficiency: gen tracks from pointing with gen/rec jet
TList* jettracklistGenPrim = new TList();
normFactor = 0;
- Int_t nBckgClusters = fBckgJetsRec->GetEntries(); // not 'recCuts': use all clusters in full eta range
+ const Int_t nBckgClusters = fBckgJetsRec->GetEntries(); // not 'recCuts': use all clusters in full eta range
if(nBckgClusters<3) return; // need at least 3 clusters (skipping 2 highest)
Bool_t GetIsPP() const { return fIsPP; };
void SetIsPP(Bool_t flag) { fIsPP = flag; };
+ Bool_t GetOnlyLeadingJets() const { return fOnlyLeadingJets; }
+ void SetOnlyLeadingJets(Bool_t onlyLeadingJets) { fOnlyLeadingJets = onlyLeadingJets; }
+
// Consts
enum {kTrackUndef=0, kTrackAOD, kTrackAODQualityCuts, kTrackAODCuts,
kTrackAODExtra, kTrackAODExtraonly, kTrackAODExtraCuts, kTrackAODExtraonlyCuts,
TProfile* fProDelRPtSumRecSecSsc[5]; //! jet shape
- TRandom3* fRandom; // TRandom3 for background estimation
+ TRandom3* fRandom; // TRandom3 for background estimation
+
+ Bool_t fOnlyLeadingJets; // Flag indicating whether some histos are filled with leading jets only or all jets
// PID framework
Int_t fNumInclusivePIDtasks; // Number of inclusive PID tasks used
AliFragFuncHistos* fIDFFHistosRecCuts[AliPID::kSPECIES]; //! Identified FF reconstructed tracks after cuts
AliFragFuncHistos* fIDFFHistosGen[AliPID::kSPECIES]; //! Identified FF generated tracks after cuts
- ClassDef(AliAnalysisTaskIDFragmentationFunction, 17);
+ ClassDef(AliAnalysisTaskIDFragmentationFunction, 18);
};
const Int_t nMCIDbins = AliPID::kSPECIES;
Double_t binsMCID[nMCIDbins];
- for(Int_t i = 0; i <= nMCIDbins; i++) {
+ for(Int_t i = 0; i < nMCIDbins; i++) {
binsMCID[i]= i;
}
// Apply detector level track cuts
- //TODO NOW if (track->GetTPCsignalN() < 60)
- //TODO NOW continue;//TODO was removed for a while
+ //if (track->GetTPCsignalN() < 60)
+ // continue;//TODO was removed for a while
if(fTrackFilter && !fTrackFilter->IsSelected(track))
fConvolutedGausDeltaPrime->SetRange(oldFuncRangeLow, oldFuncRangeUp);
delete hInput;
- delete oldFuncParams;
+ delete [] oldFuncParams;
return kFALSE;
}
fConvolutedGausDeltaPrime->SetRange(oldFuncRangeLow, oldFuncRangeUp);
delete hInput;
- delete oldFuncParams;
+ delete [] oldFuncParams;
return kFALSE;
}
fConvolutedGausDeltaPrime->SetRange(oldFuncRangeLow, oldFuncRangeUp);
delete hInput;
- delete oldFuncParams;
+ delete [] oldFuncParams;
return kFALSE;
}
fConvolutedGausDeltaPrime->SetRange(oldFuncRangeLow, oldFuncRangeUp);
delete hInput;
- delete oldFuncParams;
+ delete [] oldFuncParams;
return kTRUE;
}
AliAnalysisManager* man = AliAnalysisManager::GetAnalysisManager();
AliInputEventHandler* inputHandler = dynamic_cast<AliInputEventHandler*>(man->GetInputEventHandler());
- if (!inputHandler)
+ if (!inputHandler) {
AliFatal("Input handler needed");
+ fPIDResponse = 0x0;
+
+ return;
+ }
// PID response object
fPIDResponse = inputHandler->GetPIDResponse();
Typical parameters to run on 11a1* (MC_pp@7TeV):
"clustersAOD_ANTIKT", "", "clustersAODMC2_ANTIKT", "AODMCb", "AODMC2b", AliAnalysisManager::GetGlobalInt("kHighPtFilterMask", gDebug),
--0.4, 0, 1000*AliAnalysisManager::GetGlobalDbl("kTrackPtCut", gDebug), 0, "_Skip00", "", "_Skip00", 0.4, -1, 0, 0,
+-0.4, 0, 1000*AliAnalysisManager::GetGlobalDbl("kTrackPtCut", gDebug), 0, "_Skip00", "", "_Skip00", 0.4, -1, 0, 0, kFALSE,
"PWGJE_taskPID_Jets", "", "PWGJE_taskPID_Jets_Inclusive", ""
***************************************************************************************************/
const char* jetType,
const char* trackType,
UInt_t filterMask,
- Float_t radius,
- int kBackgroundMode,
- Int_t PtTrackMin,
- Int_t eventClass=0,
- TString BrOpt="",
- TString BrOpt2="",
- TString BrOpt3="",
- Float_t radiusBckg=0.4,
+ Float_t radius,
+ Int_t kBackgroundMode,
+ Int_t PtTrackMin,
+ Int_t eventClass=0,
+ TString BrOpt="",
+ TString BrOpt2="",
+ TString BrOpt3="",
+ Float_t radiusBckg=0.4,
Int_t FFMaxTrackPt = -1,
Int_t FFMinNTracks = 0,
UInt_t filterMaskTracks = 0,
+ Bool_t onlyConsiderLeadingJets = kFALSE,
TString suffixPIDtaskJets1 = "",
TString suffixPIDtaskJets2 = "",
TString suffixPIDtaskInclusive1 = "",
task->SetBckgType();
task->SetBranchRecBackClusters(Form("clustersAOD_KT04_B0_Filter%05d_Cut00150_Skip00",filterMask));
+ task->SetOnlyLeadingJets(onlyConsiderLeadingJets); // default: kFALSE
+
// Define histo bins
task->SetFFHistoBins(23, 5, 120, 480, 0., 120.,70, 0., 7.,22, 0., 1.1);