]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - JETAN/AliJetFinder.cxx
Adding the possibility not to follow particle mothers during StepManager (default...
[u/mrichter/AliRoot.git] / JETAN / AliJetFinder.cxx
index 5bb2665155385cc9d6036c56021359e12d3b1390..799613863449acda187f66566fde4d9f1237098d 100644 (file)
 // Authors: jgcn@mda.cinvestav.mx
 //          andreas.morsch@cern.ch
 //          magali.estienne@subatech.in2p3.fr
+//          alexandre.shabetai@cern.ch
 //---------------------------------------------------------------------
 
-#include <Riostream.h>
 #include <TFile.h>
 
 #include "AliJetFinder.h"
+#include "AliUA1JetHeaderV1.h"
+#include "AliAODJetEventBackground.h"
 #include "AliAODJet.h"
 #include "AliAODEvent.h"
-#include "AliJetUnitArray.h"
-#include "AliJetReaderHeader.h"
-#include "AliJetHeader.h"
-#include "AliJetReader.h"
-#include "AliAODJetEventBackground.h"
 
 ClassImp(AliJetFinder)
 
+///////////////////////////////////////////////////////////////////////
+
 AliJetFinder::AliJetFinder():
-    fReader(0x0),
-    fHeader(0x0),
-    fAODjets(0x0),
-    fNAODjets(0),
-    fAODEvBkg(0)
+  fHeader(0x0),
+  fAODjets(0x0),
+  fNAODjets(0),
+  fAODEvBkg(0),
+  fDebug(0),
+  fCalTrkEvent(0x0)
 {
-  //
   // Constructor
-  //
-  fAODjets = 0;
 }
 
-////////////////////////////////////////////////////////////////////////
+//-----------------------------------------------------------------------
 AliJetFinder::~AliJetFinder()
 {
-  //
   // Destructor
-  //
 }
 
-
-
-////////////////////////////////////////////////////////////////////////
-void AliJetFinder::WriteRHeaderToFile()
+//-----------------------------------------------------------------------
+void AliJetFinder::WriteHeader()
 {
-  // write reader header
-    AliJetReaderHeader *rh = fReader->GetReaderHeader();
-    rh->Write();
-}
-
+  // Write the Headers
+  TFile* f = new TFile("jets_local.root", "recreate");
+  WriteHeaderToFile();
+  f->Close();
 
-////////////////////////////////////////////////////////////////////////
-void AliJetFinder::ConnectTree(TTree* tree, TObject* data)
-{
-    // Connect the input file
-    fReader->ConnectTree(tree, data);
 }
 
-////////////////////////////////////////////////////////////////////////
-void AliJetFinder::WriteHeaders()
+//-----------------------------------------------------------------------
+void AliJetFinder::WriteHeaderToFile()
 {
-    // Write the Headers
-    TFile* f = new TFile("jets_local.root", "recreate");
-    WriteRHeaderToFile();
-    WriteJHeaderToFile();
-    f->Close();
-}
+  // write reader header
+  AliJetHeader *rh = GetJetHeader();
+  rh->Write();
 
-////////////////////////////////////////////////////////////////////////
-Bool_t AliJetFinder::ProcessEvent()
-{
-  //
-  // Process one event
-  // Charged only jets
-  //
-
-  Bool_t ok = fReader->FillMomentumArray();
-  if (!ok) return kFALSE;
-  // Jets
-  FindJets(); // V1
-  Reset();  
-  return kTRUE;
 }
 
-////////////////////////////////////////////////////////////////////////
-Bool_t AliJetFinder::ProcessEvent2()
+//-----------------------------------------------------------------------
+Bool_t AliJetFinder::ProcessEvent()
 {
-  //
   // Process one event
-  // Charged only or charged+neutral jets
-  //
-
-  TRefArray* ref = new TRefArray();
-  Bool_t procid = kFALSE;
-  Bool_t ok = fReader->ExecTasks(procid,ref);
 
-  // Delete reference pointer  
-  if (!ok) {delete ref; return kFALSE;}
-  // Jets
+  // Find jets
   FindJets();
-  
-  Int_t nEntRef = ref->GetEntries();
-
-  for(Int_t i=0; i<nEntRef; i++)
-    { 
-      // Reset the UnitArray content which were referenced
-      ((AliJetUnitArray*)ref->At(i))->SetUnitTrackID(0);
-      ((AliJetUnitArray*)ref->At(i))->SetUnitEnergy(0.);
-      ((AliJetUnitArray*)ref->At(i))->SetUnitCutFlag(kPtSmaller);
-      ((AliJetUnitArray*)ref->At(i))->SetUnitCutFlag2(kPtSmaller);
-      ((AliJetUnitArray*)ref->At(i))->SetUnitSignalFlag(kBad);
-      ((AliJetUnitArray*)ref->At(i))->SetUnitSignalFlagC(kTRUE,kBad);
-      ((AliJetUnitArray*)ref->At(i))->SetUnitDetectorFlag(kTpc);
-      ((AliJetUnitArray*)ref->At(i))->SetUnitFlag(kOutJet);
-      ((AliJetUnitArray*)ref->At(i))->ClearUnitTrackRef();
-
-      // Reset process ID
-      AliJetUnitArray* uA = (AliJetUnitArray*)ref->At(i);
-      uA->ResetBit(kIsReferenced);
-      uA->SetUniqueID(0);     
-    }
-
-  // Delete the reference pointer
-  ref->Delete();
-  delete ref;
 
   Reset();
-
   return kTRUE;
-}
 
+}
 
+//-----------------------------------------------------------------------
 void AliJetFinder::AddJet(AliAODJet p)
 {
-// Add new jet to the list
-  new ((*fAODjets)[fNAODjets++]) AliAODJet(p);
+  // Add new jet to the list
+  if (fAODjets) { new ((*fAODjets)[fNAODjets++]) AliAODJet(p);}
+  else { Warning("AliJetFinder::AddJet(AliAODJet p)","fAODjets is null!");}
+
 }
 
-void AliJetFinder::ConnectAOD(AliAODEvent* aod)
+//-----------------------------------------------------------------------
+void AliJetFinder::ConnectAOD(const AliAODEvent* aod)
 {
-// Connect to the AOD
-    fAODjets = aod->GetJets();
-    fAODEvBkg = (AliAODJetEventBackground*)(aod->FindListObject(AliAODJetEventBackground::StdBranchName()));
+  // Connect to the AOD
+  fAODjets = aod->GetJets();
+  fAODEvBkg = (AliAODJetEventBackground*)(aod->FindListObject(AliAODJetEventBackground::StdBranchName()));
+
 }
 
-////////////////////////////////////////////////////////////////////////
+//-----------------------------------------------------------------------
 void AliJetFinder::ConnectAODNonStd(AliAODEvent* aod,const char *bname)
 {
-
+  // Connect non standard AOD jet and jet background branches 
   fAODjets = dynamic_cast<TClonesArray*>(aod->FindListObject(bname));
   fAODEvBkg = (AliAODJetEventBackground*)(aod->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),bname)));
   // how is this is reset? Cleared? -> by the UserExec!!
+
 }