From e010701216c076c1b17d1f9ac7d0e5a47e000fea Mon Sep 17 00:00:00 2001 From: morsch Date: Tue, 30 Mar 2010 16:30:59 +0000 Subject: [PATCH] - delete mcparticles in FinishEvent avoids error messages related to references --- STEER/AliAODHandler.cxx | 15 ++++++++------- STEER/AliAODHandler.h | 7 +++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/STEER/AliAODHandler.cxx b/STEER/AliAODHandler.cxx index 4a8a9687276..25d4584016e 100644 --- a/STEER/AliAODHandler.cxx +++ b/STEER/AliAODHandler.cxx @@ -57,6 +57,7 @@ AliAODHandler::AliAODHandler() : fNeedsTracksBranchReplication(kFALSE), fNeedsVerticesBranchReplication(kFALSE), fNeedsV0sBranchReplication(kFALSE), + fNeedsCascadesBranchReplication(kFALSE), fNeedsTrackletsBranchReplication(kFALSE), fNeedsPMDClustersBranchReplication(kFALSE), fNeedsJetsBranchReplication(kFALSE), @@ -86,6 +87,7 @@ AliAODHandler::AliAODHandler(const char* name, const char* title): fNeedsTracksBranchReplication(kFALSE), fNeedsVerticesBranchReplication(kFALSE), fNeedsV0sBranchReplication(kFALSE), + fNeedsCascadesBranchReplication(kFALSE), fNeedsTrackletsBranchReplication(kFALSE), fNeedsPMDClustersBranchReplication(kFALSE), fNeedsJetsBranchReplication(kFALSE), @@ -127,6 +129,7 @@ Bool_t AliAODHandler::Init(Option_t* opt) // Initialize IO // // Create the AODevent object + Bool_t createStdAOD = fIsStandard || fFillAOD; if(!fAODEvent && createStdAOD){ fAODEvent = new AliAODEvent(); @@ -190,7 +193,6 @@ void AliAODHandler::StoreMCParticles(){ if (!fAODEvent) return; TClonesArray *mcarray = (TClonesArray*)fAODEvent->FindListObject(AliAODMCParticle::StdBranchName()); if(!mcarray)return; - mcarray->Delete(); AliAODMCHeader *mcHeader = (AliAODMCHeader*)fAODEvent->FindListObject(AliAODMCHeader::StdBranchName()); if(!mcHeader)return; @@ -394,7 +396,7 @@ Bool_t AliAODHandler::FinishEvent() // Fill data structures if(fFillAOD && fFillAODRun && fAODEvent){ fAODEvent->MakeEntriesReferencable(); - // StoreMCParticles(); + fTreeA->BranchRef(); FillTree(); } if (fFillAODRun) { @@ -412,6 +414,9 @@ Bool_t AliAODHandler::FinishEvent() } } if (fIsStandard) fAODEvent->ResetStd(); + TClonesArray *mcarray = (TClonesArray*)fAODEvent->FindListObject(AliAODMCParticle::StdBranchName()); + if(mcarray) mcarray->Delete(); + // Reset AOD replication flag fAODIsReplicated = kFALSE; return kTRUE; @@ -461,7 +466,6 @@ void AliAODHandler::CreateTree(Int_t flag) // Creates the AOD Tree fTreeA = new TTree("aodTree", "AliAOD tree"); fTreeA->Branch(fAODEvent->GetList()); - fTreeA->BranchRef(); if (flag == 0) fTreeA->SetDirectory(0); } @@ -470,7 +474,7 @@ void AliAODHandler::FillTree() { // Fill the AOD Tree - fTreeA->Fill(); + fTreeA->Fill(); } //______________________________________________________________________________ @@ -510,7 +514,6 @@ void AliAODHandler::AddBranch(const char* cname, void* addobj, const char* filen fTreeA->Bronch(obj->GetName(), cname, fAODEvent->GetList()->GetObjectRef(obj), kBufsize, kSplitlevel - 1); - // fTreeA->Branch(obj->GetName(), cname, addobj); } owd->cd(); } @@ -683,10 +686,8 @@ void AliAODExtension::AddBranch(const char* cname, void* addobj) if (!fTreeE->FindBranch(obj->GetName())) { // Do the same as if we book via // TTree::Branch(TCollection*) - fTreeE->Bronch(obj->GetName(), cname, fAODEvent->GetList()->GetObjectRef(obj), kBufsize, kSplitlevel - 1); - // fTreeA->Branch(obj->GetName(), cname, addobj); } owd->cd(); } diff --git a/STEER/AliAODHandler.h b/STEER/AliAODHandler.h index 80a992a994f..80d2f842c1e 100644 --- a/STEER/AliAODHandler.h +++ b/STEER/AliAODHandler.h @@ -33,7 +33,7 @@ class AliAODHandler : public AliVEventHandler { virtual const char* GetOutputFileName(); virtual Bool_t Init(Option_t* option); virtual Bool_t Init(TTree* /*tree*/, Option_t* /*option*/) {return kTRUE;} - virtual Bool_t BeginEvent(Long64_t /*entry*/){return kTRUE;} + virtual Bool_t BeginEvent(Long64_t /*entry*/) {return kTRUE;} virtual Bool_t Notify() { return AliVEventHandler::Notify(); }; virtual Bool_t Notify(const char * /* path */) {return kTRUE;} virtual Bool_t FinishEvent(); @@ -47,6 +47,7 @@ class AliAODHandler : public AliVEventHandler { virtual void SetNeedsTracksBranchReplication() {fNeedsTracksBranchReplication = kTRUE;} virtual void SetNeedsVerticesBranchReplication() {fNeedsVerticesBranchReplication = kTRUE;} virtual void SetNeedsV0sBranchReplication() {fNeedsV0sBranchReplication = kTRUE;} + virtual void SetNeedsCascadesBranchReplication() {fNeedsCascadesBranchReplication = kTRUE;} virtual void SetNeedsTrackletsBranchReplication() {fNeedsTrackletsBranchReplication = kTRUE;} virtual void SetNeedsPMDClustersBranchReplication() {fNeedsPMDClustersBranchReplication = kTRUE;} virtual void SetNeedsJetsBranchReplication() {fNeedsJetsBranchReplication = kTRUE;} @@ -74,6 +75,7 @@ class AliAODHandler : public AliVEventHandler { Bool_t NeedsTracksBranchReplication() const {return fNeedsTracksBranchReplication;} Bool_t NeedsVerticesBranchReplication() const {return fNeedsVerticesBranchReplication;} Bool_t NeedsV0sBranchReplication() const {return fNeedsV0sBranchReplication;} + Bool_t NeedsCascadesBranchReplication() const {return fNeedsCascadesBranchReplication;} Bool_t NeedsTrackletsBranchReplication() const {return fNeedsTrackletsBranchReplication;} Bool_t NeedsPMDClustersBranchReplication() const {return fNeedsPMDClustersBranchReplication;} Bool_t NeedsJetsBranchReplication() const {return fNeedsJetsBranchReplication;} @@ -99,6 +101,7 @@ class AliAODHandler : public AliVEventHandler { Bool_t fNeedsTracksBranchReplication; // Flag for tracks replication Bool_t fNeedsVerticesBranchReplication; // Flag for vertices replication Bool_t fNeedsV0sBranchReplication; // Flag for V0s replication + Bool_t fNeedsCascadesBranchReplication; // Flag for Cascade replication Bool_t fNeedsTrackletsBranchReplication; // Flag for Tracklets replication Bool_t fNeedsPMDClustersBranchReplication; // Flag for PMDClusters replication Bool_t fNeedsJetsBranchReplication; // Flag for Jets replication @@ -113,7 +116,7 @@ class AliAODHandler : public AliVEventHandler { TFile *fFileA; //! Output file TString fFileName; // Output file name TObjArray *fExtensions; // List of extensions - TObjArray *fFilters; // List of filtered AOD's + TObjArray *fFilters; // List of filtered AOD's ClassDef(AliAODHandler, 6) }; -- 2.43.0