fEventSelection(kFALSE),
fFilterMask(0),
fFilterType(0),
+ fJetTypes(kJet),
fTrackTypeRec(kTrackUndef),
fTrackTypeGen(kTrackUndef),
fNSkipLeadingRan(0),
fRecEtaWindow(0.5),
fTrackPtCut(0.),
fJetOutputMinPt(0.150),
+ fMaxTrackPtInJet(100.),
fJetTriggerPtCut(0),
fVtxZCut(8),
fVtxR2Cut(1),
fEventSelection(kFALSE),
fFilterMask(0),
fFilterType(0),
+ fJetTypes(kJet),
fTrackTypeRec(kTrackUndef),
fTrackTypeGen(kTrackUndef),
fNSkipLeadingRan(0),
fRecEtaWindow(0.5),
fTrackPtCut(0.),
fJetOutputMinPt(0.150),
+ fMaxTrackPtInJet(100.),
fJetTriggerPtCut(0),
fVtxZCut(8),
fVtxR2Cut(1),
// -> cleared in the UserExec....
// here we can also have the case that the brnaches are written to a separate file
- fTCAJetsOut = new TClonesArray("AliAODJet", 0);
- fTCAJetsOut->SetName(fNonStdBranch.Data());
- AddAODBranch("TClonesArray",&fTCAJetsOut,fNonStdFile.Data());
-
+ if(fJetTypes&kJet){
+ fTCAJetsOut = new TClonesArray("AliAODJet", 0);
+ fTCAJetsOut->SetName(fNonStdBranch.Data());
+ AddAODBranch("TClonesArray",&fTCAJetsOut,fNonStdFile.Data());
+ }
-
- fTCAJetsOutRan = new TClonesArray("AliAODJet", 0);
- fTCAJetsOutRan->SetName(Form("%s_%s",fNonStdBranch.Data(),"random"));
- AddAODBranch("TClonesArray",&fTCAJetsOutRan,fNonStdFile.Data());
-
+ if(fJetTypes&kJetRan){
+ fTCAJetsOutRan = new TClonesArray("AliAODJet", 0);
+ fTCAJetsOutRan->SetName(Form("%s_%s",fNonStdBranch.Data(),"random"));
+ AddAODBranch("TClonesArray",&fTCAJetsOutRan,fNonStdFile.Data());
+ }
+
if(fUseBackgroundCalc){
if(!AODEvent()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data()))){
fAODJetBackgroundOut = new AliAODJetEventBackground();
TString cName = Form("%sRandomConeSkip%02d",fNonStdBranch.Data(),fNSkipLeadingCone);
if(fNRandomCones>0){
- if(!AODEvent()->FindListObject(cName.Data())){
- fTCARandomConesOut = new TClonesArray("AliAODJet", 0);
- fTCARandomConesOut->SetName(cName.Data());
- AddAODBranch("TClonesArray",&fTCARandomConesOut,fNonStdFile.Data());
+ if(fJetTypes&kRC){
+ if(!AODEvent()->FindListObject(cName.Data())){
+ fTCARandomConesOut = new TClonesArray("AliAODJet", 0);
+ fTCARandomConesOut->SetName(cName.Data());
+ AddAODBranch("TClonesArray",&fTCARandomConesOut,fNonStdFile.Data());
+ }
}
// create the branch with the random for the random cones on the random event
- cName = Form("%sRandomCone_random",fNonStdBranch.Data());
- if(!AODEvent()->FindListObject(cName.Data())){
- fTCARandomConesOutRan = new TClonesArray("AliAODJet", 0);
- fTCARandomConesOutRan->SetName(cName.Data());
- AddAODBranch("TClonesArray",&fTCARandomConesOutRan,fNonStdFile.Data());
+ if(fJetTypes&kRCRan){
+ cName = Form("%sRandomCone_random",fNonStdBranch.Data());
+ if(!AODEvent()->FindListObject(cName.Data())){
+ fTCARandomConesOutRan = new TClonesArray("AliAODJet", 0);
+ fTCARandomConesOutRan->SetName(cName.Data());
+ AddAODBranch("TClonesArray",&fTCARandomConesOutRan,fNonStdFile.Data());
+ }
}
}
// now create the object that holds info about ghosts
+ /*
if(!fUseBackgroundCalc&& fNonStdBranch.Length()==0){
// reduce CPU time...
fGhostArea = 0.5;
fActiveAreaRepeats = 0;
}
-
- fastjet::GhostedAreaSpec ghostSpec(fGhostEtamax, fActiveAreaRepeats, fGhostArea);
+ */
+
+ fastjet::GhostedAreaSpec ghostSpec(fGhostEtamax, fActiveAreaRepeats, fGhostArea);
fastjet::AreaType areaType = fastjet::active_area;
fastjet::AreaDefinition areaDef = fastjet::AreaDefinition(areaType,ghostSpec);
fastjet::JetDefinition jetDef(fAlgorithm, fRparam, fRecombScheme, fStrategy);
fh1PtJetConstRec->Fill(part->Pt());
if(aodOutJet){
aodOutJet->AddTrack(fRef->At(constituents[ic].user_index()));
+ if(part->Pt()>fMaxTrackPtInJet)aodOutJet->SetTrigger(AliAODJet::kHighTrackPtTriggered);
}
if(j==0)fh1PtJetConstLeadingRec->Fill(part->Pt());
}
for(int ir = 0;ir < fNRandomCones;ir++){
AliAODJet *jC = (AliAODJet*)fTCARandomConesOut->At(ir);
if(jC&&jC->DeltaR(vp)<fRparam){
+ if(vp->Pt()>fMaxTrackPtInJet)jC->SetTrigger(AliAODJet::kHighTrackPtTriggered);
jC->SetBgEnergy(jC->ChargedBgEnergy()+vp->Pt(),0);
}
}
for(int ir = 0;ir < fTCARandomConesOutRan->GetEntriesFast();ir++){
AliAODJet *jC = (AliAODJet*)fTCARandomConesOutRan->At(ir);
if(jC&&jC->DeltaR(&vTmpRanR)<fRparam){
+ if(vTmpRanR.Pt()>fMaxTrackPtInJet)jC->SetTrigger(AliAODJet::kHighTrackPtTriggered);
jC->SetBgEnergy(jC->ChargedBgEnergy()+vTmpRanR.Pt(),0);
}
}
AliAODTrack *tr = aod->GetTrack(it);
Bool_t bGood = false;
if(fFilterType == 0)bGood = true;
- else if(fFilterType == 1)bGood = tr->IsHybridITSTPC();
- else if(fFilterType == 2)bGood = tr->IsHybridTPC();
+ else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
+ else if(fFilterType == 2)bGood = tr->IsHybridGlobalConstrainedGlobal();
if((fFilterMask>0)&&((!tr->TestFilterBit(fFilterMask)||(!bGood)))){
if(fDebug>10)Printf("%s:%d Not matching filter %d/%d %d/%d",(char*)__FILE__,__LINE__,it,aod->GetNumberOfTracks(),fFilterMask,tr->GetFilterMap());
continue;
if(!trackAOD)continue;
Bool_t bGood = false;
if(fFilterType == 0)bGood = true;
- else if(fFilterType == 1)bGood = trackAOD->IsHybridITSTPC();
- else if(fFilterType == 2)bGood = trackAOD->IsHybridTPC();
+ else if(fFilterType == 1)bGood = trackAOD->IsHybridTPCConstrainedGlobal();
+ else if(fFilterType == 2)bGood = trackAOD->IsHybridGlobalConstrainedGlobal();
if((fFilterMask>0)&&((!trackAOD->TestFilterBit(fFilterMask)||(!bGood))))continue;
if(TMath::Abs(trackAOD->Eta())>fTrackEtaWindow) continue;
if(trackAOD->Pt()<fTrackPtCut) continue;