AliPhysics  vAN-20150822 (d56cf94)
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
AliAnalysisTaskMuonTrackingEff.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKMUONTRACKINGEFF_H
2 #define ALIANALYSISTASKMUONTRACKINGEFF_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 
11 //Author: Nicolas LE BRIS - SUBATECH Nantes
12 
13 #include "AliAnalysisTaskSE.h"
14 #include "AliMuonTrackCuts.h"
15 #include "TString.h"
16 
17 class TList;
18 class TObjArray;
19 class AliCounterCollection;
20 class AliMUONGeometryTransformer;
21 class AliMUONTrack;
22 class AliMUONTrackParam;
23 class AliMpArea;
24 class AliMpPad;
25 class AliMUON2DMap;
26 
27 
28 class AliAnalysisTaskMuonTrackingEff : public AliAnalysisTaskSE
29 {
30 
31  public:
32 
34  AliAnalysisTaskMuonTrackingEff(TString name);
36 
38  void SetDefaultStorage(const char* ocdbPath) { fOCDBpath = ocdbPath; }
39 
41  void SetAlignStorage(const char* ocdbPath) { fAlignOCDBpath = ocdbPath; }
42 
44  void SetRecoParamStorage(const char* ocdbPath) { fRecoParamOCDBpath = ocdbPath; }
45 
47  void SelectCentrality(Double_t min, Double_t max) {fCentMin = min; fCentMax = max;}
48 
49  // set standard cuts to select tracks to be considered
50  void SetMuonTrackCuts(AliMuonTrackCuts &trackCuts);
51 
53  void SetMuonPtCut(Double_t cut) {fPtCut = cut;}
54 
56  void UseMCLabel(Bool_t flag = kTRUE) { fUseMCLabel = flag; }
57 
59  void EnableDisplay(Bool_t flag = kTRUE) { fEnableDisplay = flag; }
60 
61  // Implementation of interface methods
62  virtual void UserCreateOutputObjects();
63  virtual void UserExec(Option_t *);
64  virtual void NotifyRun();
65  virtual void Terminate(Option_t *);
66 
67 
68  private:
69 
74 
75  // Identify clusters/chambers that can be removed from the track
76  Bool_t TagRemovableClusters(AliMUONTrack &track, Bool_t removableChambers[10]);
77 
78  // Find which detection elements should have been hit and record the missing clusters
79  void FindAndRecordMissingClusters(AliMUONTrackParam &param, Int_t chamber, Double_t trackInfo[6]);
80 
81  // Find the intersection point between the track (assuming straight line) and the DE in the global frame
82  void Intersect(AliMUONTrackParam &param, Int_t deId, Double_t p[3]);
83 
84  // Check whether (global) area overlaps with the given DE
85  Bool_t OverlapDE(AliMpArea &area, Int_t deId);
86 
87  // Register the cluster in the given stores
88  void RecordCluster(Int_t chamber, Int_t deId, AliMpPad pad[2], Double_t trackInfo[6],
89  TString clusterKey, TList *chamberHistList, Bool_t recordChamber);
90 
92  Bool_t FindPads(Int_t deId, Double_t pos[3], AliMpPad pad[2]);
93 
94 
95 private:
96 
97  static const Int_t fgkNofDE[11];
98  static const Int_t fgkNofBusPath;
99  static const Int_t fgkNofManu;
100 
101  Bool_t fOCDBLoaded;
102  TString fOCDBpath;
103  TString fAlignOCDBpath;
105  Double_t fCentMin;
106  Double_t fCentMax;
107  AliMuonTrackCuts* fMuonTrackCuts;
108  Double_t fPtCut;
109  Bool_t fUseMCLabel;
110  Bool_t fEnableDisplay;
111 
112  AliMUONGeometryTransformer *fTransformer;
113 
114  TObjArray *fDEPlanes;
115 
116  AliCounterCollection* fClusters;
120  TList* fExtraHistList;
121 
122 
123  ClassDef(AliAnalysisTaskMuonTrackingEff, 5)
124 
125 };
126 
127 
128 //________________________________________________________________________
129 inline void AliAnalysisTaskMuonTrackingEff::SetMuonTrackCuts(AliMuonTrackCuts &trackCuts)
130 {
132  delete fMuonTrackCuts;
133  fMuonTrackCuts = new AliMuonTrackCuts(trackCuts);
134 }
135 
136 #endif
137 
Bool_t OverlapDE(AliMpArea &area, Int_t deId)
void SetAlignStorage(const char *ocdbPath)
Set the OCDB path to the alignment file used in the reco (if not set use default storage) ...
void SetRecoParamStorage(const char *ocdbPath)
Set the OCDB path to the recoParam file used in the reco (if not set use default storage) ...
AliAnalysisTaskMuonTrackingEff & operator=(const AliAnalysisTaskMuonTrackingEff &rhs)
Not implemented.
Double_t fCentMin
select centrality > fCentMin
void SelectCentrality(Double_t min, Double_t max)
Select tracks in the given centrality range.
TList * fExtraHistList
List of extra histograms.
TList * fChamberTTHistList
List of histograms of the tracks which have passed through the chambers.
void SetMuonPtCut(Double_t cut)
set the muon low pT cut
void SetDefaultStorage(const char *ocdbPath)
Set location of the default OCDB storage (if not set use "raw://")
Bool_t TagRemovableClusters(AliMUONTrack &track, Bool_t removableChambers[10])
TString fRecoParamOCDBpath
OCDB path to the recoParam file.
void SetMuonTrackCuts(AliMuonTrackCuts &trackCuts)
Bool_t fOCDBLoaded
Determine if the OCDB and =geometry have been loaded.
Double_t fCentMax
select centrality <= fCentMax
tracking chamber efficiency from ESD data
void RecordCluster(Int_t chamber, Int_t deId, AliMpPad pad[2], Double_t trackInfo[6], TString clusterKey, TList *chamberHistList, Bool_t recordChamber)
Bool_t fEnableDisplay
enable the display in the terminate
TList * fChamberTDHistList
List of histograms of the tracks detected in the chambers.
Bool_t FindPads(Int_t deId, Double_t pos[3], AliMpPad pad[2])
Look for pads at the cluster's location.
static const Int_t fgkNofDE[11]
Total number of detection elements in each chamber.
AliMUONGeometryTransformer * fTransformer
Transformer object.
void Intersect(AliMUONTrackParam &param, Int_t deId, Double_t p[3])
void UseMCLabel(Bool_t flag=kTRUE)
set the flag to select tracks using MC label
Bool_t fUseMCLabel
select tracks using MC label
void EnableDisplay(Bool_t flag=kTRUE)
enable the display in the terminate
static const Int_t fgkNofManu
Total number of manus.
void FindAndRecordMissingClusters(AliMUONTrackParam &param, Int_t chamber, Double_t trackInfo[6])
AliCounterCollection * fClusters
detected (all), accepted (for efficiency calculation) and expected clusters
static const Int_t fgkNofBusPath
Total number of bus patches.
AliMuonTrackCuts * fMuonTrackCuts
cuts to select tracks to be considered
TList * fChamberSDHistList
List of histograms of the tracks only detected by one chamber of the station.
TObjArray * fDEPlanes
vectors (x0, y0, z0, a, b, c) defining the plane of each DE in the global frame
TString fAlignOCDBpath
OCDB path to the alignment file.