]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONRecoParam.cxx
Update of the "data cleaning" part of the reconstruction.
[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
bf4d93eb 16// $Id$
3304fa09 17
18//-----------------------------------------------------------------------------
19/// \class AliMUONRecoParam
20///
21/// Class with MUON reconstruction parameters
22///
23/// \author Philippe Pillot
24//-----------------------------------------------------------------------------
25
26
27
28#include "AliMUONRecoParam.h"
ad3c6eda 29#include "AliMUONPadStatusMaker.h"
3304fa09 30
ad3c6eda 31#include "AliRecoParam.h"
3304fa09 32#include "AliLog.h"
33
34#include <Riostream.h>
35
36ClassImp(AliMUONRecoParam)
37
38
39//_____________________________________________________________________________
40AliMUONRecoParam::AliMUONRecoParam()
15d30ed4 41: AliDetectorRecoParam(),
3304fa09 42 fClusteringMode("MLEM"),
43 fTrackingMode("KALMAN"),
44 fMinBendingMomentum(0.),
45 fMaxBendingMomentum(0.),
9bf6860b 46 fMaxNonBendingSlope(0.),
9f093251 47 fMaxBendingSlope(0.),
3304fa09 48 fNonBendingVertexDispersion(0.),
49 fBendingVertexDispersion(0.),
50 fMaxNonBendingDistanceToTrack(0.),
51 fMaxBendingDistanceToTrack(0.),
52 fSigmaCutForTracking(0.),
53 fSigmaCutForImprovement(0.),
fda59e58 54 fSigmaCutForTrigger(0.),
b5270f21 55 fStripCutForTrigger(0.),
56 fMaxStripAreaForTrigger(0.),
3304fa09 57 fMaxNormChi2MatchTrigger(0.),
0a18ba02 58 fPercentOfFullClusterInESD(10.),
38bcf0ef 59 fCombinedClusterTrackReco(kFALSE),
3304fa09 60 fTrackAllTracks(kFALSE),
61 fRecoverTracks(kFALSE),
62 fMakeTrackCandidatesFast(kFALSE),
9bf6860b 63 fMakeMoreTrackCandidates(kFALSE),
3304fa09 64 fComplementTracks(kFALSE),
65 fImproveTracks(kFALSE),
0a18ba02 66 fUseSmoother(kFALSE),
de98fdc9 67 fSaveFullClusterInESD(kTRUE),
9bf6860b 68 fCalibrationMode("NOGAIN"),
004a9ccd 69 fBypassSt45(0),
170f4046 70 fPadGoodnessMask(0),
c59f70b9 71 fChargeSigmaCut(4.0),
89c8d66d 72 fRemoveConnectedTracksInSt12(kFALSE),
73 fMaxTriggerTracks(0),
6b191dea 74 fMaxTrackCandidates(0),
75 fSelectTrackOnSlope(kFALSE)
3304fa09 76{
77 /// Constructor
78
ad3c6eda 79 SetNameTitle("Dummy","Dummy");
80 SetDefaultLimits();
3304fa09 81}
82
83//_____________________________________________________________________________
84AliMUONRecoParam::~AliMUONRecoParam()
85{
86 /// Destructor
87}
88
004a9ccd 89//_____________________________________________________________________________
90void
91AliMUONRecoParam::BypassSt45(Bool_t st4, Bool_t st5)
92{
93 /// Set the bypass status
94
95 if ( st4 && st5 ) fBypassSt45 = 45;
96 else if ( st4 ) fBypassSt45 = 4;
97 else if ( st5 ) fBypassSt45 = 5;
98 else fBypassSt45 = 0;
99}
100
9bf6860b 101//_____________________________________________________________________________
102Option_t*
103AliMUONRecoParam::GetCalibrationMode() const
104{
105 /// Return the calibration mode. Can be :
106 /// NOGAIN : only do pedestal subtraction
107 /// GAIN : do pedestal subtraction, and apply gain correction, but with a
108 /// single capacitance value for all channels
109 /// GAINCONSTANTCAPA : as GAIN, but with a channel-dependent capacitance value
110
111 return fCalibrationMode.Data();
112}
113
3304fa09 114//_____________________________________________________________________________
115AliMUONRecoParam *AliMUONRecoParam::GetLowFluxParam()
116{
117 /// Return default reconstruction parameters for low flux environment
118
119 AliMUONRecoParam *param = new AliMUONRecoParam();
120 param->SetLowFluxParam();
121
122 return param;
123}
124
125//_____________________________________________________________________________
126AliMUONRecoParam *AliMUONRecoParam::GetHighFluxParam()
127{
128 /// Return default reconstruction parameters for high flux environment
129
130 AliMUONRecoParam *param = new AliMUONRecoParam();
131 param->SetHighFluxParam();
132
133 return param;
134}
135
0e894e58 136//_____________________________________________________________________________
137AliMUONRecoParam *AliMUONRecoParam::GetCosmicParam()
138{
139 /// Return default reconstruction parameters for high flux environment
140
141 AliMUONRecoParam *param = new AliMUONRecoParam();
142 param->SetCosmicParam();
143
144 return param;
145}
146
3304fa09 147//_____________________________________________________________________________
148void AliMUONRecoParam::SetLowFluxParam()
149{
150 /// Set reconstruction parameters for low flux environment
151
ad3c6eda 152 SetNameTitle("Low Flux","Low Flux");
153 SetEventSpecie(AliRecoParam::kLowMult);
9bf6860b 154 fMinBendingMomentum = 1.;
3304fa09 155 fMaxBendingMomentum = 3000.;
9bf6860b 156 fMaxNonBendingSlope = 0.3;
9f093251 157 fMaxBendingSlope = 0.4;
6b191dea 158 fSelectTrackOnSlope = kFALSE;
159 fNonBendingVertexDispersion = 70.;
160 fBendingVertexDispersion = 70.;
9bf6860b 161 fMaxNonBendingDistanceToTrack = 1.;
162 fMaxBendingDistanceToTrack = 1.;
3304fa09 163 fSigmaCutForTracking = 6.;
164 fSigmaCutForImprovement = 5.;
fda59e58 165 fSigmaCutForTrigger = 8.;
b5270f21 166 fStripCutForTrigger = 1.;
167 fMaxStripAreaForTrigger = 3.;
3304fa09 168 fMaxNormChi2MatchTrigger = 16.;
6cac085d 169 fCombinedClusterTrackReco = kFALSE;
3304fa09 170 fTrackAllTracks = kTRUE;
171 fRecoverTracks = kTRUE;
172 fMakeTrackCandidatesFast = kFALSE;
9bf6860b 173 fMakeMoreTrackCandidates = kFALSE;
3304fa09 174 fComplementTracks = kTRUE;
175 fImproveTracks = kTRUE;
c59f70b9 176 fRemoveConnectedTracksInSt12 = kTRUE;
3304fa09 177 fUseSmoother = kTRUE;
35be7ed7 178 for (Int_t iCh = 0; iCh < 10; iCh++) {
179 fUseChamber[iCh] = kTRUE;
180 fDefaultNonBendingReso[iCh] = 0.144;
181 fDefaultBendingReso[iCh] = 0.01;
182 }
9bf6860b 183 for (Int_t iSt = 0; iSt < 5; iSt++) fRequestStation[iSt] = kTRUE;
004a9ccd 184 fBypassSt45 = 0;
89c8d66d 185 fMaxTriggerTracks = 100;
186 fMaxTrackCandidates = 10000;
3304fa09 187
188}
189
190//_____________________________________________________________________________
191void AliMUONRecoParam::SetHighFluxParam()
192{
193 /// Set reconstruction parameters for high flux environment
194
ad3c6eda 195 SetNameTitle("High Flux","High Flux");
196 SetEventSpecie(AliRecoParam::kHighMult);
9bf6860b 197 fMinBendingMomentum = 1.;
3304fa09 198 fMaxBendingMomentum = 3000.;
9bf6860b 199 fMaxNonBendingSlope = 0.3;
9f093251 200 fMaxBendingSlope = 0.4;
6b191dea 201 fSelectTrackOnSlope = kFALSE;
202 fNonBendingVertexDispersion = 70.;
203 fBendingVertexDispersion = 70.;
9bf6860b 204 fMaxNonBendingDistanceToTrack = 1.;
205 fMaxBendingDistanceToTrack = 1.;
3304fa09 206 fSigmaCutForTracking = 6.;
207 fSigmaCutForImprovement = 5.;
fda59e58 208 fSigmaCutForTrigger = 8.;
b5270f21 209 fStripCutForTrigger = 1.;
210 fMaxStripAreaForTrigger = 3.;
3304fa09 211 fMaxNormChi2MatchTrigger = 16.;
6cac085d 212 fCombinedClusterTrackReco = kFALSE;
3304fa09 213 fTrackAllTracks = kTRUE;
214 fRecoverTracks = kTRUE;
215 fMakeTrackCandidatesFast = kFALSE;
9bf6860b 216 fMakeMoreTrackCandidates = kFALSE;
3304fa09 217 fComplementTracks = kTRUE;
218 fImproveTracks = kTRUE;
c59f70b9 219 fRemoveConnectedTracksInSt12 = kFALSE;
3304fa09 220 fUseSmoother = kTRUE;
35be7ed7 221 for (Int_t iCh = 0; iCh < 10; iCh++) {
222 fUseChamber[iCh] = kTRUE;
223 fDefaultNonBendingReso[iCh] = 0.144;
224 fDefaultBendingReso[iCh] = 0.01;
225 }
9bf6860b 226 for (Int_t iSt = 0; iSt < 5; iSt++) fRequestStation[iSt] = kTRUE;
004a9ccd 227 fBypassSt45 = 0;
89c8d66d 228 fMaxTriggerTracks = 100;
229 fMaxTrackCandidates = 10000;
3304fa09 230
231}
232
0e894e58 233//_____________________________________________________________________________
234void AliMUONRecoParam::SetCosmicParam()
235{
236 /// Set reconstruction parameters for high flux environment
237
ad3c6eda 238 SetNameTitle("Cosmic","Cosmic");
239 SetEventSpecie(AliRecoParam::kCosmic);
0e894e58 240 fMinBendingMomentum = 1.;
241 fMaxBendingMomentum = 10000000.;
6b191dea 242 fMaxNonBendingSlope = 0.4;
243 fMaxBendingSlope = 0.5;
244 fSelectTrackOnSlope = kTRUE;
245 fNonBendingVertexDispersion = 200.;
246 fBendingVertexDispersion = 200.;
247 fMaxNonBendingDistanceToTrack = 1.;
248 fMaxBendingDistanceToTrack = 1.;
89c8d66d 249 fSigmaCutForTracking = 7.;
250 fSigmaCutForImprovement = 7.;
0e894e58 251 fSigmaCutForTrigger = 8.;
54355f2c 252 fStripCutForTrigger = 1.5;
253 fMaxStripAreaForTrigger = 3.;
0e894e58 254 fMaxNormChi2MatchTrigger = 16.;
255 fPercentOfFullClusterInESD = 100.;
256 fCombinedClusterTrackReco = kFALSE;
257 fTrackAllTracks = kTRUE;
258 fRecoverTracks = kTRUE;
259 fMakeTrackCandidatesFast = kFALSE;
260 fMakeMoreTrackCandidates = kFALSE;
261 fComplementTracks = kTRUE;
262 fImproveTracks = kTRUE;
c59f70b9 263 fRemoveConnectedTracksInSt12 = kTRUE;
0e894e58 264 fUseSmoother = kTRUE;
265 fSaveFullClusterInESD = kTRUE;
35be7ed7 266 for (Int_t iCh = 0; iCh < 10; iCh++) {
267 fUseChamber[iCh] = kTRUE;
89c8d66d 268 fDefaultNonBendingReso[iCh] = 0.4;
269 fDefaultBendingReso[iCh] = 0.4;
35be7ed7 270 }
0e894e58 271 for (Int_t iSt = 0; iSt < 5; iSt++) fRequestStation[iSt] = kTRUE;
004a9ccd 272 fBypassSt45 = 0;
7eafe398 273 fPadGoodnessMask = 0x400BE80; // Ped Mean is Zero | Ped Mean Too Low | Ped Mean Too High | Ped Sigma Too Low | Ped Sigma Too High | Ped is missing | HV is missing | manu occupancy too high
89c8d66d 274 fMaxTriggerTracks = 100;
275 fMaxTrackCandidates = 10000;
7eafe398 276 SetManuOccupancyLimits(-1,0.5); // reject manu above occ=50%
0e894e58 277
278}
279
c59f70b9 280//_____________________________________________________________________________
281UInt_t
282AliMUONRecoParam::RequestedStationMask() const
283{
284 /// Get the mask of the requested station, i.e. an integer where
285 /// bit n is set to one if the station n was requested
286
287 UInt_t m(0);
288
289 for ( Int_t i = 0; i < 5; ++i )
290 {
291 if ( RequestStation(i) ) m |= ( 1 << i );
292 }
293 return m;
294}
295
3304fa09 296//_____________________________________________________________________________
297void AliMUONRecoParam::Print(Option_t *option) const
298{
299 /// print reconstruction parameters
300 /// if option = FULL then print also unused parameters
301
4348af6f 302 cout<<endl<<"\t------MUON Reconstruction parameters ("<<GetName()<<")------"<<endl;
ad3c6eda 303
304 if (IsDefault()) cout<<"\t\t*** Parameters used by default ***"<<endl;
3304fa09 305
de98fdc9 306 cout<<Form("Calibration mode = %s",fCalibrationMode.Data())<<endl;
3304fa09 307 cout<<Form("Clustering mode = %s",fClusteringMode.Data())<<endl;
3304fa09 308 cout<<Form("Tracking mode = %s",fTrackingMode.Data())<<endl;
9bf6860b 309
004a9ccd 310 TString bypass;
311
312 if ( BypassSt45() )
313 {
314 bypass = "stations 4 and 5";
315 }
316 else if ( BypassSt4() )
317 {
318 bypass = "station 4";
319 }
320 else if ( BypassSt5() )
321 {
322 bypass = "station 5";
323 }
324
325 if (bypass.Length()) cout << "Will bypass " << bypass.Data() << " (replacing real clusters by generated ones from trigger tracks)" << endl;
3304fa09 326
15d30ed4 327 if (fCombinedClusterTrackReco) cout<<"Combined cluster/track reconstruction: ON"<<endl;
328 else cout<<"Combined cluster/track reconstruction: OFF"<<endl;
38bcf0ef 329
0a18ba02 330 if (fSaveFullClusterInESD) cout<<Form("Save all cluster info in ESD for %5.2f %% of events",fPercentOfFullClusterInESD)<<endl;
331 else cout<<"Save partial cluster info in ESD"<<endl;
9bdbee64 332
6b191dea 333 cout<<"Selection of track candidates:"<<endl;
334 if (fSelectTrackOnSlope) cout<<Form("\t- Non-bending slope < %5.2f",fMaxNonBendingSlope)<<endl;
335 else cout<<"\t- Impact parameter < 3 * vertex dispersion in the non-bending direction"<<endl;
336 cout<<Form("\t- if B!=0: Bending momentum > %5.2f",fMinBendingMomentum)<<endl;
337 if (fSelectTrackOnSlope) cout<<Form("\t if B==0: Bending slope < %5.2f",fMaxBendingSlope)<<endl;
338 else cout<<"\t if B==0: Impact parameter < 3 * vertex dispersion in the bending direction"<<endl;
9f093251 339
6b191dea 340 cout<<Form("Vertex dispersion (used to estimate initial bending momentum resolution) = (%5.2f,%5.2f)",fNonBendingVertexDispersion,fBendingVertexDispersion)<<endl;
3304fa09 341
342 cout<<Form("Maximum distance to track = (%5.2f,%5.2f)",fMaxNonBendingDistanceToTrack,fMaxBendingDistanceToTrack)<<endl;
343
344 cout<<Form("Sigma cut for tracking = %5.2f",fSigmaCutForTracking)<<endl;
fda59e58 345
346 cout<<Form("Sigma cut for trigger hit pattern = %5.2f",fSigmaCutForTrigger)<<endl;
b5270f21 347
348 cout<<Form("Cut in strips for trigger chamber efficiency = %5.2f",fStripCutForTrigger)<<endl;
349
350 cout<<Form("Max search area in strips for trigger chamber efficiency = %5.2f",fMaxStripAreaForTrigger)<<endl;
351
3304fa09 352 if (fTrackAllTracks) cout<<"Track all the possible candidates"<<endl;
353 else cout<<"Track only the best candidates"<<endl;
354
355 if (strstr(option,"FULL")) {
356 cout<<"Make track candidates assuming linear propagation between stations 4 and 5: ";
357 if (fMakeTrackCandidatesFast) cout<<"ON"<<endl;
358 else cout<<"OFF"<<endl;
359 } else if (fMakeTrackCandidatesFast)
360 cout<<"Make track candidates assuming linear propagation between stations 4 and 5"<<endl;
361
9bf6860b 362 if (strstr(option,"FULL")) {
363 cout<<"Make track candidates starting from 1 cluster in each of the stations 4 and 5: ";
364 if (fMakeMoreTrackCandidates) cout<<"ON"<<endl;
365 else cout<<"OFF"<<endl;
366 } else if (fMakeMoreTrackCandidates)
367 cout<<"Make track candidates starting from 1 cluster in each of the stations 4 and 5"<<endl;
368
3304fa09 369 if (strstr(option,"FULL")) {
370 cout<<"Try to recover tracks getting lost during tracking: ";
371 if (fRecoverTracks) cout<<"ON"<<endl;
372 else cout<<"OFF"<<endl;
373 } else if (fRecoverTracks)
374 cout<<"Try to recover tracks getting lost during tracking"<<endl;
375
376 if (strstr(option,"FULL")) {
377 cout<<"Try to complete the reconstructed tracks by adding missing clusters: ";
378 if (fComplementTracks) cout<<"ON"<<endl;
379 else cout<<"OFF"<<endl;
380 } else if (fComplementTracks)
381 cout<<"Try to complete the reconstructed tracks by adding missing clusters"<<endl;
382
383 if (strstr(option,"FULL")) {
384 cout<<"Try to improve the reconstructed tracks by removing bad clusters: ";
385 if (fImproveTracks) cout<<Form("ON (sigma cut = %5.2f)",fSigmaCutForImprovement)<<endl;
386 else cout<<"OFF"<<endl;
387 } else if (fImproveTracks)
388 cout<<Form("Try to improve the reconstructed tracks by removing bad clusters (sigma cut = %5.2f)",fSigmaCutForImprovement)<<endl;
389
c59f70b9 390 if (fRemoveConnectedTracksInSt12) cout<<"Remove tracks sharing one cluster or more in any station"<<endl;
391 else cout<<"Remove tracks sharing one cluster or more in stations 3, 4 and 5"<<endl;
392
3304fa09 393 if (strstr(option,"FULL")) {
394 cout<<"Use smoother to compute final track parameters, etc, at each cluster (used for Kalman tracking only): ";
395 if (fUseSmoother) cout<<"ON"<<endl;
396 else cout<<"OFF"<<endl;
397 } else if (fUseSmoother)
398 cout<<"Use smoother to compute final track parameters, etc, at each cluster"<<endl;
399
400 cout<<Form("Maximum normalized chi2 of tracking/trigger track matching = %5.2f",fMaxNormChi2MatchTrigger)<<endl;
401
9bf6860b 402 Bool_t discardedCh = kFALSE;
403 Int_t ch = 0;
404 do {
405 if (!UseChamber(ch)) {
406 if (!discardedCh) {
407 cout<<"Discarded chambers(1..): "<<ch+1;
408 discardedCh = kTRUE;
409 }
410 else cout<<" "<<ch+1;
411 }
412 } while (++ch < 10);
413 if (discardedCh) cout<<endl;
414
415 Bool_t discardedSt = kFALSE;
416 Int_t st = 0;
417 do {
418 if (!RequestStation(st)) {
419 if (!discardedSt) {
420 cout<<"Not requested stations(1..): "<<st+1;
421 discardedSt = kTRUE;
422 }
423 else cout<<" "<<st+1;
424 }
425 } while (++st < 5);
426 if (discardedSt) cout<<endl;
427
35be7ed7 428 cout << Form("Pad goodness policy mask is 0x%x",PadGoodnessMask()) << endl;
429 cout << "Which means we reject pads having the condition = " <<
430 AliMUONPadStatusMaker::AsCondition(PadGoodnessMask()).Data() << endl;
431
432 cout << "The pad limits we are using are :" << endl;
433
434 cout << Form("%5.0f <= HVSt12 <= %5.0f Volts",HVSt12LowLimit(),HVSt12HighLimit()) << endl;
435 cout << Form("%5.0f <= HVSt345 <= %5.0f Volts",HVSt345LowLimit(),HVSt345HighLimit()) << endl;
436 cout << Form("%7.2f <= Pedestal mean <= %7.2f",PedMeanLowLimit(),PedMeanHighLimit()) << endl;
437 cout << Form("%7.2f <= Pedestal sigma <= %7.2f",PedSigmaLowLimit(),PedSigmaHighLimit()) << endl;
438 cout << Form("%e <= Gain linear term <= %e",GainA1LowLimit(),GainA1HighLimit()) << endl;
439 cout << Form("%e <= Gain quadratic term <= %e",GainA2LowLimit(),GainA2HighLimit()) << endl;
440 cout << Form("%5.0f <= Gain threshold term <= %5.0f",GainThresLowLimit(),GainThresHighLimit()) << endl;
7eafe398 441
170f4046 442 cout << Form("And we cut on charge >= %7.2f x ( pedestal sigma ) ",ChargeSigmaCut()) << endl;
443
7eafe398 444 cout << "Occupancy limits are :" << endl;
445
446 cout << Form("%7.2f <= Manu occupancy < %7.2f",ManuOccupancyLowLimit(),ManuOccupancyHighLimit()) << endl;
447 cout << Form("%7.2f <= Buspatch occupancy < %7.2f",BuspatchOccupancyLowLimit(),BuspatchOccupancyHighLimit()) << endl;
448 cout << Form("%7.2f <= DE occupancy < %7.2f",DEOccupancyLowLimit(),DEOccupancyHighLimit()) << endl;
449
35be7ed7 450 cout << "chamber non bending resolution = |";
451 for (Int_t iCh = 0; iCh < 10; iCh++) cout << Form(" %6.3f |",fDefaultNonBendingReso[iCh]);
452 cout << endl;
453 cout << "chamber bending resolution = |";
454 for (Int_t iCh = 0; iCh < 10; iCh++) cout << Form(" %6.3f |",fDefaultBendingReso[iCh]);
455 cout << endl;
89c8d66d 456 cout<<Form("maximum number of trigger tracks above which the tracking is cancelled = %d",fMaxTriggerTracks)<<endl;
aa2b81a1 457 cout<<Form("maximum number of track candidates above which the tracking is abandonned = %d",fMaxTrackCandidates)<<endl;
35be7ed7 458
4348af6f 459 cout<<"\t-----------------------------------------------------"<<endl<<endl;
3304fa09 460
461}
462
004a9ccd 463//_____________________________________________________________________________
464void
465AliMUONRecoParam::SetDefaultLimits()
466{
467 /// Set the default limits and pad goodness policy
468
469 fHVSt12Limits[0]=1500;
470 fHVSt12Limits[1]=2000;
471
472 fHVSt345Limits[0]=1500;
473 fHVSt345Limits[1]=2000;
474
475 fPedMeanLimits[0] = 50;
476 fPedMeanLimits[1] = 1024;
477
89c8d66d 478 fPedSigmaLimits[0] = 0.6;
004a9ccd 479 fPedSigmaLimits[1] = 100;
480
481 fGainA1Limits[0] = 0.1;
482 fGainA1Limits[1] = 10;
483
484 fGainA2Limits[0] = -1E30;
485 fGainA2Limits[1] = 1E30;
486
487 fGainThresLimits[0] = 0;
488 fGainThresLimits[1] = 4095;
489
7eafe398 490 fPadGoodnessMask = 0x8080; // Ped is missing | HV is missing
491
492 fManuOccupancyLimits[0] = -1.0;
493 fManuOccupancyLimits[1] = 1.0;
494
495 fBuspatchOccupancyLimits[0] = -1.0;
496 fBuspatchOccupancyLimits[1] = 1.0;
497
498 fDEOccupancyLimits[0] = -1.0;
499 fDEOccupancyLimits[1] = 1.0;
2b8a1212 500
170f4046 501 fChargeSigmaCut = 4.0;
004a9ccd 502}
503