61 #include <TCollection.h> 62 #include <TTimeStamp.h> 63 #include <TIterator.h> 72 "composition of corrections"),
84 "composition of corrections"),
97 AliInfo(
"No Correction-models were set: can not delete them");
101 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
118 const Int_t knCorr=100;
120 AliError(
"Zerro pointer - correction");
129 for (Int_t icorr=0; icorr<ncorrs; icorr++){
138 for (Int_t icorr=0; icorr<ncorr; icorr++){
173 AliInfo(
"No Corrections-models were set: can not calculate distortions");
182 for (
int j=0;j<3;++j) dx[j]=0.;
183 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
186 if (
fWeights) w=(*fWeights)[weightIndex++];
187 for (Int_t j=0;j<3;++j) dx[j]+=w*dxi[j];
192 for (Int_t j=0;j<3;++j) xi[j]=x[j];
193 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
196 if (
fWeights) w=(*fWeights)[weightIndex++];
197 for (Int_t j=0;j<3;++j) xi[j]+=w*dx[j];
199 for (Int_t j=0;j<3;++j) dx[j]=xi[j]-x[j];
205 for (Int_t j=0;j<3;++j) dx[j]*=-1.;
216 AliInfo(
"No Corrections-models were set: can not calculate distortions");
221 AliInfo(
"kQueueResidual mode was selected but no weights were given. Switching to kQueue instead.");
231 for (
int j=0;j<3;++j) dx[j]=0.;
232 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
235 if (
fWeights) w=(*fWeights)[weightIndex++];
236 for (Int_t j=0;j<3;++j) dx[j]+=w*dxi[j];
241 for (Int_t j=0;j<3;++j) xi[j]=x[j];
242 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
245 if (
fWeights) w=(*fWeights)[weightIndex++];
246 for (Int_t j=0;j<3;++j) xi[j]+=w*dx[j];
248 for (Int_t j=0;j<3;++j) dx[j]=xi[j]-x[j];
252 for (Int_t j=0;j<3;++j) xi2[j]=x[j];
253 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
254 Double_t w=(*fWeights)[weightIndex++];
257 for (Int_t j=0;j<3;++j) xi2[j]+=TMath::Abs(w)*dx[j];
259 for (Int_t j=0;j<3;++j) dx[j]=xi2[j]-x[j];
271 printf(
"Composed TPC spacepoint correction \"%s\" -- composed of:\n",GetTitle());
272 TString opt = option; opt.ToLower();
275 printf(
" - composed correction is empty!\n");
280 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
281 if (opt.Contains(
"d")) {
283 printf(
"%d. %s\t%s\n",in,c->GetTitle(), c->GetName());
286 printf(
"%d. %s\t%s\n",in,c->GetTitle(), c->GetName());
290 if (in==1)
printf(
" Info: The correction compound is empty: No corrections set\n");
299 AliInfo(
"No Correction-models were set");
304 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next())))
314 AliInfo(
"No Correction-models were set");
320 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next())))
340 AliInfo(
"No Correction-models were set");
346 while (0!=(c=dynamic_cast<AliTPCCorrection*>(i->Next()))) {
virtual Bool_t AddCorrectionCompact(AliTPCCorrection *corr, Double_t weight)
virtual void GetCorrection(const Float_t x[], const Short_t roc, Float_t dx[])
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
virtual void Print(Option_t *option="") const
virtual void SetOmegaTauT1T2(Float_t omegaTau, Float_t t1, Float_t t2)
void SetOmegaTauT1T2(Float_t omegaTau, Float_t t1, Float_t t2)
virtual Bool_t AddCorrectionCompact(AliTPCCorrection *corr, Double_t weight)
virtual void GetDistortion(const Float_t x[], Short_t roc, Float_t dx[])
virtual ~AliTPCComposedCorrection()
AliTPCComposedCorrection class.
virtual void GetDistortion(const Float_t x[], const Short_t roc, Float_t dx[])
virtual void Update(const TTimeStamp &timeStamp)
virtual AliTPCCorrection * GetSubCorrection(Int_t ipos)
AliTPCComposedCorrection()
CompositionType fMode
The way to apply the corrections (see general class documentation)
TCollection * fCorrections
The corrections this one is composed of.
virtual void GetCorrection(const Float_t x[], Short_t roc, Float_t dx[])
TVectorD * fWeights
optional vector with weights - used for fit benchmarking
#define AliError(message)
virtual void Update(const TTimeStamp &timeStamp)
virtual void Print(Option_t *option="") const