Adding the possibility to filter for events containing a jet above threshold set...
authorkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 1 Aug 2010 11:40:43 +0000 (11:40 +0000)
committerkleinb <kleinb@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 1 Aug 2010 11:40:43 +0000 (11:40 +0000)
JETAN/AliAnalysisTaskJets.cxx
JETAN/AliAnalysisTaskJets.h
PWG4/macros/AddTaskJets.C

index 8bb2fb5..6620276 100644 (file)
@@ -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<AliAODHandler*>(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;
index d8f2e11..6c9e0e2 100644 (file)
@@ -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
index d0ed23f..a4e60be 100644 (file)
@@ -160,8 +160,14 @@ AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf, Float_t radius,UInt_t f
    jetana->SetJetFinder(jetFinder);\r
    jetana->SetConfigFile("");\r
    jetana->SetDebugLevel(2);\r
+   if(TMath::Abs((radius-0.4))< 0.02&&c_jf.Contains("fastjet")){\r
+     jetana->SetFilterPt(10.);\r
+   }\r
+\r
+\r
    mgr->AddTask(jetana);\r
 \r
+\r
    // Create ONLY the output containers for the data produced by the task.\r
    // Get and connect other common input/output containers via the manager as below\r
    //==============================================================================\r