fRecEtaWindow(0.5),
fTrackPtCut(0.),
fJetOutputMinPt(0.150),
+ fMaxTrackPtInJet(100.),
fJetTriggerPtCut(0),
fVtxZCut(8),
fVtxR2Cut(1),
fRecEtaWindow(0.5),
fTrackPtCut(0.),
fJetOutputMinPt(0.150),
+ fMaxTrackPtInJet(100.),
fJetTriggerPtCut(0),
fVtxZCut(8),
fVtxR2Cut(1),
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);
}
}
virtual const char* GetJetOutputBranch(){return fNonStdBranch.Data();}
virtual void SetJetOutputFile(const char *c){fNonStdFile = c;}
virtual const char* GetJetOutputFile(){return fNonStdFile.Data();}
+ virtual void SetMaxTrackPtInJet(Float_t x){fMaxTrackPtInJet = x;}
virtual void SetJetOutputMinPt(Float_t x){fJetOutputMinPt = x;}
virtual void SetBackgroundCalc(Bool_t b){fUseBackgroundCalc = b;}
+
+
// for Fast Jet
fastjet::JetAlgorithm GetAlgorithm() const {return fAlgorithm;}
fastjet::Strategy GetStrategy() const {return fStrategy;}
Float_t fRecEtaWindow; // eta window used for corraltion plots between rec and gen
Float_t fTrackPtCut; // minimum track pt to be accepted
Float_t fJetOutputMinPt; // minimum p_t for jets to be written out
+ Float_t fMaxTrackPtInJet; // maximum track pt within a jet for flagging...
Float_t fJetTriggerPtCut; // minimum jwt pT for AOD to be written
Float_t fVtxZCut; // zvtx cut
Float_t fVtxR2Cut; // R vtx cut (squared)
TList *fHistList; //!leading tracks to be skipped in the randomized event Output list
- ClassDef(AliAnalysisTaskJetCluster, 18)
+ ClassDef(AliAnalysisTaskJetCluster, 19)
};
#endif
fDoMatching(kFALSE),
fNMatchJets(5),
fNRPBins(3),
+ fJetTriggerExcludeMask(AliAODJet::kHighTrackPtTriggered),
fFilterMask(0),
fEventSelectionMask(0),
fAnalysisType(0),
fh1NJets[ij] = 0;
fh1SumPtTrack[ij] = 0;
fh1PtJetsIn[ij] = 0;
+ fh1PtJetsInRej[ij] = 0;
fh1PtTracksIn[ij] = 0;
fh1PtTracksInLow[ij] = 0;
fh2NJetsPt[ij] = 0;
fDoMatching(kFALSE),
fNMatchJets(5),
fNRPBins(3),
+ fJetTriggerExcludeMask(AliAODJet::kHighTrackPtTriggered),
fFilterMask(0),
fEventSelectionMask(0),
fAnalysisType(0),
fh1NJets[ij] = 0;
fh1SumPtTrack[ij] = 0;
fh1PtJetsIn[ij] = 0;
+ fh1PtJetsInRej[ij] = 0;
fh1PtTracksIn[ij] = 0;
fh1PtTracksInLow[ij] = 0;
fh2NJetsPt[ij] = 0;
fh1PtJetsIn[ij] = new TH1F(Form("fh1PtJets%sIn",cAdd.Data()),Form("%s jets p_T;p_{T} (GeV/c)",cAdd.Data()),nBinPt,binLimitsPt);
fHistList->Add(fh1PtJetsIn[ij]);
+
+ fh1PtJetsInRej[ij] = new TH1F(Form("fh1PtJets%sInRej",cAdd.Data()),Form("%s jets p_T;p_{T} (GeV/c)",cAdd.Data()),nBinPt,binLimitsPt);
+ fHistList->Add(fh1PtJetsInRej[ij]);
fh1PtTracksIn[ij] = new TH1F(Form("fh1PtTracks%sIn",cAdd.Data()),Form("%s track p_T;p_{T} (GeV/c)",cAdd.Data()),nBinPt,binLimitsPt);
fHistList->Add(fh1PtTracksIn[ij]);
for(int ij = 0;ij < nJets;ij++){
AliAODJet *jet = (AliAODJet*)jetsList.At(ij);
Float_t ptJet = jet->Pt();
+ if(jet->Trigger()&fJetTriggerExcludeMask){
+ fh1PtJetsInRej[iType]->Fill(ptJet);
+ continue;
+ }
fh1PtJetsIn[iType]->Fill(ptJet);
if(ptJet>ptOld){
Printf("%s:%d Jets Type %d Not Sorted !! %d:%.3E %d:%.3E",(char*)__FILE__,__LINE__,iType,ij,ptJet,ij-1,ptOld);
virtual void SetTrackTypeGen(Int_t i){fTrackTypeGen = i;}
virtual void SetTrackTypeRec(Int_t i){fTrackTypeRec = i;}
virtual void SetFilterMask(UInt_t i){fFilterMask = i;}
+ virtual void SetJetTriggerExclude(Char_t i){fJetTriggerExcludeMask = i;}
virtual void SetMatching(Bool_t b = kTRUE){fDoMatching = b;}
virtual void SetRPMethod(Int_t i){fRPMethod = i;}
virtual void SetEventSelectionMask(UInt_t i){fEventSelectionMask = i;}
Bool_t fDoMatching; // switch on the matching between rec and gen
Short_t fNMatchJets; // number of leading jets considered from the list
Short_t fNRPBins; // number of bins with respect to RP
+ Char_t fJetTriggerExcludeMask; // mask for jet triggers to exclude
UInt_t fFilterMask; // filter bit for slecected tracks
UInt_t fEventSelectionMask; // Selection information used to filter events
Int_t fAnalysisType; // Analysis type
TH1F* fh1PtIn[kJetTypes][kMaxJets+1]; //! Jet pt
TH1F* fh1PtJetsIn[kJetTypes]; //! Jet pt for all jets
+ TH1F* fh1PtJetsInRej[kJetTypes]; //! Jet pt for all rejected jets
TH1F* fh1PtTracksIn[kJetTypes]; //! track pt for all tracks
TH1F* fh1PtTracksInLow[kJetTypes]; //! track pt for all tracks
TList *fHistList; //! Output list
- ClassDef(AliAnalysisTaskJetSpectrum2, 17) // Analysis task for standard jet analysis
+ ClassDef(AliAnalysisTaskJetSpectrum2, 18) // Analysis task for standard jet analysis
};
#endif
// ITS cuts for new jet analysis
gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/CreateTrackCutsPWG4.C");
- AliESDtrackCuts* esdTrackCutsHG0 = CreateTrackCutsPWG4(10001004);
+ AliESDtrackCuts* esdTrackCutsHG0 = CreateTrackCutsPWG4(10001005);
// throw out tracks with too low number of clusters in
// the first pass (be consistent with TPC only tracks)
// the complement to the one with SPD requirement
- AliESDtrackCuts* esdTrackCutsHG1 = CreateTrackCutsPWG4(10011004);
+ AliESDtrackCuts* esdTrackCutsHG1 = CreateTrackCutsPWG4(10011005);
// the tracks that must not be taken pass this cut and
// non HGC1 and HG
- AliESDtrackCuts* esdTrackCutsHG2 = CreateTrackCutsPWG4(10021004);
+ AliESDtrackCuts* esdTrackCutsHG2 = CreateTrackCutsPWG4(10021005);
esdTrackCutsH2->SetMaxChi2PerClusterITS(36.);
esdTrackCutsH2->SetPtRange(0.15,1E10);
- AliESDtrackCuts* esdTrackCutsGCOnly = CreateTrackCutsPWG4(10041004);
+ AliESDtrackCuts* esdTrackCutsGCOnly = CreateTrackCutsPWG4(10041005);
// TPC only tracks
AliESDtrackCuts* esdTrackCutsTPCCOnly = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
if (kPluginMode.Contains("merge")){
// currently merging this one...
// cDate = "110717a";
- bRun = 802; Int_t bExtra = 0; cDate = "110812a";
+ // bRun = 802; Int_t bExtra = 0; cDate = "110812a";
}
kUseDebug = kFALSE;
// this is for testing just one run...
tag = "Global tracks jet analysis with ITSrefit and NclsIter1=70, noSPD requirement";
}
+ if(stdCutMode == 1005) {
+
+ bStdCutsDefined = kTRUE;
+
+ // TPC
+ trackCuts->SetMinNClustersTPC(70);
+ trackCuts->SetMaxChi2PerClusterTPC(4);
+ trackCuts->SetRequireTPCStandAlone(kTRUE); //cut on NClustersTPC and chi2TPC Iter1
+ trackCuts->SetAcceptKinkDaughters(kFALSE);
+ trackCuts->SetRequireTPCRefit(kTRUE);
+ trackCuts->SetMaxFractionSharedTPCClusters(0.4);
+ // ITS
+ trackCuts->SetRequireITSRefit(kTRUE);
+ //accept secondaries
+ trackCuts->SetMaxDCAToVertexXY(2.4);
+ trackCuts->SetMaxDCAToVertexZ(3.2);
+ trackCuts->SetDCAToVertex2D(kTRUE);
+ //reject fakes
+ trackCuts->SetMaxChi2PerClusterITS(36);
+
+ trackCuts->SetRequireSigmaToVertex(kFALSE);
+
+ trackCuts->SetEtaRange(-0.9,0.9);
+ trackCuts->SetPtRange(0.15, 1E+15.);
+
+ tag = "Global tracks jet analysis with ITSrefit and NclsIter1=70, noSPD requirement, no upper pt cut";
+
+ }
// first only one bit for EMCAL and TRD, leave space for more
// trigger types and/or other detectors
enum {kEMCALTriggered = 1<<0,
- kTRDTriggered = 4<<0};
+ kTRDTriggered = 1<<2,
+ kHighTrackPtTriggered = 1<<7};
private: