Interfaced to AliAODJet and AliAODHandler.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Jun 2007 16:34:51 +0000 (16:34 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 4 Jun 2007 16:34:51 +0000 (16:34 +0000)
JETAN/AliAnalysisTaskJets.cxx
JETAN/AliAnalysisTaskJets.h
JETAN/AliJetFinder.cxx
JETAN/AliJetFinder.h
JETAN/AliUA1JetFinderV1.cxx

index 8b1b75d9df1364c73e45bb4f1433e843d21a27c5..c3228780326259feb1f3ea8e7547abb12aaeb9c9 100644 (file)
 #include <TH1.h>
 
 #include "AliAnalysisTaskJets.h"
+#include "AliAnalysisManager.h"
 #include "AliJetFinder.h"
 #include "AliESD.h"
+#include "AliAODEvent.h"
+#include "AliAODHandler.h"
+
 
 ClassImp(AliAnalysisTaskJets)
 
@@ -33,7 +37,8 @@ AliAnalysisTaskJets::AliAnalysisTaskJets():
     fJetFinder(0x0),
     fChain(0x0),
     fESD(0x0),
-    fTreeJ(0x0)
+    fAOD(0x0),
+    fTreeA(0x0)
 {
   // Default constructor
 }
@@ -44,7 +49,8 @@ AliAnalysisTaskJets::AliAnalysisTaskJets(const char* name):
     fJetFinder(0x0),
     fChain(0x0),
     fESD(0x0),
-    fTreeJ(0x0)
+    fAOD(0x0),
+    fTreeA(0x0)
 {
   // Default constructor
     DefineInput (0, TChain::Class());
@@ -55,7 +61,11 @@ void AliAnalysisTaskJets::CreateOutputObjects()
 {
 // Create the output container
     OpenFile(0);
-    fTreeJ = fJetFinder->MakeTreeJ("TreeJ");
+    AliAODHandler* handler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetEventHandler());
+    
+    fAOD   = handler->GetAOD();
+    fTreeA = handler->GetTree();
+    fJetFinder->ConnectAOD(fAOD);
 }
 
 void AliAnalysisTaskJets::Init()
@@ -101,7 +111,7 @@ void AliAnalysisTaskJets::Exec(Option_t */*option*/)
     Long64_t ientry = fChain->GetReadEntry();
     if (fDebug > 1) printf("Analysing event # %5d\n", (Int_t) ientry);
     fJetFinder->ProcessEvent(ientry);
-    PostData(0, fTreeJ);
+    PostData(0, fTreeA);
 }
 
 void AliAnalysisTaskJets::Terminate(Option_t */*option*/)
index 2b48078c5c78ff4fc7c12be1020cb7c2a00f5919..26b0a14c8a180bf172d65eed988643a2089f20de 100644 (file)
@@ -8,7 +8,7 @@
 class AliJetFinder;
 class AliESD;
 class TChain;
-
+class AliAODEvent;
 
 class AliAnalysisTaskJets : public AliAnalysisTask
 {
@@ -30,8 +30,8 @@ class AliAnalysisTaskJets : public AliAnalysisTask
     AliJetFinder* fJetFinder; //  Pointer to the jet finder 
     TChain*       fChain;     //! chained files
     AliESD*       fESD;       //! ESD
-    TTree*        fTreeJ;     //  tree of reconstructed jets
-    
+    AliAODEvent*  fAOD;       //! AOD
+    TTree*        fTreeA;     //  tree of reconstructed jets
     ClassDef(AliAnalysisTaskJets, 1); // Analysis task for standard jet analysis
 };
  
index 8c623b84638a643e1dc94ef57d1eb3eaf6fb8b5f..58d19fb697ed477a802f07751ce898f0eccb8ad3 100644 (file)
 
 #include <Riostream.h>
 #include <TFile.h>
+#include <TClonesArray.h>
+
 #include "AliJetFinder.h"
 #include "AliJet.h"
+#include "AliAODJet.h"
 #include "AliJetReader.h"
 #include "AliJetReaderHeader.h"
 #include "AliJetControlPlots.h"
 #include "AliLeading.h"
+#include "AliAODEvent.h"
 
 ClassImp(AliJetFinder)
 
@@ -41,6 +45,8 @@ AliJetFinder::AliJetFinder():
     fLeading(0),
     fReader(0x0),
     fHeader(0x0),
+    fAODjets(0x0),
+    fNAODjets(0),
     fPlots(0x0),
     fOut(0x0)
     
@@ -49,6 +55,7 @@ AliJetFinder::AliJetFinder():
   fJets    = new AliJet();
   fGenJets = new AliJet();
   fLeading = new AliLeading();
+  fAODjets = 0;
 }
 
 ////////////////////////////////////////////////////////////////////////
@@ -73,10 +80,10 @@ AliJetFinder::~AliJetFinder()
 
 ////////////////////////////////////////////////////////////////////////
 
-void AliJetFinder::SetOutputFile(const char* name)
+void AliJetFinder::SetOutputFile(const char */*name*/)
 {
   //  opens output file 
-    fOut = new TFile(name,"recreate");
+  //  fOut = new TFile(name,"recreate");
 }
 
 ////////////////////////////////////////////////////////////////////////
@@ -151,12 +158,11 @@ void AliJetFinder::Run()
              printf("In FindJetsTPC() routine: find jets with fMomentumArray !!!\n");
          FindJetsTPC();
       } else {
-         if(debug > 1) printf("In FindJets() routine: find jets with fUnitArray !!!\n");
-         FindJets();
+          if(debug > 1) printf("In FindJets() routine: find jets with fUnitArray !!!\n");
+          FindJets();
       }
       if (fOut) {
          fOut->cd();
-         fTreeJ->Fill();
       }
       
       if (fPlots) fPlots->FillHistos(fJets);
@@ -213,8 +219,6 @@ Bool_t AliJetFinder::ProcessEvent(Long64_t entry)
     fLeading->FindLeading(fReader);
     // Jets
     FindJets();
-    // Fill the tree
-    fTreeJ->Fill();
 
     if (fPlots) fPlots->FillHistos(fJets);
     fLeading->Reset();
@@ -233,7 +237,6 @@ void AliJetFinder::FinishRun()
     
     if (fOut) {
         fOut->cd();
-        fTreeJ->Write();
         if (fPlots) {
             fPlots->Write();
         }
@@ -241,3 +244,16 @@ void AliJetFinder::FinishRun()
     }
 }
 
+void AliJetFinder::AddJet(AliAODJet p)
+{
+// Add new jet to the list
+  new ((*fAODjets)[fNAODjets++]) AliAODJet(p);
+}
+
+void AliJetFinder::ConnectAOD(AliAODEvent* aod)
+{
+// Connect to the AOD
+    printf("Connect AOD \n");
+    fAODjets = aod->GetJets();
+    printf("Connect AOD %p \n", fAODjets);
+}
index 1e303dde009808a178f7f5e2fec33e29cf4deec0..d04ba286609549fdfe4341b5e5bb7c3a270c79c4 100755 (executable)
@@ -12,6 +12,7 @@
 //---------------------------------------------------------------------
 
 #include <TObject.h>
+#include "AliAODJet.h"
 
 class TFile;
 class TTree;
@@ -20,6 +21,8 @@ class AliJetReader;
 class AliJetHeader;
 class AliJetControlPlots;
 class AliLeading;
+class AliAODJet;
+class AliAODEvent;
 
 class AliJetFinder : public TObject 
 {
@@ -37,6 +40,7 @@ class AliJetFinder : public TObject
   virtual void SetJetReader(AliJetReader* r) {fReader=r;}
   virtual void SetJetHeader(AliJetHeader* h) {fHeader=h;}
   // others
+  virtual void   AddJet(AliAODJet jet);
   virtual void   PrintJets();
   virtual void   Run();
   virtual void   WriteRHeaderToFile();  
@@ -50,6 +54,7 @@ class AliJetFinder : public TObject
   virtual Bool_t ProcessEvent(Long64_t entry);
   virtual void   FinishRun();
   virtual void   ConnectTree(TTree* tree, TObject* data);
+  virtual void   ConnectAOD(AliAODEvent* aod);
   virtual TTree* MakeTreeJ(char* name);
   virtual void   WriteHeaders();
   virtual void   WriteJetsToFile() {;}
@@ -64,6 +69,8 @@ class AliJetFinder : public TObject
   AliLeading*   fLeading;        //! pointer to leading particle data 
   AliJetReader* fReader;         //  pointer to reader
   AliJetHeader* fHeader;         //  pointer to header
+  TClonesArray* fAODjets;        //! reconstructed jets
+  Int_t         fNAODjets;       //! number of reconstructed jets
   AliJetControlPlots* fPlots;    //! pointer to control plots
   TFile* fOut;                   //! output file
   ClassDef(AliJetFinder,2)
index e1e959346ebe7a4b7551b6efefdb3eb6f28772b9..ac8802e309ced60eb5e647a17a75ca5a0ce1227e 100644 (file)
@@ -34,6 +34,7 @@
 #include "AliJetReaderHeader.h"
 #include "AliJetReader.h"
 #include "AliJet.h"
+#include "AliAODJet.h"
 
 
 ClassImp(AliUA1JetFinderV1)
@@ -80,9 +81,9 @@ void AliUA1JetFinderV1::FindJets()
   if (nIn == 0) return;
 
   // local arrays for input
-  Float_t* ptT  = new Float_t[nIn];
-  Float_t* etaT = new Float_t[nIn];
-  Float_t* phiT = new Float_t[nIn];
+  Float_t* ptT   = new Float_t[nIn];
+  Float_t* etaT  = new Float_t[nIn];
+  Float_t* phiT  = new Float_t[nIn];
   Int_t*   injet = new Int_t[nIn];
 
   //total energy in array
@@ -173,6 +174,11 @@ void AliUA1JetFinderV1::FindJets()
       pz = etJet[kj] / TMath::Tan(2.0 * TMath::ATan(TMath::Exp(-etaJet[kj])));
       en = TMath::Sqrt(px * px + py * py + pz * pz);
       fJets->AddJet(px, py, pz, en);
+      AliAODJet jet(px, py, pz, en);
+      jet.Print("");
+      
+      AddJet(jet);
+      
       idxjets[nselectj] = kj;
       nselectj++;
   }
@@ -797,6 +803,7 @@ void AliUA1JetFinderV1::Reset()
 {
   fLego->Reset();
   fJets->ClearJets();
+  fNAODjets = 0;
 }
 
 ////////////////////////////////////////////////////////////////////////