]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - JETAN/AliAnalysisTaskDiJets.cxx
Bug fix: AliHLTComponent::ConfigureFromArgumentString
[u/mrichter/AliRoot.git] / JETAN / AliAnalysisTaskDiJets.cxx
index f58afb799b034151fbf7b856b6261679f020fff8..f1df281af29997a933beb446b84082f2910abb98 100644 (file)
  **************************************************************************/
 
 /* $Id$ */
+/*
+ Analysis Task 
+ for Dijet Analysis
+ based on AOD
+*/
+
 #include "AliAnalysisTaskDiJets.h"
 #include "AliAODEvent.h"
 #include "AliAODJet.h"
@@ -81,6 +86,7 @@ void AliAnalysisTaskDiJets::UserCreateOutputObjects()
        }
 
     if (!fHistList) fHistList = new TList();
+    fHistList->SetOwner();
     Float_t pi=TMath::Pi();
     gStyle->SetPalette(1);
 
@@ -137,19 +143,20 @@ void AliAnalysisTaskDiJets::UserExec(Option_t */*option*/)
     if (fDiJets) fDiJets->Delete();
 
     if(fUseAODInput){
-      AliAODEvent* fAOD   = dynamic_cast<AliAODEvent*> (InputEvent());
-      if(!fAOD && fDebug){
+      fAOD = dynamic_cast<AliAODEvent*> (InputEvent());
+      if(!fAOD){
         // We do not have an input AOD, look in the output
-        printf("%s:%d No AOD event in the input\n",(char*)__FILE__,__LINE__);
+        if (fDebug) printf("%s:%d No AOD event in the input\n",(char*)__FILE__,__LINE__);
         return;
       }
     } else {
       fAOD = AODEvent();
-      if(!fAOD && fDebug){
-        printf("%s:%d AODEvent not found in the Output",(char*)__FILE__,__LINE__);
+      if(!fAOD){
+        if (fDebug) printf("%s:%d AODEvent not found in the Output",(char*)__FILE__,__LINE__);
         return;
       }
     }
+
     TClonesArray* jets = (TClonesArray*) fAOD->FindListObject(fJetBranch.Data());
     // N.B. if we take the aod from the output this is always
     // empty and since it is the same as fDiJets 
@@ -181,15 +188,18 @@ void AliAnalysisTaskDiJets::UserExec(Option_t */*option*/)
     AliAODJet* jet2 = (AliAODJet*) (jets->At(1));
     TLorentzVector v2 = *(jet2->MomentumVector());
     TLorentzVector v = v1 + v2;
-    Int_t ndi = fDiJets->GetEntriesFast();
-    TClonesArray &lref = *fDiJets;
-    new(lref[ndi]) AliAODDiJet(v);
-    AliAODDiJet* dijet = (AliAODDiJet*) (fDiJets->At(ndi));
-    dijet->SetJetRefs(jet1, jet2);
+    if (fDiJets) {
+       Int_t ndi = fDiJets->GetEntriesFast();
+       TClonesArray &lref = *fDiJets;
+       new(lref[ndi]) AliAODDiJet(v);
+       AliAODDiJet* dijet = (AliAODDiJet*) (fDiJets->At(ndi));
+       dijet->SetJetRefs(jet1, jet2);
+       fH1DeltaPhi->Fill(dijet->DeltaPhi());
+       fH1PhiImbal->Fill(dijet->PhiImbalance());
 
+    }
+    
     fH1DeltaPt->Fill(jet1->Pt()-jet2->Pt());
-    fH1DeltaPhi->Fill(dijet->DeltaPhi());
-    fH1PhiImbal->Fill(dijet->PhiImbalance());
     fH1Asym->Fill((jet1->Pt()-jet2->Pt())/(jet1->Pt()+jet2->Pt()));
     fH2Pt2vsPt1->Fill(jet1->Pt(),jet2->Pt());
     fH2DifvsSum->Fill(jet1->Pt()+jet2->Pt(),jet1->Pt()-jet2->Pt());