From 0b64955af2a240f5db3d7d07eb2e3f6214742524 Mon Sep 17 00:00:00 2001 From: kleinb Date: Sun, 1 Aug 2010 11:40:43 +0000 Subject: [PATCH] Adding the possibility to filter for events containing a jet above threshold set by SetFilterPt --- JETAN/AliAnalysisTaskJets.cxx | 23 ++++++++++++++++++++--- JETAN/AliAnalysisTaskJets.h | 6 +++--- PWG4/macros/AddTaskJets.C | 6 ++++++ 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/JETAN/AliAnalysisTaskJets.cxx b/JETAN/AliAnalysisTaskJets.cxx index 8bb2fb5af6e..662027616bc 100644 --- a/JETAN/AliAnalysisTaskJets.cxx +++ b/JETAN/AliAnalysisTaskJets.cxx @@ -56,7 +56,8 @@ AliAnalysisTaskJets::AliAnalysisTaskJets(): fListOfHistos(0x0), fChain(0x0), fOpt(0), - fReadAODFromOutput(0) + fReadAODFromOutput(0), + fFilterPt(0.) { // Default constructor } @@ -72,7 +73,8 @@ AliAnalysisTaskJets::AliAnalysisTaskJets(const char* name): fListOfHistos(0x0), fChain(0x0), fOpt(0), - fReadAODFromOutput(0) + fReadAODFromOutput(0), + fFilterPt(0.) { // Default constructor DefineOutput(1, TList::Class()); @@ -89,7 +91,8 @@ AliAnalysisTaskJets::AliAnalysisTaskJets(const char* name, TChain* chain): fListOfHistos(0x0), fChain(chain), fOpt(0), - fReadAODFromOutput(0) + fReadAODFromOutput(0), + fFilterPt(0.) { // Default constructor DefineOutput(1, TList::Class()); @@ -219,6 +222,9 @@ void AliAnalysisTaskJets::UserExec(Option_t */*option*/) TClonesArray* jarray = 0; AliAODJetEventBackground* evBkg = 0; + // only need this once + static AliAODHandler *aodH = dynamic_cast(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()); + if(fNonStdBranch.Length()==0) { jarray = AODEvent()->GetJets(); evBkg = (AliAODJetEventBackground*)(AODEvent()->FindListObject(AliAODJetEventBackground::StdBranchName())); @@ -249,6 +255,17 @@ void AliAnalysisTaskJets::UserExec(Option_t */*option*/) // Fill control histos if(jarray)fHistos->FillHistos(jarray); + + if(aodH&&fFilterPt>0){ + if(jarray->GetEntries()>0){ + AliAODJet *jet = (AliAODJet*)jarray->At(0); + if(jet->Pt()>fFilterPt){ + // aodH->EnableFillAODforEvent(); + aodH->SetFillAOD(kTRUE); + } + } + } + // Post the data PostData(1, fListOfHistos); return; diff --git a/JETAN/AliAnalysisTaskJets.h b/JETAN/AliAnalysisTaskJets.h index d8f2e1161f0..6c9e0e2b0ff 100644 --- a/JETAN/AliAnalysisTaskJets.h +++ b/JETAN/AliAnalysisTaskJets.h @@ -36,7 +36,7 @@ class AliAnalysisTaskJets : public AliAnalysisTaskSE virtual void SetNonStdOutputFile(const char *c){fNonStdFile = c;} virtual void Terminate(Option_t *option); virtual void ReadAODFromOutput() {fReadAODFromOutput = kTRUE;} - + virtual void SetFilterPt(Float_t f){fFilterPt = f;} private: AliAnalysisTaskJets(const AliAnalysisTaskJets &det); @@ -53,8 +53,8 @@ class AliAnalysisTaskJets : public AliAnalysisTaskSE TChain* fChain; // Chain Int_t fOpt; // Detector configuration used Bool_t fReadAODFromOutput; // Force reading of the AOD from the output - - ClassDef(AliAnalysisTaskJets, 4); // Analysis task for standard jet analysis + Float_t fFilterPt; // use this as a switch for writing the AOD, minium p_T of leading jet + ClassDef(AliAnalysisTaskJets, 5); // Analysis task for standard jet analysis }; #endif diff --git a/PWG4/macros/AddTaskJets.C b/PWG4/macros/AddTaskJets.C index d0ed23fd630..a4e60be0203 100644 --- a/PWG4/macros/AddTaskJets.C +++ b/PWG4/macros/AddTaskJets.C @@ -160,8 +160,14 @@ AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf, Float_t radius,UInt_t f jetana->SetJetFinder(jetFinder); jetana->SetConfigFile(""); jetana->SetDebugLevel(2); + if(TMath::Abs((radius-0.4))< 0.02&&c_jf.Contains("fastjet")){ + jetana->SetFilterPt(10.); + } + + mgr->AddTask(jetana); + // Create ONLY the output containers for the data produced by the task. // Get and connect other common input/output containers via the manager as below //============================================================================== -- 2.43.0