]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muondep/AliAnalysisTaskESDMCLabelAddition.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muondep / AliAnalysisTaskESDMCLabelAddition.h
1 #ifndef ALIANALYSISTASKESDMCLABELADDITION_H
2 #define ALIANALYSISTASKESDMCLABELADDITION_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 #include <TString.h>
10 #include "AliAnalysisTaskSE.h"
11
12 class AliMUONTrack;
13 class AliMUONVTrackStore;
14
15 class AliAnalysisTaskESDMCLabelAddition : public AliAnalysisTaskSE
16 {
17   
18 public:
19   AliAnalysisTaskESDMCLabelAddition();
20   AliAnalysisTaskESDMCLabelAddition(const char* name);
21   virtual ~AliAnalysisTaskESDMCLabelAddition() {;}
22   
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);
28   
29   /// Set location of the default OCDB storage (if not set use "raw://")
30   void SetDefaultStorage(const char* ocdbPath) { fDefaultStorage = ocdbPath; }
31   
32   /// Set the OCDB path to the alignment file used in the reco (if not set use default storage)
33   void SetAlignStorage(const char* ocdbPath) { fAlignOCDBpath = ocdbPath; }
34   
35   /// Set the OCDB path to the recoParam file used in the reco (if not set use default storage)
36   void SetRecoParamStorage(const char* ocdbPath) { fRecoParamOCDBpath = ocdbPath; }
37   
38   /// Set the sigma cut to associate clusters with TrackRefs by position (instead of using recoParam)
39   void SetExternalTrkSigmaCut(Double_t cut) { fExternalTrkSigmaCut = cut; }
40   
41   /// Set the sigma cut to associate trigger to triggerable track by position (instead of using recoParam)
42   void SetExternalTrgSigmaCut(Double_t cut) { fExternalTrgSigmaCut = cut; }
43   
44   /// Set the flag to consider decays as fake tracks or not
45   void DecayAsFake(Bool_t flag = kTRUE) { fDecayAsFake = flag; }
46   
47   
48 private:
49   
50   AliAnalysisTaskESDMCLabelAddition(const AliAnalysisTaskESDMCLabelAddition&);
51   AliAnalysisTaskESDMCLabelAddition& operator=(const AliAnalysisTaskESDMCLabelAddition&);
52   
53   // Check whether this combination of clusters correspond to a decaying particle or not
54   Int_t IsDecay(Int_t nClusters, Int_t *chId, Int_t *labels, Bool_t &isReconstructible, Int_t &lastCh) const;
55   
56   // Try to match clusters between track and trackRef and add the corresponding MC labels to the arrays
57   void AddCompatibleClusters(const AliMUONTrack &track, const AliMUONTrack &trackRef,
58                              TArrayI *labels, Int_t *nLabels) const;
59   
60   // Check whether this track correspond to a decaying particle by using cluster MC labels
61   Int_t IsDecayByLabel(const AliMUONTrack &track, Bool_t &isReconstructible, Int_t &lastCh) const;
62   
63   // Check whether this track correspond to a decaying particle by comparing clusters position
64   Int_t IsDecayByPosition(const AliMUONTrack &track, const AliMUONVTrackStore &trackRefStore,
65                           Bool_t &isReconstructible, Int_t &lastCh) const;
66   
67   TString  fDefaultStorage;       ///< location of the default OCDB storage
68   TString  fAlignOCDBpath;        ///< OCDB path to the alignment file
69   TString  fRecoParamOCDBpath;    ///< OCDB path to the recoParam file
70   UInt_t   fRequestedStationMask; //!< mask of requested stations
71   Bool_t   fRequest2ChInSameSt45; //!< 2 fired chambers requested in the same station (4 or 5) or not
72   Double_t fExternalTrkSigmaCut;  ///< sigma cut to associate clusters with TrackRefs (instead of using recoParam)
73   Double_t fSigmaCut;             //!< sigma cut to associate clusters with TrackRefs
74   Double_t fExternalTrgSigmaCut;  ///< sigma cut to associate trigger to triggerable track (instead of using recoParam)
75   Double_t fSigmaCutTrig;         //!< sigma cut to associate trigger to triggerable track
76   Bool_t   fDecayAsFake;          ///< consider decays as fake tracks or not
77   
78   ClassDef(AliAnalysisTaskESDMCLabelAddition, 5); // Analysis task for standard ESD filtering
79   
80 };
81
82 #endif
83