X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=JETAN%2FAliJetFinder.cxx;h=799613863449acda187f66566fde4d9f1237098d;hb=00849b3b73c512272a6ec13364c88192a0eb23cf;hp=bbdaa671b30cf78d319f4832bf692677058b347e;hpb=be6e5811083a745dcdf28ea035aa5ded8961ea72;p=u%2Fmrichter%2FAliRoot.git diff --git a/JETAN/AliJetFinder.cxx b/JETAN/AliJetFinder.cxx index bbdaa671b30..79961386344 100644 --- a/JETAN/AliJetFinder.cxx +++ b/JETAN/AliJetFinder.cxx @@ -21,305 +21,95 @@ // Authors: jgcn@mda.cinvestav.mx // andreas.morsch@cern.ch // magali.estienne@subatech.in2p3.fr +// alexandre.shabetai@cern.ch //--------------------------------------------------------------------- -#include #include #include "AliJetFinder.h" -#include "AliJet.h" +#include "AliUA1JetHeaderV1.h" +#include "AliAODJetEventBackground.h" #include "AliAODJet.h" -#include "AliJetControlPlots.h" -#include "AliLeading.h" #include "AliAODEvent.h" -#include "AliJetUnitArray.h" - -class TProcessID; -class TClonesArray; ClassImp(AliJetFinder) +/////////////////////////////////////////////////////////////////////// + AliJetFinder::AliJetFinder(): - fTreeJ(0), - fPlotMode(kFALSE), - fJets(0), - fGenJets(0), - fLeading(0), - fReader(0x0), - fHeader(0x0), - fAODjets(0x0), - fNAODjets(0), - fPlots(0x0), - fOut(0x0) - + fHeader(0x0), + fAODjets(0x0), + fNAODjets(0), + fAODEvBkg(0), + fDebug(0), + fCalTrkEvent(0x0) { - // // Constructor - // - - fJets = new AliJet(); - fGenJets = new AliJet(); - fLeading = new AliLeading(); - fAODjets = 0; } -//////////////////////////////////////////////////////////////////////// +//----------------------------------------------------------------------- AliJetFinder::~AliJetFinder() { - // // Destructor - // - - // Reset and delete jets - fJets->ClearJets(); - delete fJets; - fGenJets->ClearJets(); - delete fGenJets; - // close file - if (fOut) { - fOut->Close(); - fOut->Delete(); - } - delete fOut; - // reset and delete control plots - if (fPlots) delete fPlots; } -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::SetOutputFile(const char */*name*/) +//----------------------------------------------------------------------- +void AliJetFinder::WriteHeader() { - // opens output file - // fOut = new TFile(name,"recreate"); -} - -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::PrintJets() -{ - // Print jet information - cout << " Jets found with jet algorithm:" << endl; - fJets->PrintJets(); - cout << " Jets found by pythia:" << endl; - fGenJets->PrintJets(); -} - -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::SetPlotMode(Bool_t b) -{ - // Sets the plotting mode - fPlotMode=b; - if (b && !fPlots) fPlots = new AliJetControlPlots(); -} + // Write the Headers + TFile* f = new TFile("jets_local.root", "recreate"); + WriteHeaderToFile(); + f->Close(); -//////////////////////////////////////////////////////////////////////// -TTree* AliJetFinder::MakeTreeJ(char* name) -{ - // Create the tree for reconstructed jets - fTreeJ = new TTree(name, "AliJet"); - fTreeJ->Branch("FoundJet", &fJets, 1000); - fTreeJ->Branch("GenJet", &fGenJets,1000); - fTreeJ->Branch("LeadingPart",&fLeading,1000); - return fTreeJ; } -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::WriteRHeaderToFile() +//----------------------------------------------------------------------- +void AliJetFinder::WriteHeaderToFile() { // write reader header - AliJetReaderHeader *rh = fReader->GetReaderHeader(); - rh->Write(); -} - -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::Run() -{ - // Do some initialization - Init(); - // connect files - fReader->OpenInputFiles(); - - // write headers - WriteHeaders(); - // loop over events - Int_t nFirst, nLast, option, debug, arrayInitialised; - nFirst = fReader->GetReaderHeader()->GetFirstEvent(); - nLast = fReader->GetReaderHeader()->GetLastEvent(); - - option = fReader->GetReaderHeader()->GetDetector(); - debug = fReader->GetReaderHeader()->GetDebug(); - arrayInitialised = fReader->GetArrayInitialised(); - - // loop over events - for (Int_t i=nFirst;iFillMomentumArray(); - fLeading->FindLeading(fReader); - fReader->GetGenJets(fGenJets); - - if (option == 0) { // TPC with fMomentumArray - if(debug > 1) - printf("In FindJetsC() routine: find jets with fMomentumArray !!!\n"); - FindJetsC(); - } else { - if(debug > 1) printf("In FindJets() routine: find jets with fUnitArray !!!\n"); - FindJets(); - } - if (fOut) { - fOut->cd(); - } - - if (fPlots) fPlots->FillHistos(fJets); - fLeading->Reset(); - fGenJets->ClearJets(); - Reset(); - } - - // write out - if (fPlots) { - fPlots->Normalize(); - fPlots->PlotHistos(); - } - if (fOut) { - fOut->cd(); - fPlots->Write(); - fOut->Close(); - } -} - + AliJetHeader *rh = GetJetHeader(); + rh->Write(); -// -// The following methods have been added to allow for event steering from the outside -// - -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::ConnectTree(TTree* tree, TObject* data) -{ - // Connect the input file - fReader->ConnectTree(tree, data); -} - -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::WriteHeaders() -{ - // Write the Headers - TFile* f = new TFile("jets_local.root", "recreate"); - WriteRHeaderToFile(); - WriteJHeaderToFile(); - f->Close(); } -//////////////////////////////////////////////////////////////////////// +//----------------------------------------------------------------------- Bool_t AliJetFinder::ProcessEvent() { - // - // Process one event - // Charged only jets - // - - Bool_t ok = fReader->FillMomentumArray(); - if (!ok) return kFALSE; - - // Leading particles - fLeading->FindLeading(fReader); - // Jets - FindJets(); // V1 - // FindJetsC(); // V2 - - if (fPlots) fPlots->FillHistos(fJets); - fLeading->Reset(); - fGenJets->ClearJets(); - Reset(); - return kTRUE; -} - -//////////////////////////////////////////////////////////////////////// -Bool_t AliJetFinder::ProcessEvent2() -{ - // // 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;} - - // Leading particles - fLeading->FindLeading(fReader); - // Jets + // Find jets FindJets(); - - Int_t nEntRef = ref->GetEntries(); - - for(Int_t i=0; iAt(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; - - if (fPlots) fPlots->FillHistos(fJets); - fLeading->Reset(); - fGenJets->ClearJets(); Reset(); - return kTRUE; -} -//////////////////////////////////////////////////////////////////////// -void AliJetFinder::FinishRun() -{ - // Finish a run - if (fPlots) { - fPlots->Normalize(); - fPlots->PlotHistos(); - } - - if (fOut) { - fOut->cd(); - if (fPlots) { - fPlots->Write(); - } - fOut->Close(); - } } -//////////////////////////////////////////////////////////////////////// +//----------------------------------------------------------------------- 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(); + // 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(aod->FindListObject(bname)); - // how is this is reset? Cleared? + fAODEvBkg = (AliAODJetEventBackground*)(aod->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),bname))); + // how is this is reset? Cleared? -> by the UserExec!! + }