class AliAODMCHeader;
class AliAODExtension;
class AliGenEventHeader;
-
-
+class TMap;
+class AliAnalysisFilter;
class AliAODHandler : public AliVEventHandler {
void SetMCEventHandler(AliMCEventHandler* mcH) {fMCEventH = mcH;} // For internal use
void StoreMCParticles(); // Store MC particles, only to be called from AliAnalyisTaskMCParticleFilter
+ void Print(Option_t* opt="") const;
+
private:
void SetMCHeaderInfo(AliAODMCHeader *mcHeader,AliGenEventHeader *genHeader); // Utility function t catch different types of eventheaders
AliAODHandler(const AliAODHandler&); // Not implemented
AliAODHandler& operator=(const AliAODHandler&); // Not implemented
+ void PrintExtensions(const char* name, const TObjArray& array) const;
+
private:
Bool_t fIsStandard; // Flag for standard aod creation
Bool_t fFillAOD; // Flag for filling of the AOD tree at the end (all or nothing evt by evt)
// Author: Andrei Gheata, CERN
//-------------------------------------------------------------------------
+class AliAODBranchReplicator;
+
class AliAODExtension : public TNamed {
public:
kFilteredAOD = BIT(14)
};
- AliAODExtension() : TNamed(), fAODEvent(0), fTreeE(0), fFileE(0), fNtotal(0), fNpassed(0), fSelected(kFALSE) {}
+ AliAODExtension();
AliAODExtension(const char* name, const char* title, Bool_t isfilter=kFALSE);
virtual ~AliAODExtension();
void AddBranch(const char* cname, void* addobj);
void SetEvent(AliAODEvent *event);
void SetOutputFileName(const char* fname) {TNamed::SetName(fname);}
Bool_t TerminateIO();
+
+ void Print(Option_t* opt="") const;
+
+ void FilterBranch(const char* branchName, AliAODBranchReplicator* replicator=0x0);
+ void DisableReferences() { fEnableReferences=kFALSE; }
+ void EnableReferences() { fEnableReferences=kTRUE; }
+
private:
AliAODExtension(const AliAODExtension&); // Not implemented
AliAODExtension& operator=(const AliAODExtension&); // Not implemented
Int_t fNtotal; //! Number of processed events
Int_t fNpassed; //! Number of events that passed the filter
Bool_t fSelected; //! Select current event for filtered AOD's. Made false at event start.
- ClassDef(AliAODExtension, 1) // Support for extra AOD branches in a separate AOD file
+
+ TMap* fRepFiMap; // which branch(es) to filter out / and or replicate
+ TList* fRepFiList; // list of unique filter/replicator
+
+ Bool_t fEnableReferences; // whether or not to enable the TRefTable branch
+ TList* fObjectList; //! internal list of which objects to keep
+
+ ClassDef(AliAODExtension, 2) // Support for extra AOD branches in a separate AOD file
};
#endif