Bug fixes and minor corrections
[u/mrichter/AliRoot.git] / STEER / AliRecoParam.cxx
CommitLineData
242b332c 1/**************************************************************************
2 * Copyright(c) 1998-1999, 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// //
19// ALICE Reconstruction parameterization:
20//
21//
22// Retrieving paramaters:
23// 0. Read the parameters from database
24// 1. Using the ConfigRecoParam.C script (example : $ALICE_ROOT/macros)
25// 2. Register additional parametes (AliRecoParam::Instance()->RegisterRecoParam(tpcRecoParam);
26//
27//
28// Using the reconstruction parameters
29// AliRecoParam::Instance()->GetRecoParam(detType, eventType) //
30// detType:
31// 1. Detectors - ITS, TPC, TRD, TOF ...
32// 2. Process - V0, Kink, ESDcuts
33
34// //
35///////////////////////////////////////////////////////////////////////////////
36
37#include "TObjArray.h"
38#include "AliDetectorRecoParam.h"
39
40#include "AliRecoParam.h"
41
42
43ClassImp(AliRecoParam)
44
45
46AliRecoParam* AliRecoParam::fgInstance = 0x0;
47
48
49//_____________________________________________________________________________
50AliRecoParam* AliRecoParam::Instance()
51{
52 //
53 // returns AliRecoParam instance (singleton)
54 //
55 if (!fgInstance) {
56 fgInstance = new AliRecoParam();
57 }
58
59 return fgInstance;
60}
61
62
63
64AliRecoParam::AliRecoParam():
65 TNamed("ALICE","ALICE"),
66 fRecoParamArray(0)
67{
68 //
69 //
70 //
71}
72
73AliRecoParam::~AliRecoParam(){
74 //
75 //
76 //
77 if (fRecoParamArray){
78 fRecoParamArray->Delete();
79 delete fRecoParamArray;
80 }
81}
82
83void AliRecoParam::Print(Option_t *option) const{
84 //
85 // Print reconstruction setup
86 //
87 printf("AliRecoParam\n");
88 if (!fRecoParamArray) return;
89 Int_t nparam = fRecoParamArray->GetEntriesFast();
90 for (Int_t iparam=0; iparam<nparam; iparam++){
91 AliDetectorRecoParam * param = (AliDetectorRecoParam *)fRecoParamArray->At(iparam);
92 if (!param) continue;
93 param->Print(option);
94 }
95}
96
97void AliRecoParam::RegisterRecoParam(AliDetectorRecoParam* param){
98 //
99 //
100 //
101 if (!fRecoParamArray) fRecoParamArray = new TObjArray;
102 fRecoParamArray->AddLast(param);
103}
104
2972d4eb 105TObjArray * AliRecoParam::GetRecoParam(const char * detType, Int_t */*eventType*/){
242b332c 106 //
107 // Get the list of Reconstruction parameters for given detector
108 // and event type
109 //
110 if (!fRecoParamArray) return 0;
111 TObjArray * array = 0;
112 Int_t nparam = fRecoParamArray->GetEntriesFast();
113 for (Int_t iparam=0;iparam<nparam; iparam++){
114 AliDetectorRecoParam * param = (AliDetectorRecoParam *)fRecoParamArray->At(iparam);
115 if (!param) continue;
116 TString str(param->GetName());
117 if (!str.Contains(detType)) continue;
118 if (!array) array = new TObjArray;
119 array->AddLast(param);
120 }
121 return array;
122}
123
124