]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAODMuonReplicator.h
Transition PWG3 --> PWGHF
[u/mrichter/AliRoot.git] / PWG / muon / AliAODMuonReplicator.h
CommitLineData
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 23class AliAnalysisCuts;
24class TClonesArray;
14d6fad5 25class AliAODMCHeader;
5393f2c0 26class AliAODVZERO;
26ba01d4 27
28class AliAODMuonReplicator : public AliAODBranchReplicator
29{
30public:
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 43private:
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 50private:
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 65private:
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