if (!fRefDataQA){
AliError(Form("Could not get object from entry '%s'\nPlease check!!!",entry->GetId().GetPath().Data()));
} else {
- fRefDataQA=(AliTPCdataQA*)fDataQA->Clone();
+ fRefDataQA=(AliTPCdataQA*)fRefDataQA->Clone();
}
delete entry;
}
for (Int_t i=0; i<72;i++){
TGraph *graph= (TGraph*)arrT->At(i);
- if (!graph) continue;
+ if (!graph) continue;
+ graph->Sort();
if (graph->GetN()<kMinPoints){
arrT->AddAt(0,i);
delete graph; // delete empty graph
Double_t median = (isec%36<18) ? medianA: medianC;
Double_t rms = (isec%36<18) ? rmsA: rmsC;
Int_t naccept=0;
- for (Int_t ipoint=kMinPoints-1; ipoint<graph->GetN();ipoint++){
+ // for (Int_t ipoint=kMinPoints-1; ipoint<graph->GetN();ipoint++){ //not neccessary to remove first points
+ for (Int_t ipoint=0; ipoint<graph->GetN();ipoint++){
if (TMath::Abs(graph->GetY()[ipoint]-median)>cutAbs) continue;
if (TMath::Abs(graph->GetY()[ipoint]-median)>cutSigma*rms) continue;
vecX[naccept]= graph->GetX()[ipoint];
if (arrayP->GetEntries()<=0) return 0;
if (!arrayM) return 0;
if (arrayM->GetEntries()<=0) return 0;
+
Int_t entries = arrayP->GetEntriesFast();
TObjArray *array = new TObjArray(arrayP->GetEntriesFast());
+
for (Int_t i=0; i<entries; i++){
AliRelAlignerKalman * kalmanP = (AliRelAlignerKalman *) arrayP->UncheckedAt(i);
AliRelAlignerKalman * kalmanM = (AliRelAlignerKalman *) arrayM->UncheckedAt(i);
if (!kalmanP) continue;
if (!kalmanM) continue;
- AliRelAlignerKalman *kalman = new AliRelAlignerKalman(*kalmanP);
- kalman->Merge(kalmanM);
+
+ AliRelAlignerKalman *kalman = NULL;
+ if(kalmanP->GetRunNumber() != 0 && kalmanM->GetRunNumber() != 0) {
+ kalman = new AliRelAlignerKalman(*kalmanP);
+ kalman->Merge(kalmanM);
+ }
+ else if (kalmanP->GetRunNumber() == 0) {
+ kalman = new AliRelAlignerKalman(*kalmanM);
+ }
+ else if (kalmanM->GetRunNumber() == 0) {
+ kalman = new AliRelAlignerKalman(*kalmanP);
+ }
+ else
+ continue;
+
array->AddAt(kalman,i);
}
+
return array;
}