1 #ifndef ALIAODMUONREPLICATOR_H
2 #define ALIAODMUONREPLICATOR_H
4 /* Copyright(c) 1998-2013, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 #ifndef ALIDAODBRANCHREPLICATOR_H
11 # include "AliAODBranchReplicator.h"
18 // Implementation of a branch replicator
19 // to produce slim muon and dimuon aods.
21 // Author: L. Aphecetche (Subatech)
23 class AliAnalysisCuts;
29 class AliAODTracklets;
32 class AliAODMuonReplicator : public AliAODBranchReplicator
36 AliAODMuonReplicator(const char* name="AliAODMuonReplicator",
37 const char* title="Branch Replicator for muon related branches",
38 AliAnalysisCuts* trackCut=0x0,
39 AliAnalysisCuts* vertexCut=0x0,
41 Bool_t replicateHeader=kFALSE,
42 Bool_t replicateTracklets=kFALSE);
43 virtual ~AliAODMuonReplicator();
45 virtual TList* GetList() const;
47 virtual void ReplicateAndFilter(const AliAODEvent& source);
50 void FilterMC(const AliAODEvent& source);
51 void SelectParticle(Int_t i);
52 Bool_t IsParticleSelected(Int_t i);
53 void CreateLabelMap(const AliAODEvent& source);
54 Int_t GetNewLabel(Int_t i);
57 AliAnalysisCuts* fTrackCut; // decides which tracks to keep
58 mutable TClonesArray* fTracks; //! internal array of muon tracks
59 AliAnalysisCuts* fVertexCut; // decides which vertices to keep
60 mutable TClonesArray* fVertices; //! internal array of vertices
61 mutable TClonesArray* fDimuons; //! internal array of dimuons
62 mutable AliAODVZERO* fVZERO; //! internal vzero object
63 mutable AliAODTZERO* fTZERO; //! internal tzero object
64 mutable AliAODHeader* fHeader; //! internal header object
65 mutable AliAODTracklets* fTracklets; //! internal tracklets object
66 mutable AliAODZDC* fZDC; //! internal zdc object
67 mutable TList* fList; //! internal list of managed objects (fVertices and fTracks)
69 mutable TClonesArray* fMCParticles; //! internal array of MC particles
70 mutable AliAODMCHeader* fMCHeader; //! internal array of MC header
71 Int_t fMCMode; // MC filtering switch (0=none=no mc information,1=normal=simple copy,>=2=aggressive=filter out)
72 TExMap fLabelMap; //! for MC label remapping (in case of aggressive filtering)
73 TExMap fParticleSelected; //! List of selected MC particles
74 Bool_t fReplicateHeader; //! whether or not the replicate the AOD Header
75 Bool_t fReplicateTracklets; //! whether or not the replicate the AOD Tracklets
78 AliAODMuonReplicator(const AliAODMuonReplicator&);
79 AliAODMuonReplicator& operator=(const AliAODMuonReplicator&);
81 ClassDef(AliAODMuonReplicator,7) // Branch replicator for ESD to muon AOD.