]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONRecoParam.cxx
from Y. Schutz
[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()
38: TObject(),
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.),
49 fMaxNormChi2MatchTrigger(0.),
50 fTrackAllTracks(kFALSE),
51 fRecoverTracks(kFALSE),
52 fMakeTrackCandidatesFast(kFALSE),
53 fComplementTracks(kFALSE),
54 fImproveTracks(kFALSE),
55 fUseSmoother(kFALSE)
56{
57 /// Constructor
58
59 // use the default parameters for low flux environment
60 SetLowFluxParam();
61}
62
63//_____________________________________________________________________________
64AliMUONRecoParam::~AliMUONRecoParam()
65{
66 /// Destructor
67}
68
69//_____________________________________________________________________________
70AliMUONRecoParam *AliMUONRecoParam::GetLowFluxParam()
71{
72 /// Return default reconstruction parameters for low flux environment
73
74 AliMUONRecoParam *param = new AliMUONRecoParam();
75 param->SetLowFluxParam();
76
77 return param;
78}
79
80//_____________________________________________________________________________
81AliMUONRecoParam *AliMUONRecoParam::GetHighFluxParam()
82{
83 /// Return default reconstruction parameters for high flux environment
84
85 AliMUONRecoParam *param = new AliMUONRecoParam();
86 param->SetHighFluxParam();
87
88 return param;
89}
90
91//_____________________________________________________________________________
92void AliMUONRecoParam::SetLowFluxParam()
93{
94 /// Set reconstruction parameters for low flux environment
95
96 fMinBendingMomentum = 3.;
97 fMaxBendingMomentum = 3000.;
98 fNonBendingVertexDispersion = 10.;
99 fBendingVertexDispersion = 10.;
100 fMaxNonBendingDistanceToTrack = 2.;
101 fMaxBendingDistanceToTrack = 2.;
102 fSigmaCutForTracking = 6.;
103 fSigmaCutForImprovement = 5.;
104 fMaxNormChi2MatchTrigger = 16.;
105 fTrackAllTracks = kTRUE;
106 fRecoverTracks = kTRUE;
107 fMakeTrackCandidatesFast = kFALSE;
108 fComplementTracks = kTRUE;
109 fImproveTracks = kTRUE;
110 fUseSmoother = kTRUE;
111
112}
113
114//_____________________________________________________________________________
115void AliMUONRecoParam::SetHighFluxParam()
116{
117 /// Set reconstruction parameters for high flux environment
118
119 fMinBendingMomentum = 3.;
120 fMaxBendingMomentum = 3000.;
121 fNonBendingVertexDispersion = 10.;
122 fBendingVertexDispersion = 10.;
123 fMaxNonBendingDistanceToTrack = 2.;
124 fMaxBendingDistanceToTrack = 2.;
125 fSigmaCutForTracking = 6.;
126 fSigmaCutForImprovement = 5.;
127 fMaxNormChi2MatchTrigger = 16.;
128 fTrackAllTracks = kTRUE;
129 fRecoverTracks = kTRUE;
130 fMakeTrackCandidatesFast = kFALSE;
131 fComplementTracks = kTRUE;
132 fImproveTracks = kTRUE;
133 fUseSmoother = kTRUE;
134
135}
136
137//_____________________________________________________________________________
138void AliMUONRecoParam::Print(Option_t *option) const
139{
140 /// print reconstruction parameters
141 /// if option = FULL then print also unused parameters
142
143 cout<<endl<<"\t------Reconstruction parameters------"<<endl;
144
145 cout<<Form("Clustering mode = %s",fClusteringMode.Data())<<endl;
146
147 cout<<Form("Tracking mode = %s",fTrackingMode.Data())<<endl;
148
149 cout<<Form("Bending momentum range = [%5.2f,%5.2f]",fMinBendingMomentum,fMaxBendingMomentum)<<endl;
150
151 if (strstr(fTrackingMode,"ORIGINAL"))
152 cout<<Form("Vertex dispertion = (%5.2f,%5.2f)",fNonBendingVertexDispersion,fBendingVertexDispersion)<<endl;
153 else if (strstr(option,"FULL"))
154 cout<<Form("Vertex dispertion (used for original tracking only) = (%5.2f,%5.2f)",fNonBendingVertexDispersion,fBendingVertexDispersion)<<endl;
155
156 cout<<Form("Maximum distance to track = (%5.2f,%5.2f)",fMaxNonBendingDistanceToTrack,fMaxBendingDistanceToTrack)<<endl;
157
158 cout<<Form("Sigma cut for tracking = %5.2f",fSigmaCutForTracking)<<endl;
159
160 if (fTrackAllTracks) cout<<"Track all the possible candidates"<<endl;
161 else cout<<"Track only the best candidates"<<endl;
162
163 if (strstr(option,"FULL")) {
164 cout<<"Make track candidates assuming linear propagation between stations 4 and 5: ";
165 if (fMakeTrackCandidatesFast) cout<<"ON"<<endl;
166 else cout<<"OFF"<<endl;
167 } else if (fMakeTrackCandidatesFast)
168 cout<<"Make track candidates assuming linear propagation between stations 4 and 5"<<endl;
169
170 if (strstr(option,"FULL")) {
171 cout<<"Try to recover tracks getting lost during tracking: ";
172 if (fRecoverTracks) cout<<"ON"<<endl;
173 else cout<<"OFF"<<endl;
174 } else if (fRecoverTracks)
175 cout<<"Try to recover tracks getting lost during tracking"<<endl;
176
177 if (strstr(option,"FULL")) {
178 cout<<"Try to complete the reconstructed tracks by adding missing clusters: ";
179 if (fComplementTracks) cout<<"ON"<<endl;
180 else cout<<"OFF"<<endl;
181 } else if (fComplementTracks)
182 cout<<"Try to complete the reconstructed tracks by adding missing clusters"<<endl;
183
184 if (strstr(option,"FULL")) {
185 cout<<"Try to improve the reconstructed tracks by removing bad clusters: ";
186 if (fImproveTracks) cout<<Form("ON (sigma cut = %5.2f)",fSigmaCutForImprovement)<<endl;
187 else cout<<"OFF"<<endl;
188 } else if (fImproveTracks)
189 cout<<Form("Try to improve the reconstructed tracks by removing bad clusters (sigma cut = %5.2f)",fSigmaCutForImprovement)<<endl;
190
191 if (strstr(option,"FULL")) {
192 cout<<"Use smoother to compute final track parameters, etc, at each cluster (used for Kalman tracking only): ";
193 if (fUseSmoother) cout<<"ON"<<endl;
194 else cout<<"OFF"<<endl;
195 } else if (fUseSmoother)
196 cout<<"Use smoother to compute final track parameters, etc, at each cluster"<<endl;
197
198 cout<<Form("Maximum normalized chi2 of tracking/trigger track matching = %5.2f",fMaxNormChi2MatchTrigger)<<endl;
199
200 cout<<"\t-------------------------------------"<<endl<<endl;
201
202}
203