fEventSelection(kFALSE),
fRequireVZEROAC(kFALSE),
fRequireTZEROvtx(kFALSE),
+ fUseHFcuts(kFALSE),
fFilterMask(0),
fFilterMaskBestPt(0),
fFilterType(0),
fEventSelection(kFALSE),
fRequireVZEROAC(kFALSE),
fRequireTZEROvtx(kFALSE),
+ fUseHFcuts(kFALSE),
fFilterMask(0),
fFilterMaskBestPt(0),
fFilterType(0),
if(fDebug>10)Printf("%s:%d Not matching filter %d/%d %d/%d",(char*)__FILE__,__LINE__,it,aod->GetNumberOfTracks(),fFilterMask,tr->GetFilterMap());
continue;
}
+
+ // heavy flavor jets
+ if(fFilterMask==528 && fUseHFcuts){
+ Double_t ntpcClus = tr->GetTPCNcls();
+ Double_t trPt=tr->Pt();
+ TFormula NTPCClsCut("f1NClustersTPCLinearPtDep","70.+30./20.*x");
+
+ if (trPt <= 20. && (ntpcClus < NTPCClsCut.Eval(trPt))) continue;
+ else if (trPt > 20. && ntpcClus < 100) continue;
+
+ Int_t idtr1 = tr->GetID();
+ Bool_t flagSame = kFALSE;
+ AvoidDoubleCountingHF(aod, idtr1, flagSame);
+ if (flagSame) continue;
+ }
+ //
+
if(fRequireITSRefit){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
if (fApplySharedClusterCut) {
Double_t frac = Double_t(tr->GetTPCnclsS()) /Double_t(tr->GetTPCncls());
}
return count;
}
+void AliAnalysisTaskJetCluster::AvoidDoubleCountingHF(AliAODEvent *aod, Int_t idtr1, Bool_t &fFlagSameTr){
+
+ Bool_t sametr = kFALSE;
+ for(int jt = 0;jt < aod->GetNumberOfTracks();++jt){
+ AliAODTrack *tr2 = aod->GetTrack(jt);
+ Int_t idtr2 = tr2->GetID();
+ if (idtr2>-1) continue;
+
+ idtr2=-1*idtr2;
+ if (idtr1==idtr2-1) sametr = kTRUE;
+
+ }
+ fFlagSameTr = sametr;
+}
void AliAnalysisTaskJetCluster::LoadTrPtResolutionRootFileFromOADB() {
virtual void SetFixedEfficiency(Double_t eff) {fEfficiencyFixed = eff;}
virtual void SetRequireT0vtx(Bool_t b = true){fRequireTZEROvtx = b;}
virtual void SetRequireV0AC(Bool_t b = true){fRequireVZEROAC = b;}
-
+ virtual void SetUseHFcuts(Bool_t b = true){fUseHFcuts = b;}
Double_t GetMomentumSmearing(Int_t cat, Double_t pt);
void FitMomentumResolution();
- // for Fast Jet
+ // for Fast Jet
fastjet::JetAlgorithm GetAlgorithm() const {return fAlgorithm;}
fastjet::Strategy GetStrategy() const {return fStrategy;}
fastjet::RecombinationScheme GetRecombScheme() const {return fRecombScheme;}
Int_t GetListOfTracks(TList *list,Int_t type);
Int_t AddDaughters(TList * list, AliAODMCParticle *part, TClonesArray * tca);
+ void AvoidDoubleCountingHF(AliAODEvent *aod, Int_t idtr1, Bool_t &fFlagSameTr);
AliAODEvent *fAOD; // ! where we take the jets from can be input or output AOD
AliAODExtension *fAODExtension; // ! AOD extension in case we write a non-sdt branch to a separate file and the aod is standard
Bool_t fEventSelection; // use the event selection of this task, otherwise analyse all
Bool_t fRequireVZEROAC; // switch to require V0 AC
Bool_t fRequireTZEROvtx; // switch to require T0 vtx
+ Bool_t fUseHFcuts; // switch to require T0 vtx
UInt_t fFilterMask; // filter bit for slecected tracks
UInt_t fFilterMaskBestPt; // filter bit to mark jets with high quality leading tracks