4399feeab0f92b29d7b1449d51d5e905fa57a33c
[u/mrichter/AliRoot.git] / PWG3 / muon / AliAODMuonReplicator.h
1 #ifndef ALIAODMUONREPLICATOR_H
2 #define ALIAODMUONREPLICATOR_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9
10 #ifndef ALIDAODBRANCHREPLICATOR_H
11 #  include "AliAODBranchReplicator.h"
12 #endif
13
14 //
15 // Implementation of a branch replicator 
16 // to produce slim muon and dimuon aods.
17 //
18 // Author: L. Aphecetche (Subatech)
19
20 class AliAnalysisCuts;
21 class TClonesArray;
22
23 class AliAODMuonReplicator : public AliAODBranchReplicator
24 {
25 public:
26   AliAODMuonReplicator(const char* name="AliAODMuonReplicator", 
27                        const char* title="Branch Replicator for muon related branches",
28                        AliAnalysisCuts* trackCut=0x0,
29                        AliAnalysisCuts* vertexCut=0x0);
30   virtual ~AliAODMuonReplicator();
31   
32   virtual TList* GetList() const;
33   
34   virtual void ReplicateAndFilter(const AliAODEvent& source);
35   
36 private:
37   AliAnalysisCuts* fTrackCut; // decides which tracks to keep
38   mutable TClonesArray* fTracks; //! internal array of muon tracks
39   AliAnalysisCuts* fVertexCut; // decides which vertices to keep
40   mutable TClonesArray* fVertices; //! internal array of vertices
41   mutable TClonesArray* fDimuons; //! internal array of dimuons
42   mutable TList* fList; //! internal list of managed objects (fVertices and fTracks)
43   
44 private:
45   AliAODMuonReplicator(const AliAODMuonReplicator&);
46   AliAODMuonReplicator& operator=(const AliAODMuonReplicator&);
47   
48   ClassDef(AliAODMuonReplicator,2) // Branch replicator for ESD to muon AOD.
49 };
50
51 #endif