#include "TCut.h"
#include "THnSparse.h"
#include "AliRieman.h"
+#include "TRandom.h"
+Double_t AliTPCcalibTracks::fgkMergeEntriesCut=10000000.; //10**7 clusters
ClassImp(AliTPCcalibTracks)
fHisRMSZ(0), // THnSparse - rms Z
fHisQmax(0), // THnSparse - qmax
fHisQtot(0), // THnSparse - qtot
+ fPtDownscaleRatio(20), // pt downscaling ratio (use subsample of data)
+ fQDownscaleRatio(20), // Q downscaling ratio (use subsample of dta)
fArrayQDY(0),
fArrayQDZ(0),
fArrayQRMSY(0),
fHisRMSZ(0), // THnSparse - rms Z
fHisQmax(0), // THnSparse - qmax
fHisQtot(0), // THnSparse - qtot
+ fPtDownscaleRatio(20), // pt downscaling ratio (use subsample of data)
+ fQDownscaleRatio(20), // Q downscaling ratio (use subsample of dta)
fArrayQDY(0),
fArrayQDZ(0),
fArrayQRMSY(0),
fHisRMSZ(0), // THnSparse - rms Z
fHisQmax(0), // THnSparse - qmax
fHisQtot(0), // THnSparse - qtot
+ fPtDownscaleRatio(20), // pt downscaling ratio (use subsample of data)
+ fQDownscaleRatio(20), // Q downscaling ratio (use subsample of dta)
fArrayQDY(0),
fArrayQDZ(0),
fArrayQRMSY(0),
// FillResolutionHistoLocal(track)
//
+ Double_t scalept= TMath::Min(1./TMath::Abs(track->GetParameter()[4]),2.)/0.5;
+ Bool_t isSelected = (TMath::Exp(scalept)>fPtDownscaleRatio*gRandom->Rndm());
+ if (!isSelected) return;
+
if (GetDebugLevel() > 5) Info("Process","Starting to process the track...");
Int_t accpetStatus = AcceptTrack(track);
if (accpetStatus == 0) {
// mean chi^2 for all tracklet fits in Y and in Z direction:
csigmaY = TMath::Sqrt(TMath::Abs(csigmaY) / (nTrackletsAll+0.1));
csigmaZ = TMath::Sqrt(TMath::Abs(csigmaZ) / (nTrackletsAll+0.1));
+ if (csigmaY<=TMath::KUncertainty() || csigmaZ<= TMath::KUncertainty()) return;
// ---------------------------------------------------------------------
//
//
riemanFitAngle.GetDYat(currentCluster->GetX())
);
}
- riemanFit.AddPoint(currentCluster->GetX(), currentCluster->GetY()-dY,currentCluster->GetZ(), csigmaY,csigmaZ);
- riemanFitW.AddPoint(currentCluster->GetX(), currentCluster->GetY()-dY,currentCluster->GetZ(), csigmaY*TMath::Sqrt(1+TMath::Abs(idelta)),csigmaZ*TMath::Sqrt(1+TMath::Abs(idelta)));
+ riemanFit.AddPoint(currentCluster->GetX(), currentCluster->GetY()-dY,currentCluster->GetZ(), csigmaY,csigmaZ);
+ riemanFitW.AddPoint(currentCluster->GetX(), currentCluster->GetY()-dY,currentCluster->GetZ(), TMath::Abs(csigmaY*TMath::Sqrt(1+TMath::Abs(idelta))),TMath::Abs(csigmaZ*TMath::Sqrt(1+TMath::Abs(idelta))));
} // loop over neighbourhood for fitter filling
if (nclFound < kDelta * kMinRatio) fRejectedTracksHisto->Fill(10);
if (nclFound < kDelta * kMinRatio) fClusterCutHisto->Fill(1, irow);
//
// Fill THN histograms
//
+ Double_t scaleQ= TMath::Min(Double_t(cluster0->GetMax()),200.)/30.;
+ Bool_t isSelected = (TMath::Exp(scaleQ)>fQDownscaleRatio*gRandom->Rndm());
+ if (!isSelected) continue;
Double_t xvar[9];
xvar[1]=padSize; // pad type
xvar[2]=cluster0->GetZ(); //
//
// Add histograms
//
+ if (!calib->fHisDeltaY) return;
+ if (calib->fHisDeltaY->GetEntries()> fgkMergeEntriesCut) return;
if (calib->fHisDeltaY) fHisDeltaY->Add(calib->fHisDeltaY);
if (calib->fHisDeltaZ) fHisDeltaZ->Add(calib->fHisDeltaZ);
if (calib->fHisRMSY) fHisRMSY->Add(calib->fHisRMSY);