]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONRecoParam.cxx
Introduction of AliTRDLeastSquare
[u/mrichter/AliRoot.git] / MUON / AliMUONRecoParam.cxx
CommitLineData
3304fa09 1/**************************************************************************
2* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15
16
17//-----------------------------------------------------------------------------
18/// \class AliMUONRecoParam
19///
20/// Class with MUON reconstruction parameters
21///
22/// \author Philippe Pillot
23//-----------------------------------------------------------------------------
24
25
26
27#include "AliMUONRecoParam.h"
28
29#include "AliLog.h"
30
31#include <Riostream.h>
32
33ClassImp(AliMUONRecoParam)
34
35
36//_____________________________________________________________________________
37AliMUONRecoParam::AliMUONRecoParam()
15d30ed4 38: AliDetectorRecoParam(),
3304fa09 39 fClusteringMode("MLEM"),
40 fTrackingMode("KALMAN"),
41 fMinBendingMomentum(0.),
42 fMaxBendingMomentum(0.),
43 fNonBendingVertexDispersion(0.),
44 fBendingVertexDispersion(0.),
45 fMaxNonBendingDistanceToTrack(0.),
46 fMaxBendingDistanceToTrack(0.),
47 fSigmaCutForTracking(0.),
48 fSigmaCutForImprovement(0.),
fda59e58 49 fSigmaCutForTrigger(0.),
3304fa09 50 fMaxNormChi2MatchTrigger(0.),
0a18ba02 51 fPercentOfFullClusterInESD(10.),
38bcf0ef 52 fCombinedClusterTrackReco(kFALSE),
3304fa09 53 fTrackAllTracks(kFALSE),
54 fRecoverTracks(kFALSE),
55 fMakeTrackCandidatesFast(kFALSE),
56 fComplementTracks(kFALSE),
57 fImproveTracks(kFALSE),
0a18ba02 58 fUseSmoother(kFALSE),
de98fdc9 59 fSaveFullClusterInESD(kTRUE),
60 fCalibrationMode("NOGAIN")
3304fa09 61{
62 /// Constructor
15d30ed4 63 SetNameTitle("MUON","MUON");
3304fa09 64
65 // use the default parameters for low flux environment
66 SetLowFluxParam();
67}
68
69//_____________________________________________________________________________
70AliMUONRecoParam::~AliMUONRecoParam()
71{
72 /// Destructor
73}
74
75//_____________________________________________________________________________
76AliMUONRecoParam *AliMUONRecoParam::GetLowFluxParam()
77{
78 /// Return default reconstruction parameters for low flux environment
79
80 AliMUONRecoParam *param = new AliMUONRecoParam();
81 param->SetLowFluxParam();
82
83 return param;
84}
85
86//_____________________________________________________________________________
87AliMUONRecoParam *AliMUONRecoParam::GetHighFluxParam()
88{
89 /// Return default reconstruction parameters for high flux environment
90
91 AliMUONRecoParam *param = new AliMUONRecoParam();
92 param->SetHighFluxParam();
93
94 return param;
95}
96
97//_____________________________________________________________________________
98void AliMUONRecoParam::SetLowFluxParam()
99{
100 /// Set reconstruction parameters for low flux environment
101
96ebe67e 102 fMinBendingMomentum = 0.5;
3304fa09 103 fMaxBendingMomentum = 3000.;
104 fNonBendingVertexDispersion = 10.;
105 fBendingVertexDispersion = 10.;
106 fMaxNonBendingDistanceToTrack = 2.;
107 fMaxBendingDistanceToTrack = 2.;
108 fSigmaCutForTracking = 6.;
109 fSigmaCutForImprovement = 5.;
fda59e58 110 fSigmaCutForTrigger = 8.;
3304fa09 111 fMaxNormChi2MatchTrigger = 16.;
112 fTrackAllTracks = kTRUE;
113 fRecoverTracks = kTRUE;
114 fMakeTrackCandidatesFast = kFALSE;
115 fComplementTracks = kTRUE;
116 fImproveTracks = kTRUE;
117 fUseSmoother = kTRUE;
118
119}
120
121//_____________________________________________________________________________
122void AliMUONRecoParam::SetHighFluxParam()
123{
124 /// Set reconstruction parameters for high flux environment
125
96ebe67e 126 fMinBendingMomentum = 0.5;
3304fa09 127 fMaxBendingMomentum = 3000.;
128 fNonBendingVertexDispersion = 10.;
129 fBendingVertexDispersion = 10.;
130 fMaxNonBendingDistanceToTrack = 2.;
131 fMaxBendingDistanceToTrack = 2.;
132 fSigmaCutForTracking = 6.;
133 fSigmaCutForImprovement = 5.;
fda59e58 134 fSigmaCutForTrigger = 8.;
3304fa09 135 fMaxNormChi2MatchTrigger = 16.;
136 fTrackAllTracks = kTRUE;
137 fRecoverTracks = kTRUE;
138 fMakeTrackCandidatesFast = kFALSE;
139 fComplementTracks = kTRUE;
140 fImproveTracks = kTRUE;
141 fUseSmoother = kTRUE;
142
143}
144
145//_____________________________________________________________________________
146void AliMUONRecoParam::Print(Option_t *option) const
147{
148 /// print reconstruction parameters
149 /// if option = FULL then print also unused parameters
150
151 cout<<endl<<"\t------Reconstruction parameters------"<<endl;
152
de98fdc9 153 cout<<Form("Calibration mode = %s",fCalibrationMode.Data())<<endl;
3304fa09 154 cout<<Form("Clustering mode = %s",fClusteringMode.Data())<<endl;
155
156 cout<<Form("Tracking mode = %s",fTrackingMode.Data())<<endl;
157
15d30ed4 158 if (fCombinedClusterTrackReco) cout<<"Combined cluster/track reconstruction: ON"<<endl;
159 else cout<<"Combined cluster/track reconstruction: OFF"<<endl;
38bcf0ef 160
0a18ba02 161 if (fSaveFullClusterInESD) cout<<Form("Save all cluster info in ESD for %5.2f %% of events",fPercentOfFullClusterInESD)<<endl;
162 else cout<<"Save partial cluster info in ESD"<<endl;
163
3304fa09 164 cout<<Form("Bending momentum range = [%5.2f,%5.2f]",fMinBendingMomentum,fMaxBendingMomentum)<<endl;
165
166 if (strstr(fTrackingMode,"ORIGINAL"))
167 cout<<Form("Vertex dispertion = (%5.2f,%5.2f)",fNonBendingVertexDispersion,fBendingVertexDispersion)<<endl;
168 else if (strstr(option,"FULL"))
169 cout<<Form("Vertex dispertion (used for original tracking only) = (%5.2f,%5.2f)",fNonBendingVertexDispersion,fBendingVertexDispersion)<<endl;
170
171 cout<<Form("Maximum distance to track = (%5.2f,%5.2f)",fMaxNonBendingDistanceToTrack,fMaxBendingDistanceToTrack)<<endl;
172
173 cout<<Form("Sigma cut for tracking = %5.2f",fSigmaCutForTracking)<<endl;
fda59e58 174
175 cout<<Form("Sigma cut for trigger hit pattern = %5.2f",fSigmaCutForTrigger)<<endl;
3304fa09 176
177 if (fTrackAllTracks) cout<<"Track all the possible candidates"<<endl;
178 else cout<<"Track only the best candidates"<<endl;
179
180 if (strstr(option,"FULL")) {
181 cout<<"Make track candidates assuming linear propagation between stations 4 and 5: ";
182 if (fMakeTrackCandidatesFast) cout<<"ON"<<endl;
183 else cout<<"OFF"<<endl;
184 } else if (fMakeTrackCandidatesFast)
185 cout<<"Make track candidates assuming linear propagation between stations 4 and 5"<<endl;
186
187 if (strstr(option,"FULL")) {
188 cout<<"Try to recover tracks getting lost during tracking: ";
189 if (fRecoverTracks) cout<<"ON"<<endl;
190 else cout<<"OFF"<<endl;
191 } else if (fRecoverTracks)
192 cout<<"Try to recover tracks getting lost during tracking"<<endl;
193
194 if (strstr(option,"FULL")) {
195 cout<<"Try to complete the reconstructed tracks by adding missing clusters: ";
196 if (fComplementTracks) cout<<"ON"<<endl;
197 else cout<<"OFF"<<endl;
198 } else if (fComplementTracks)
199 cout<<"Try to complete the reconstructed tracks by adding missing clusters"<<endl;
200
201 if (strstr(option,"FULL")) {
202 cout<<"Try to improve the reconstructed tracks by removing bad clusters: ";
203 if (fImproveTracks) cout<<Form("ON (sigma cut = %5.2f)",fSigmaCutForImprovement)<<endl;
204 else cout<<"OFF"<<endl;
205 } else if (fImproveTracks)
206 cout<<Form("Try to improve the reconstructed tracks by removing bad clusters (sigma cut = %5.2f)",fSigmaCutForImprovement)<<endl;
207
208 if (strstr(option,"FULL")) {
209 cout<<"Use smoother to compute final track parameters, etc, at each cluster (used for Kalman tracking only): ";
210 if (fUseSmoother) cout<<"ON"<<endl;
211 else cout<<"OFF"<<endl;
212 } else if (fUseSmoother)
213 cout<<"Use smoother to compute final track parameters, etc, at each cluster"<<endl;
214
215 cout<<Form("Maximum normalized chi2 of tracking/trigger track matching = %5.2f",fMaxNormChi2MatchTrigger)<<endl;
216
217 cout<<"\t-------------------------------------"<<endl<<endl;
218
219}
220