]>
Commit | Line | Data |
---|---|---|
26ba01d4 | 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 | |
14d6fad5 | 13 | #ifndef ROOT_TExMap |
14 | # include "TExMap.h" | |
15 | #endif | |
26ba01d4 | 16 | |
3d270be0 | 17 | // |
18 | // Implementation of a branch replicator | |
19 | // to produce slim muon and dimuon aods. | |
20 | // | |
21 | // Author: L. Aphecetche (Subatech) | |
22 | ||
26ba01d4 | 23 | class AliAnalysisCuts; |
24 | class TClonesArray; | |
14d6fad5 | 25 | class AliAODMCHeader; |
5393f2c0 | 26 | class AliAODVZERO; |
26ba01d4 | 27 | |
28 | class AliAODMuonReplicator : public AliAODBranchReplicator | |
29 | { | |
30 | public: | |
14d6fad5 | 31 | |
26ba01d4 | 32 | AliAODMuonReplicator(const char* name="AliAODMuonReplicator", |
33 | const char* title="Branch Replicator for muon related branches", | |
34 | AliAnalysisCuts* trackCut=0x0, | |
14d6fad5 | 35 | AliAnalysisCuts* vertexCut=0x0, |
36 | Int_t mcMode=0); | |
26ba01d4 | 37 | virtual ~AliAODMuonReplicator(); |
38 | ||
39 | virtual TList* GetList() const; | |
40 | ||
41 | virtual void ReplicateAndFilter(const AliAODEvent& source); | |
42 | ||
14d6fad5 | 43 | private: |
44 | void FilterMC(const AliAODEvent& source); | |
45 | void SelectParticle(Int_t i); | |
46 | Bool_t IsParticleSelected(Int_t i); | |
47 | void CreateLabelMap(const AliAODEvent& source); | |
48 | Int_t GetNewLabel(Int_t i); | |
49 | ||
3d270be0 | 50 | private: |
26ba01d4 | 51 | AliAnalysisCuts* fTrackCut; // decides which tracks to keep |
52 | mutable TClonesArray* fTracks; //! internal array of muon tracks | |
53 | AliAnalysisCuts* fVertexCut; // decides which vertices to keep | |
54 | mutable TClonesArray* fVertices; //! internal array of vertices | |
3d270be0 | 55 | mutable TClonesArray* fDimuons; //! internal array of dimuons |
5393f2c0 | 56 | mutable AliAODVZERO* fVZERO; //! internal vzero object |
26ba01d4 | 57 | mutable TList* fList; //! internal list of managed objects (fVertices and fTracks) |
58 | ||
14d6fad5 | 59 | mutable TClonesArray* fMCParticles; //! internal array of MC particles |
60 | mutable AliAODMCHeader* fMCHeader; //! internal array of MC header | |
61 | Int_t fMCMode; // MC filtering switch (0=none=no mc information,1=normal=simple copy,>=2=aggressive=filter out) | |
62 | TExMap fLabelMap; //! for MC label remapping (in case of aggressive filtering) | |
63 | TExMap fParticleSelected; //! List of selected MC particles | |
64 | ||
26ba01d4 | 65 | private: |
66 | AliAODMuonReplicator(const AliAODMuonReplicator&); | |
67 | AliAODMuonReplicator& operator=(const AliAODMuonReplicator&); | |
68 | ||
5393f2c0 | 69 | ClassDef(AliAODMuonReplicator,4) // Branch replicator for ESD to muon AOD. |
26ba01d4 | 70 | }; |
71 | ||
72 | #endif |