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