1 #ifndef ALIANALYSISTASKESDMCLABELADDITION_H
2 #define ALIANALYSISTASKESDMCLABELADDITION_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 #include "AliAnalysisTaskSE.h"
13 class AliMUONVTrackStore;
15 class AliAnalysisTaskESDMCLabelAddition : public AliAnalysisTaskSE
19 AliAnalysisTaskESDMCLabelAddition();
20 AliAnalysisTaskESDMCLabelAddition(const char* name);
21 virtual ~AliAnalysisTaskESDMCLabelAddition() {;}
23 // Implementation of interface methods
24 virtual void UserCreateOutputObjects();
25 virtual void NotifyRun();
26 virtual void UserExec(Option_t *option);
27 virtual void Terminate(Option_t *option);
29 /// Set location of the default OCDB storage (if not set use "raw://")
30 void SetDefaultStorage(const char* ocdbPath) { fDefaultStorage = ocdbPath; }
32 /// Set the sigma cut to associate clusters with TrackRefs by position (instead of using recoParam)
33 void SetExternalTrkSigmaCut(Double_t cut) { fExternalTrkSigmaCut = cut; }
35 /// Set the sigma cut to associate trigger to triggerable track by position (instead of using recoParam)
36 void SetExternalTrgSigmaCut(Double_t cut) { fExternalTrgSigmaCut = cut; }
41 AliAnalysisTaskESDMCLabelAddition(const AliAnalysisTaskESDMCLabelAddition&);
42 AliAnalysisTaskESDMCLabelAddition& operator=(const AliAnalysisTaskESDMCLabelAddition&);
44 // Check whether this combination of clusters correspond to a decaying particle or not
45 Int_t IsDecay(Int_t nClusters, Int_t *chId, Int_t *labels, Bool_t &isReconstructible, Int_t &lastCh) const;
47 // Try to match clusters between track and trackRef and add the corresponding MC labels to the arrays
48 void AddCompatibleClusters(const AliMUONTrack &track, const AliMUONTrack &trackRef,
49 TArrayI *labels, Int_t *nLabels) const;
51 // Check whether this track correspond to a decaying particle by using cluster MC labels
52 Int_t IsDecayByLabel(const AliMUONTrack &track, Bool_t &isReconstructible, Int_t &lastCh) const;
54 // Check whether this track correspond to a decaying particle by comparing clusters position
55 Int_t IsDecayByPosition(const AliMUONTrack &track, const AliMUONVTrackStore &trackRefStore,
56 Bool_t &isReconstructible, Int_t &lastCh) const;
58 TString fDefaultStorage; ///< location of the default OCDB storage
59 UInt_t fRequestedStationMask; //!< mask of requested stations
60 Bool_t fRequest2ChInSameSt45; //!< 2 fired chambers requested in the same station (4 or 5) or not
61 Double_t fExternalTrkSigmaCut; ///< sigma cut to associate clusters with TrackRefs (instead of using recoParam)
62 Double_t fSigmaCut; //!< sigma cut to associate clusters with TrackRefs
63 Double_t fExternalTrgSigmaCut; ///< sigma cut to associate trigger to triggerable track (instead of using recoParam)
64 Double_t fSigmaCutTrig; //!< sigma cut to associate trigger to triggerable track
66 ClassDef(AliAnalysisTaskESDMCLabelAddition, 3); // Analysis task for standard ESD filtering