#include "AliMeanVertexPreprocessorOffline.h"
#include "AliCDBStorage.h"
#include "AliCDBMetaData.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliLog.h"
#include <TTimeStamp.h>
#include <TFile.h>
#include <TObjString.h>
#include <TNamed.h>
#include "TClass.h"
#include <TCanvas.h>
#include "AliESDVertex.h"
#include "TH1F.h"
#include "TH2F.h"
#include "TF1.h"
#include "TProfile.h"
ClassImp(AliMeanVertexPreprocessorOffline)
const Char_t *AliMeanVertexPreprocessorOffline::fgkStatusCodeName[AliMeanVertexPreprocessorOffline::kNStatusCodes] = {
"ok",
"open file error or missing histos",
"too low statistics",
"problems storing OCDB",
"write MeanVertex computed online",
"write SPD vtx offline",
"lumi region or cov matrix computation problems, default values set"
};
AliMeanVertexPreprocessorOffline::AliMeanVertexPreprocessorOffline():
TNamed("AliMeanVertexPreprocessorOffline","AliMeanVertexPreprocessorOffline"),
fStatus(kOk)
{
}
AliMeanVertexPreprocessorOffline::~AliMeanVertexPreprocessorOffline()
{
}
void AliMeanVertexPreprocessorOffline::ProcessOutput(const char *filename, AliCDBStorage *db, Int_t runNb){
TFile *file = TFile::Open(filename);
if (!file || !file->IsOpen()){
AliError(Form("cannot open outputfile %s", filename));
fStatus=kInputError;
return;
}
if (!db){
AliError(Form("no OCDB storage found, return"));
fStatus=kInputError;
return;
}
TList *list = (TList*)file->Get("MeanVertex");
TH1F *histTRKvtxX = 0x0;
TH1F *histTRKvtxY = 0x0;
TH1F *histTRKvtxZ = 0x0;
TH1F *histSPDvtxX = 0x0;
TH1F *histSPDvtxY = 0x0;
TH1F *histSPDvtxZ = 0x0;
Bool_t useTRKvtx = kTRUE;
Bool_t useITSSAvtx = kFALSE;
Bool_t useSPDvtx = kFALSE;
Bool_t spdAvailable = kTRUE;
Bool_t writeMeanVertexSPD = kFALSE;
Bool_t vertexerSPD3Doff=kFALSE;
if (!list) {
histTRKvtxX = (TH1F*)file->Get("hTRKVertexX");
histTRKvtxY = (TH1F*)file->Get("hTRKVertexY");
histTRKvtxZ = (TH1F*)file->Get("hTRKVertexZ");
histSPDvtxX = (TH1F*)file->Get("hSPDVertexX");
histSPDvtxY = (TH1F*)file->Get("hSPDVertexY");
histSPDvtxZ = (TH1F*)file->Get("hSPDVertexZ");
if (!histTRKvtxX || !histTRKvtxY || !histTRKvtxZ){
useTRKvtx = kFALSE;
useITSSAvtx = kTRUE;
histTRKvtxX = (TH1F*)file->FindObject("hITSSAVertexX");
histTRKvtxY = (TH1F*)file->FindObject("hITSSAVertexY");
histTRKvtxZ = (TH1F*)file->FindObject("hITSSAVertexZ");
if (!histTRKvtxX || !histTRKvtxY || !histTRKvtxZ){
useITSSAvtx=kFALSE;
useSPDvtx=kTRUE;
if (!histSPDvtxX || !histSPDvtxY || !histSPDvtxZ){
AliError(Form("cannot find any histograms available from file"));
fStatus=kInputError;
return;
}
}
}
}
else{
histTRKvtxX = (TH1F*)list->FindObject("hTRKVertexX");
histTRKvtxY = (TH1F*)list->FindObject("hTRKVertexY");
histTRKvtxZ = (TH1F*)list->FindObject("hTRKVertexZ");
histSPDvtxX = (TH1F*)list->FindObject("hSPDVertexX");
histSPDvtxY = (TH1F*)list->FindObject("hSPDVertexY");
histSPDvtxZ = (TH1F*)list->FindObject("hSPDVertexZ");
if (!histTRKvtxX || !histTRKvtxY || !histTRKvtxZ){
useTRKvtx = kFALSE;
useITSSAvtx = kTRUE;
histTRKvtxX = (TH1F*)list->FindObject("hITSSAVertexX");
histTRKvtxY = (TH1F*)list->FindObject("hITSSAVertexY");
histTRKvtxZ = (TH1F*)list->FindObject("hITSSAVertexZ");
if (!histTRKvtxX || !histTRKvtxY || !histTRKvtxZ){
useITSSAvtx=kFALSE;
useSPDvtx=kTRUE;
if (!histSPDvtxX || !histSPDvtxY || !histSPDvtxZ){
AliError(Form("cannot find any histograms available from list"));
fStatus=kInputError;
return;
}
}
}
}
if (useTRKvtx){
Float_t nEntriesX = histTRKvtxX->GetEffectiveEntries();
Float_t nEntriesY = histTRKvtxY->GetEffectiveEntries();
Float_t nEntriesZ = histTRKvtxZ->GetEffectiveEntries();
if (nEntriesX < 50. || nEntriesY<50. || nEntriesZ<50.) {
AliError(Form("TRK vertex histograms have too few entries for fitting"));
useTRKvtx=kFALSE;
useSPDvtx = kTRUE;
}
}
if (useITSSAvtx){
Float_t nEntriesX = histTRKvtxX->GetEffectiveEntries();
Float_t nEntriesY = histTRKvtxY->GetEffectiveEntries();
Float_t nEntriesZ = histTRKvtxZ->GetEffectiveEntries();
if (nEntriesX < 50. || nEntriesY<50. || nEntriesZ<50.) {
AliError(Form("ITSSA vertex histograms have too few entries for fitting"));
useITSSAvtx=kFALSE;
useSPDvtx=kTRUE;
}
}
Float_t nEntriesX = histSPDvtxX->GetEffectiveEntries();
Float_t nEntriesY = histSPDvtxY->GetEffectiveEntries();
Float_t nEntriesZ = histSPDvtxZ->GetEffectiveEntries();
if (nEntriesX < 50. || nEntriesY<50. || nEntriesZ<50.) {
spdAvailable = kFALSE;
if ((useTRKvtx==kFALSE) && (useITSSAvtx==kFALSE)){
AliError(Form("Also SPD vertex histograms have too few entries for fitting, return"));
fStatus=kLowStatistics;
return;
}
}
if((nEntriesX == 0.)&&(nEntriesY==0.) && (nEntriesZ>0.)){
vertexerSPD3Doff = kTRUE;
AliWarning("Vertexer SPD 3D off");
}
Double_t xMeanVtx=0., yMeanVtx=0., zMeanVtx=0.;
Double_t xSigmaVtx=0., ySigmaVtx=0., zSigmaVtx=0.;
TF1 *fitVtxX, *fitVtxY, *fitVtxZ;
if (useTRKvtx || useITSSAvtx){
histTRKvtxX ->Fit("gaus", "M");
fitVtxX = histTRKvtxX -> GetFunction("gaus");
xMeanVtx = fitVtxX -> GetParameter(1);
if (TMath::Abs(xMeanVtx) > 2.) {
xMeanVtx = 0.;
writeMeanVertexSPD=kTRUE;
fStatus=kWriteMeanVertexSPD;
}
histTRKvtxY ->Fit("gaus", "M");
fitVtxY = histTRKvtxY -> GetFunction("gaus");
yMeanVtx = fitVtxY -> GetParameter(1);
if (TMath::Abs(yMeanVtx) > 2.) {
yMeanVtx = 0.;
writeMeanVertexSPD=kTRUE;
fStatus=kWriteMeanVertexSPD;
}
histTRKvtxZ ->Fit("gaus", "M", "", -12, 12);
fitVtxZ = histTRKvtxZ -> GetFunction("gaus");
zMeanVtx = fitVtxZ -> GetParameter(1);
zSigmaVtx = fitVtxZ -> GetParameter(2);
if ((TMath::Abs(zMeanVtx) > 20.) || (zSigmaVtx>12.)) {
zMeanVtx = histTRKvtxZ->GetMean();
zSigmaVtx = histTRKvtxZ->GetRMS();
writeMeanVertexSPD=kTRUE;
fStatus=kWriteMeanVertexSPD;
}
}
Double_t xHistoMean, yHistoMean, zHistoMean;
Double_t xHistoRMS, yHistoRMS, zHistoRMS;
if (useTRKvtx || useITSSAvtx){
xHistoMean = histTRKvtxX -> GetMean();
xHistoRMS = histTRKvtxX ->GetRMS();
if ((TMath::Abs(xHistoMean-xMeanVtx) > 0.5)){
AliWarning(Form("Possible problems with the fit mean very different from histo mean... using SPD vertex"));
useTRKvtx = kFALSE;
useITSSAvtx = kFALSE;
useSPDvtx = kTRUE;
fStatus=kUseOfflineSPDvtx;
}
yHistoMean = histTRKvtxY ->GetMean();
yHistoRMS = histTRKvtxY ->GetRMS();
if ((TMath::Abs(yHistoMean-yMeanVtx) > 0.5)){
AliWarning(Form("Possible problems with the fit mean very different from histo mean... using SPD vertex"));
useTRKvtx = kFALSE;
useITSSAvtx = kFALSE;
useSPDvtx = kTRUE;
fStatus=kUseOfflineSPDvtx;
}
zHistoMean = histTRKvtxZ -> GetMean();
zHistoRMS = histTRKvtxZ ->GetRMS();
if ((TMath::Abs(zHistoMean-zMeanVtx) > 1.)){
AliWarning(Form("Possible problems with the fit mean very different from histo mean... using SPD vertex"));
useTRKvtx = kFALSE;
useITSSAvtx = kFALSE;
useSPDvtx = kTRUE;
fStatus=kUseOfflineSPDvtx;
}
AliDebug(2, Form("xHistoRMS = %f, yHistoRMS = %f, zHistoRMS = %f", xHistoRMS, yHistoRMS, zHistoRMS));
}
if ((useSPDvtx) && (spdAvailable) && (!vertexerSPD3Doff)){
histSPDvtxX ->Fit("gaus", "M");
fitVtxX = histSPDvtxX -> GetFunction("gaus");
xMeanVtx = fitVtxX -> GetParameter(1);
xSigmaVtx = fitVtxX -> GetParameter(2);
if (TMath::Abs(xMeanVtx) > 2.) {
xMeanVtx = 0.;
writeMeanVertexSPD=kTRUE;
}
histSPDvtxY ->Fit("gaus", "M");
fitVtxY = histSPDvtxY -> GetFunction("gaus");
yMeanVtx = fitVtxY -> GetParameter(1);
ySigmaVtx = fitVtxY -> GetParameter(2);
if (TMath::Abs(yMeanVtx) > 2.) {
yMeanVtx = 0.;
writeMeanVertexSPD=kTRUE;
}
histSPDvtxZ ->Fit("gaus", "M", "", -12, 12);
fitVtxZ = histSPDvtxZ -> GetFunction("gaus");
zMeanVtx = fitVtxZ -> GetParameter(1);
zSigmaVtx = fitVtxZ -> GetParameter(2);
if ((TMath::Abs(zMeanVtx) > 20.) || (zSigmaVtx>12.)) {
zMeanVtx = histSPDvtxZ ->GetMean();
zSigmaVtx = histSPDvtxZ->GetRMS();
writeMeanVertexSPD = kTRUE;
}
}
else if ((useSPDvtx) && (!spdAvailable)){
AliError(Form("Difference between trkVtx and online one, SPD histos not enough entry or SPD 3D vertex off. Writing Mean Vertex SPD"));
writeMeanVertexSPD = kTRUE;
}
Double_t posOnline[3], sigmaOnline[3];
if (useTRKvtx || useITSSAvtx || writeMeanVertexSPD){
AliCDBManager *manCheck = AliCDBManager::Instance();
manCheck->SetDefaultStorage("raw://");
manCheck->SetRun(runNb);
AliCDBEntry *entr = manCheck->Get("GRP/Calib/MeanVertexSPD");
if(entr) {
AliESDVertex *vtxOnline = (AliESDVertex*)entr->GetObject();
posOnline[0] = vtxOnline->GetX();
posOnline[1] = vtxOnline->GetY();
posOnline[2] = vtxOnline->GetZ();
sigmaOnline[0] = vtxOnline->GetXRes();
sigmaOnline[1] = vtxOnline->GetYRes();
sigmaOnline[2] = vtxOnline->GetZRes();
AliDebug(2, Form("sigmaOnline[0] = %f, sigmaOnline[1] = %f, sigmaOnline[2] = %f", sigmaOnline[0], sigmaOnline[1], sigmaOnline[2]));
if ((TMath::Abs(posOnline[0]-xMeanVtx) > 0.1) || (TMath::Abs(posOnline[1]-yMeanVtx) > 0.1) || (TMath::Abs(posOnline[2]-zMeanVtx) > 1.)){
AliWarning(Form("vertex offline far from the online one"));
}
}
}
if (writeMeanVertexSPD){
AliWarning(Form("Writing Mean Vertex SPD, Mean Vertex not available"));
Double_t sigma[3]={0.0150, 0.0150, zSigmaVtx};
AliESDVertex *vertex = new AliESDVertex(posOnline, sigma, "vertex");
AliCDBId id("GRP/Calib/MeanVertex", runNb, runNb);
AliCDBMetaData metaData;
metaData.SetBeamPeriod(0);
metaData.SetResponsible("Davide Caffarri");
metaData.SetComment("Mean Vertex object used in reconstruction");
if (!db->Put(vertex, id, &metaData)) {
AliError(Form("Error while putting object in storage %s", db->GetURI().Data()));
}
delete vertex;
return;
}
Float_t meanMult = 40.;
Float_t p2 = 1.4;
Float_t resolVtx = 0.05;
Double_t xSigmaMult, ySigmaMult, corrXZ, corrYZ, lumiRegSquaredX, lumiRegSquaredY;
Double_t covarXZ=0., covarYZ=0.;
Bool_t highMultEnvironment = kFALSE;
Bool_t highMultppEnvironment = kFALSE;
Bool_t lowMultppEnvironment = kFALSE;
TF1 *sigmaFitX, *sigmaFitY, *corrFit;
TH1F *histTRKHighMultX=0;
TH1F *histTRKHighMultY=0;
TH2F *histTRKVertexXZ=0;
TH2F *histTRKVertexYZ=0;
TH2F *histTRKvsMultX=0x0;
TH2F *histTRKvsMultY=0x0;
if (useTRKvtx){
if (list){
histTRKHighMultX = (TH1F*)list->FindObject("hTRKVertexXHighMult");
histTRKHighMultY = (TH1F*)list->FindObject("hTRKVertexYHighMult");
histTRKvsMultX = (TH2F*)list->FindObject("hTRKVertexXvsMult");
histTRKvsMultY = (TH2F*)list->FindObject("hTRKVertexYvsMult");
histTRKVertexXZ = (TH2F*)list->FindObject("hTRKVertexXZ");
histTRKVertexYZ = (TH2F*)list->FindObject("hTRKVertexYZ");
}
else {
histTRKHighMultX = (TH1F*)file->Get("hTRKVertexXHighMult");
histTRKHighMultY = (TH1F*)file->Get("hTRKVertexYHighMult");
histTRKvsMultX = (TH2F*)file->FindObject("hTRKVertexXvsMult");
histTRKvsMultY = (TH2F*)file->FindObject("hTRKVertexYvsMult");
histTRKVertexXZ = (TH2F*)file->Get("hTRKVertexXZ");
histTRKVertexYZ = (TH2F*)file->Get("hTRKVertexYZ");
}
}
if (useITSSAvtx){
if (list){
histTRKHighMultX = (TH1F*)list->FindObject("hITSSAVertexXHighMult");
histTRKHighMultY = (TH1F*)list->FindObject("hITSSAVertexYHighMult");
histTRKvsMultX = (TH2F*)file->FindObject("hITSSAVertexXvsMult");
histTRKvsMultY = (TH2F*)file->FindObject("hITSSAVertexYvsMult");
histTRKVertexXZ = (TH2F*)list->FindObject("hITSSAVertexXZ");
histTRKVertexYZ = (TH2F*)list->FindObject("hITSSAVertexYZ");
}
else {
histTRKHighMultX = (TH1F*)file->Get("hITSSAVertexXHighMult");
histTRKHighMultY = (TH1F*)file->Get("hITSSAVertexYHighMult");
histTRKvsMultX = (TH2F*)file->FindObject("hITSSAVertexXvsMult");
histTRKvsMultY = (TH2F*)file->FindObject("hITSSAVertexYvsMult");
histTRKVertexXZ = (TH2F*)file->Get("hITSSAVertexXZ");
histTRKVertexYZ = (TH2F*)file->Get("hITSSAVertexYZ");
}
}
TH1D *projXvsMult;
TH1D *projYvsMult;
Float_t nEntriesMultX=0, nEntriesMultY=0.;
if ((histTRKHighMultX) && (histTRKHighMultY)){
projXvsMult = (TH1D*)histTRKvsMultX->ProjectionX("projXHighMultPbPb", 150, 300);
projYvsMult = (TH1D*)histTRKvsMultY->ProjectionX("projYHighMultPbPb", 150, 300);
nEntriesMultX = projXvsMult->GetEffectiveEntries();
nEntriesMultY = projYvsMult->GetEffectiveEntries();
if ((nEntriesMultX >100) && (nEntriesMultY>100)) {
AliWarning(Form("Setting High Mulitplicity environment"));
highMultEnvironment = kTRUE;
}
else {
projXvsMult = (TH1D*)histTRKvsMultX->ProjectionX("projXHighMultPbPb", 10, 30);
projYvsMult = (TH1D*)histTRKvsMultY->ProjectionX("projYHighMultPbPb", 10, 30);
nEntriesMultX = projXvsMult->GetEffectiveEntries();
nEntriesMultY = projYvsMult->GetEffectiveEntries();
if ((nEntriesMultX >100) && (nEntriesMultY>100)) {
AliWarning(Form("Setting high pp Mulitplicity environment or p-A high multiplicity"));
highMultppEnvironment=kTRUE;
}
else {
projXvsMult = (TH1D*)histTRKvsMultX->ProjectionX("projXHighMultPbPb", 3, 5);
projYvsMult = (TH1D*)histTRKvsMultY->ProjectionX("projYHighMultPbPb", 3, 5);
nEntriesMultX = projXvsMult->GetEffectiveEntries();
nEntriesMultY = projYvsMult->GetEffectiveEntries();
if ((nEntriesMultX >100) && (nEntriesMultY>100)) {
AliWarning(Form("Setting low pp Mulitplicity environment"));
lowMultppEnvironment=kTRUE;
}
}
}
if (lowMultppEnvironment==kTRUE) {
if ((projXvsMult->GetEntries() < 40.) || (projYvsMult->GetEntries() < 40.)){
AliWarning(Form("histos for lumi reg calculation not found, default value set"));
xSigmaVtx=0.0120;
ySigmaVtx=0.0120;
fStatus=kLumiRegCovMatrixProblem;
} else {
projXvsMult -> Fit("gaus", "M", "", -0.4, 0.4);
sigmaFitX = projXvsMult -> GetFunction("gaus");
xSigmaMult = sigmaFitX->GetParameter(2);
lumiRegSquaredX = (xSigmaMult*xSigmaMult - ((resolVtx*resolVtx)/TMath::Power(meanMult, p2)));
if (lumiRegSquaredX < 0 || lumiRegSquaredX < 1E-5) {
AliWarning(Form("Difficult luminous region determination X, keep convoluted sigma"));
xSigmaVtx = xSigmaMult;
fStatus=kLumiRegCovMatrixProblem;
}
else {
if (lumiRegSquaredX > 0 && lumiRegSquaredX < 0.0005){
xSigmaVtx = TMath::Sqrt(lumiRegSquaredX);
xSigmaVtx = xSigmaVtx*1.1;
}
else{
AliWarning(Form("Not possible to define a luminous region X. Default values set"));
xSigmaVtx = 0.0120;
fStatus=kLumiRegCovMatrixProblem;
}
}
projYvsMult -> Fit("gaus", "M", "", -0.2, 0.6);
sigmaFitY = projYvsMult -> GetFunction("gaus");
ySigmaMult = sigmaFitY->GetParameter(2);
lumiRegSquaredY= (ySigmaMult*ySigmaMult - ((resolVtx*resolVtx)/TMath::Power(meanMult, p2)));
if (lumiRegSquaredY < 0 || lumiRegSquaredY < 1E-5) {
AliWarning(Form("Difficult luminous region determination Y, keep convoluted sigma"));
ySigmaVtx = ySigmaMult;
fStatus=kLumiRegCovMatrixProblem;
}
else{
if (lumiRegSquaredY > 0 && lumiRegSquaredY < 0.0005){
ySigmaVtx = TMath::Sqrt(lumiRegSquaredY);
ySigmaVtx = ySigmaVtx*1.1;
}
else{
AliWarning(Form("Not possible to define a luminous region Y. Default values set"));
ySigmaVtx = 0.0120;
fStatus=kLumiRegCovMatrixProblem;
}
}
}
TProfile *htrkXZ = histTRKVertexXZ ->ProfileY();
htrkXZ -> Fit("pol1", "M", "", -10., 10.);
corrFit = htrkXZ->GetFunction("pol1");
corrXZ = corrFit->GetParameter(1);
if (TMath::Abs(corrXZ) > 0.01) {
AliWarning(Form("Problems in the correlation fitting, not update the covariance matrix"));
corrXZ =0.;
fStatus=kLumiRegCovMatrixProblem;
}
else{
covarXZ = corrXZ * zSigmaVtx*zSigmaVtx;
}
TProfile *htrkYZ = histTRKVertexYZ ->ProfileY();
htrkYZ -> Fit("pol1", "M", "", -10., 10.);
corrFit = htrkYZ->GetFunction("pol1");
corrYZ = corrFit->GetParameter(1);
if (TMath::Abs(corrYZ) > 0.01) {
AliWarning(Form("Problems in the correlation fitting, not update the covariance matrix"));
corrYZ =0.;
fStatus=kLumiRegCovMatrixProblem;
}
else{
covarYZ = corrYZ*zSigmaVtx*zSigmaVtx;
}
}
}
if (highMultEnvironment==kTRUE || highMultppEnvironment==kTRUE){
projXvsMult -> Fit("gaus", "M", "", -0.4, 0.4);
sigmaFitX = projXvsMult -> GetFunction("gaus");
xSigmaMult = sigmaFitX->GetParameter(2);
if ((xSigmaMult <0) || (xSigmaMult>0.03)){
AliWarning(Form("Problems with luminosiy region determination, update of the postion only"));
xSigmaMult = 0.;
xSigmaVtx = 0.0120;
fStatus=kLumiRegCovMatrixProblem;
}
else{
xSigmaVtx = xSigmaMult;
xSigmaVtx = xSigmaVtx*1.1;
}
projYvsMult -> Fit("gaus", "M", "", -0.2, 0.5);
TCanvas *c = new TCanvas("nwC", "nwC");
c->cd();
projYvsMult->Draw();
sigmaFitY = projYvsMult -> GetFunction("gaus");
ySigmaMult = sigmaFitY->GetParameter(2);
if ((ySigmaMult <0) || (ySigmaMult>0.03)){
AliWarning(Form("Problems with luminosiy region determination, update of the postion only"));
ySigmaMult = 0.;
ySigmaVtx = 0.0120;
fStatus=kLumiRegCovMatrixProblem;
}
else{
ySigmaVtx = ySigmaMult;
ySigmaVtx = ySigmaVtx*1.1;
}
TProfile *htrkXZ = histTRKVertexXZ ->ProfileY();
htrkXZ -> Fit("pol1", "M", "", -10., 10.);
corrFit = htrkXZ->GetFunction("pol1");
corrXZ = corrFit->GetParameter(1);
if (TMath::Abs(corrXZ) > 0.01) {
AliWarning(Form("Problems in the correlation fitting, not update the covariance matrix"));
corrXZ =0.;
fStatus=kLumiRegCovMatrixProblem;
}
else{
covarXZ = corrXZ * zSigmaVtx*zSigmaVtx;
}
TProfile *htrkYZ = histTRKVertexYZ ->ProfileY();
htrkYZ -> Fit("pol1", "M", "", -10., 10.);
corrFit = htrkYZ->GetFunction("pol1");
corrYZ = corrFit->GetParameter(1);
if (TMath::Abs(corrYZ) > 0.01) {
AliWarning(Form("Problems in the correlation fitting, not update the covariance matrix"));
corrYZ =0.;
fStatus=kLumiRegCovMatrixProblem;
}
else{
covarYZ = corrYZ*zSigmaVtx*zSigmaVtx;
}
}
Double_t position[3], covMatrix[6];
Double_t chi2=1.;
Int_t nContr=1;
position[0] = xMeanVtx;
position[1] = yMeanVtx;
position[2] = zMeanVtx;
covMatrix[0] = xSigmaVtx*xSigmaVtx;
covMatrix[1] = 0.;
covMatrix[2] = ySigmaVtx*ySigmaVtx;
covMatrix[3] = covarXZ;
covMatrix[4] = covarYZ;
covMatrix[5] = zSigmaVtx*zSigmaVtx;
AliESDVertex *vertex = new AliESDVertex(position, covMatrix, chi2, nContr, "vertex");
AliCDBId id("GRP/Calib/MeanVertex", runNb, runNb);
AliCDBMetaData metaData;
metaData.SetBeamPeriod(0);
metaData.SetResponsible("Davide Caffarri");
metaData.SetComment("Mean Vertex object used in reconstruction");
if (!db->Put(vertex, id, &metaData)) {
AliError(Form("Error while putting object in storage %s", db->GetURI().Data()));
fStatus=kStoreError;
}
delete vertex;
Int_t status=GetStatus();
if (status == 0) {
AliInfo(Form("MeanVertex calibration successful: %s (status=%d)", fgkStatusCodeName[fStatus], status));
}
else if (status > 0) {
AliInfo(Form("MeanVertex calibration failed: %s (status=%d)", fgkStatusCodeName[fStatus], status));
}
else if (status < 0) {
AliInfo(Form("MeanVertex calibration but not fatal error: %s (status=%d)", fgkStatusCodeName[fStatus], status));
}
}
Int_t AliMeanVertexPreprocessorOffline::GetStatus(){
switch (fStatus) {
case kOk:
return 0;
break;
case kLowStatistics:
case kWriteMeanVertexSPD:
case kUseOfflineSPDvtx:
case kLumiRegCovMatrixProblem:
return -fStatus;
break;
case kInputError:
case kStoreError:
return fStatus;
break;
default:
return -999;
break;
}
return -999;
}
AliMeanVertexPreprocessorOffline.cxx:1 AliMeanVertexPreprocessorOffline.cxx:2 AliMeanVertexPreprocessorOffline.cxx:3 AliMeanVertexPreprocessorOffline.cxx:4 AliMeanVertexPreprocessorOffline.cxx:5 AliMeanVertexPreprocessorOffline.cxx:6 AliMeanVertexPreprocessorOffline.cxx:7 AliMeanVertexPreprocessorOffline.cxx:8 AliMeanVertexPreprocessorOffline.cxx:9 AliMeanVertexPreprocessorOffline.cxx:10 AliMeanVertexPreprocessorOffline.cxx:11 AliMeanVertexPreprocessorOffline.cxx:12 AliMeanVertexPreprocessorOffline.cxx:13 AliMeanVertexPreprocessorOffline.cxx:14 AliMeanVertexPreprocessorOffline.cxx:15 AliMeanVertexPreprocessorOffline.cxx:16 AliMeanVertexPreprocessorOffline.cxx:17 AliMeanVertexPreprocessorOffline.cxx:18 AliMeanVertexPreprocessorOffline.cxx:19 AliMeanVertexPreprocessorOffline.cxx:20 AliMeanVertexPreprocessorOffline.cxx:21 AliMeanVertexPreprocessorOffline.cxx:22 AliMeanVertexPreprocessorOffline.cxx:23 AliMeanVertexPreprocessorOffline.cxx:24 AliMeanVertexPreprocessorOffline.cxx:25 AliMeanVertexPreprocessorOffline.cxx:26 AliMeanVertexPreprocessorOffline.cxx:27 AliMeanVertexPreprocessorOffline.cxx:28 AliMeanVertexPreprocessorOffline.cxx:29 AliMeanVertexPreprocessorOffline.cxx:30 AliMeanVertexPreprocessorOffline.cxx:31 AliMeanVertexPreprocessorOffline.cxx:32 AliMeanVertexPreprocessorOffline.cxx:33 AliMeanVertexPreprocessorOffline.cxx:34 AliMeanVertexPreprocessorOffline.cxx:35 AliMeanVertexPreprocessorOffline.cxx:36 AliMeanVertexPreprocessorOffline.cxx:37 AliMeanVertexPreprocessorOffline.cxx:38 AliMeanVertexPreprocessorOffline.cxx:39 AliMeanVertexPreprocessorOffline.cxx:40 AliMeanVertexPreprocessorOffline.cxx:41 AliMeanVertexPreprocessorOffline.cxx:42 AliMeanVertexPreprocessorOffline.cxx:43 AliMeanVertexPreprocessorOffline.cxx:44 AliMeanVertexPreprocessorOffline.cxx:45 AliMeanVertexPreprocessorOffline.cxx:46 AliMeanVertexPreprocessorOffline.cxx:47 AliMeanVertexPreprocessorOffline.cxx:48 AliMeanVertexPreprocessorOffline.cxx:49 AliMeanVertexPreprocessorOffline.cxx:50 AliMeanVertexPreprocessorOffline.cxx:51 AliMeanVertexPreprocessorOffline.cxx:52 AliMeanVertexPreprocessorOffline.cxx:53 AliMeanVertexPreprocessorOffline.cxx:54 AliMeanVertexPreprocessorOffline.cxx:55 AliMeanVertexPreprocessorOffline.cxx:56 AliMeanVertexPreprocessorOffline.cxx:57 AliMeanVertexPreprocessorOffline.cxx:58 AliMeanVertexPreprocessorOffline.cxx:59 AliMeanVertexPreprocessorOffline.cxx:60 AliMeanVertexPreprocessorOffline.cxx:61 AliMeanVertexPreprocessorOffline.cxx:62 AliMeanVertexPreprocessorOffline.cxx:63 AliMeanVertexPreprocessorOffline.cxx:64 AliMeanVertexPreprocessorOffline.cxx:65 AliMeanVertexPreprocessorOffline.cxx:66 AliMeanVertexPreprocessorOffline.cxx:67 AliMeanVertexPreprocessorOffline.cxx:68 AliMeanVertexPreprocessorOffline.cxx:69 AliMeanVertexPreprocessorOffline.cxx:70 AliMeanVertexPreprocessorOffline.cxx:71 AliMeanVertexPreprocessorOffline.cxx:72 AliMeanVertexPreprocessorOffline.cxx:73 AliMeanVertexPreprocessorOffline.cxx:74 AliMeanVertexPreprocessorOffline.cxx:75 AliMeanVertexPreprocessorOffline.cxx:76 AliMeanVertexPreprocessorOffline.cxx:77 AliMeanVertexPreprocessorOffline.cxx:78 AliMeanVertexPreprocessorOffline.cxx:79 AliMeanVertexPreprocessorOffline.cxx:80 AliMeanVertexPreprocessorOffline.cxx:81 AliMeanVertexPreprocessorOffline.cxx:82 AliMeanVertexPreprocessorOffline.cxx:83 AliMeanVertexPreprocessorOffline.cxx:84 AliMeanVertexPreprocessorOffline.cxx:85 AliMeanVertexPreprocessorOffline.cxx:86 AliMeanVertexPreprocessorOffline.cxx:87 AliMeanVertexPreprocessorOffline.cxx:88 AliMeanVertexPreprocessorOffline.cxx:89 AliMeanVertexPreprocessorOffline.cxx:90 AliMeanVertexPreprocessorOffline.cxx:91 AliMeanVertexPreprocessorOffline.cxx:92 AliMeanVertexPreprocessorOffline.cxx:93 AliMeanVertexPreprocessorOffline.cxx:94 AliMeanVertexPreprocessorOffline.cxx:95 AliMeanVertexPreprocessorOffline.cxx:96 AliMeanVertexPreprocessorOffline.cxx:97 AliMeanVertexPreprocessorOffline.cxx:98 AliMeanVertexPreprocessorOffline.cxx:99 AliMeanVertexPreprocessorOffline.cxx:100 AliMeanVertexPreprocessorOffline.cxx:101 AliMeanVertexPreprocessorOffline.cxx:102 AliMeanVertexPreprocessorOffline.cxx:103 AliMeanVertexPreprocessorOffline.cxx:104 AliMeanVertexPreprocessorOffline.cxx:105 AliMeanVertexPreprocessorOffline.cxx:106 AliMeanVertexPreprocessorOffline.cxx:107 AliMeanVertexPreprocessorOffline.cxx:108 AliMeanVertexPreprocessorOffline.cxx:109 AliMeanVertexPreprocessorOffline.cxx:110 AliMeanVertexPreprocessorOffline.cxx:111 AliMeanVertexPreprocessorOffline.cxx:112 AliMeanVertexPreprocessorOffline.cxx:113 AliMeanVertexPreprocessorOffline.cxx:114 AliMeanVertexPreprocessorOffline.cxx:115 AliMeanVertexPreprocessorOffline.cxx:116 AliMeanVertexPreprocessorOffline.cxx:117 AliMeanVertexPreprocessorOffline.cxx:118 AliMeanVertexPreprocessorOffline.cxx:119 AliMeanVertexPreprocessorOffline.cxx:120 AliMeanVertexPreprocessorOffline.cxx:121 AliMeanVertexPreprocessorOffline.cxx:122 AliMeanVertexPreprocessorOffline.cxx:123 AliMeanVertexPreprocessorOffline.cxx:124 AliMeanVertexPreprocessorOffline.cxx:125 AliMeanVertexPreprocessorOffline.cxx:126 AliMeanVertexPreprocessorOffline.cxx:127 AliMeanVertexPreprocessorOffline.cxx:128 AliMeanVertexPreprocessorOffline.cxx:129 AliMeanVertexPreprocessorOffline.cxx:130 AliMeanVertexPreprocessorOffline.cxx:131 AliMeanVertexPreprocessorOffline.cxx:132 AliMeanVertexPreprocessorOffline.cxx:133 AliMeanVertexPreprocessorOffline.cxx:134 AliMeanVertexPreprocessorOffline.cxx:135 AliMeanVertexPreprocessorOffline.cxx:136 AliMeanVertexPreprocessorOffline.cxx:137 AliMeanVertexPreprocessorOffline.cxx:138 AliMeanVertexPreprocessorOffline.cxx:139 AliMeanVertexPreprocessorOffline.cxx:140 AliMeanVertexPreprocessorOffline.cxx:141 AliMeanVertexPreprocessorOffline.cxx:142 AliMeanVertexPreprocessorOffline.cxx:143 AliMeanVertexPreprocessorOffline.cxx:144 AliMeanVertexPreprocessorOffline.cxx:145 AliMeanVertexPreprocessorOffline.cxx:146 AliMeanVertexPreprocessorOffline.cxx:147 AliMeanVertexPreprocessorOffline.cxx:148 AliMeanVertexPreprocessorOffline.cxx:149 AliMeanVertexPreprocessorOffline.cxx:150 AliMeanVertexPreprocessorOffline.cxx:151 AliMeanVertexPreprocessorOffline.cxx:152 AliMeanVertexPreprocessorOffline.cxx:153 AliMeanVertexPreprocessorOffline.cxx:154 AliMeanVertexPreprocessorOffline.cxx:155 AliMeanVertexPreprocessorOffline.cxx:156 AliMeanVertexPreprocessorOffline.cxx:157 AliMeanVertexPreprocessorOffline.cxx:158 AliMeanVertexPreprocessorOffline.cxx:159 AliMeanVertexPreprocessorOffline.cxx:160 AliMeanVertexPreprocessorOffline.cxx:161 AliMeanVertexPreprocessorOffline.cxx:162 AliMeanVertexPreprocessorOffline.cxx:163 AliMeanVertexPreprocessorOffline.cxx:164 AliMeanVertexPreprocessorOffline.cxx:165 AliMeanVertexPreprocessorOffline.cxx:166 AliMeanVertexPreprocessorOffline.cxx:167 AliMeanVertexPreprocessorOffline.cxx:168 AliMeanVertexPreprocessorOffline.cxx:169 AliMeanVertexPreprocessorOffline.cxx:170 AliMeanVertexPreprocessorOffline.cxx:171 AliMeanVertexPreprocessorOffline.cxx:172 AliMeanVertexPreprocessorOffline.cxx:173 AliMeanVertexPreprocessorOffline.cxx:174 AliMeanVertexPreprocessorOffline.cxx:175 AliMeanVertexPreprocessorOffline.cxx:176 AliMeanVertexPreprocessorOffline.cxx:177 AliMeanVertexPreprocessorOffline.cxx:178 AliMeanVertexPreprocessorOffline.cxx:179 AliMeanVertexPreprocessorOffline.cxx:180 AliMeanVertexPreprocessorOffline.cxx:181 AliMeanVertexPreprocessorOffline.cxx:182 AliMeanVertexPreprocessorOffline.cxx:183 AliMeanVertexPreprocessorOffline.cxx:184 AliMeanVertexPreprocessorOffline.cxx:185 AliMeanVertexPreprocessorOffline.cxx:186 AliMeanVertexPreprocessorOffline.cxx:187 AliMeanVertexPreprocessorOffline.cxx:188 AliMeanVertexPreprocessorOffline.cxx:189 AliMeanVertexPreprocessorOffline.cxx:190 AliMeanVertexPreprocessorOffline.cxx:191 AliMeanVertexPreprocessorOffline.cxx:192 AliMeanVertexPreprocessorOffline.cxx:193 AliMeanVertexPreprocessorOffline.cxx:194 AliMeanVertexPreprocessorOffline.cxx:195 AliMeanVertexPreprocessorOffline.cxx:196 AliMeanVertexPreprocessorOffline.cxx:197 AliMeanVertexPreprocessorOffline.cxx:198 AliMeanVertexPreprocessorOffline.cxx:199 AliMeanVertexPreprocessorOffline.cxx:200 AliMeanVertexPreprocessorOffline.cxx:201 AliMeanVertexPreprocessorOffline.cxx:202 AliMeanVertexPreprocessorOffline.cxx:203 AliMeanVertexPreprocessorOffline.cxx:204 AliMeanVertexPreprocessorOffline.cxx:205 AliMeanVertexPreprocessorOffline.cxx:206 AliMeanVertexPreprocessorOffline.cxx:207 AliMeanVertexPreprocessorOffline.cxx:208 AliMeanVertexPreprocessorOffline.cxx:209 AliMeanVertexPreprocessorOffline.cxx:210 AliMeanVertexPreprocessorOffline.cxx:211 AliMeanVertexPreprocessorOffline.cxx:212 AliMeanVertexPreprocessorOffline.cxx:213 AliMeanVertexPreprocessorOffline.cxx:214 AliMeanVertexPreprocessorOffline.cxx:215 AliMeanVertexPreprocessorOffline.cxx:216 AliMeanVertexPreprocessorOffline.cxx:217 AliMeanVertexPreprocessorOffline.cxx:218 AliMeanVertexPreprocessorOffline.cxx:219 AliMeanVertexPreprocessorOffline.cxx:220 AliMeanVertexPreprocessorOffline.cxx:221 AliMeanVertexPreprocessorOffline.cxx:222 AliMeanVertexPreprocessorOffline.cxx:223 AliMeanVertexPreprocessorOffline.cxx:224 AliMeanVertexPreprocessorOffline.cxx:225 AliMeanVertexPreprocessorOffline.cxx:226 AliMeanVertexPreprocessorOffline.cxx:227 AliMeanVertexPreprocessorOffline.cxx:228 AliMeanVertexPreprocessorOffline.cxx:229 AliMeanVertexPreprocessorOffline.cxx:230 AliMeanVertexPreprocessorOffline.cxx:231 AliMeanVertexPreprocessorOffline.cxx:232 AliMeanVertexPreprocessorOffline.cxx:233 AliMeanVertexPreprocessorOffline.cxx:234 AliMeanVertexPreprocessorOffline.cxx:235 AliMeanVertexPreprocessorOffline.cxx:236 AliMeanVertexPreprocessorOffline.cxx:237 AliMeanVertexPreprocessorOffline.cxx:238 AliMeanVertexPreprocessorOffline.cxx:239 AliMeanVertexPreprocessorOffline.cxx:240 AliMeanVertexPreprocessorOffline.cxx:241 AliMeanVertexPreprocessorOffline.cxx:242 AliMeanVertexPreprocessorOffline.cxx:243 AliMeanVertexPreprocessorOffline.cxx:244 AliMeanVertexPreprocessorOffline.cxx:245 AliMeanVertexPreprocessorOffline.cxx:246 AliMeanVertexPreprocessorOffline.cxx:247 AliMeanVertexPreprocessorOffline.cxx:248 AliMeanVertexPreprocessorOffline.cxx:249 AliMeanVertexPreprocessorOffline.cxx:250 AliMeanVertexPreprocessorOffline.cxx:251 AliMeanVertexPreprocessorOffline.cxx:252 AliMeanVertexPreprocessorOffline.cxx:253 AliMeanVertexPreprocessorOffline.cxx:254 AliMeanVertexPreprocessorOffline.cxx:255 AliMeanVertexPreprocessorOffline.cxx:256 AliMeanVertexPreprocessorOffline.cxx:257 AliMeanVertexPreprocessorOffline.cxx:258 AliMeanVertexPreprocessorOffline.cxx:259 AliMeanVertexPreprocessorOffline.cxx:260 AliMeanVertexPreprocessorOffline.cxx:261 AliMeanVertexPreprocessorOffline.cxx:262 AliMeanVertexPreprocessorOffline.cxx:263 AliMeanVertexPreprocessorOffline.cxx:264 AliMeanVertexPreprocessorOffline.cxx:265 AliMeanVertexPreprocessorOffline.cxx:266 AliMeanVertexPreprocessorOffline.cxx:267 AliMeanVertexPreprocessorOffline.cxx:268 AliMeanVertexPreprocessorOffline.cxx:269 AliMeanVertexPreprocessorOffline.cxx:270 AliMeanVertexPreprocessorOffline.cxx:271 AliMeanVertexPreprocessorOffline.cxx:272 AliMeanVertexPreprocessorOffline.cxx:273 AliMeanVertexPreprocessorOffline.cxx:274 AliMeanVertexPreprocessorOffline.cxx:275 AliMeanVertexPreprocessorOffline.cxx:276 AliMeanVertexPreprocessorOffline.cxx:277 AliMeanVertexPreprocessorOffline.cxx:278 AliMeanVertexPreprocessorOffline.cxx:279 AliMeanVertexPreprocessorOffline.cxx:280 AliMeanVertexPreprocessorOffline.cxx:281 AliMeanVertexPreprocessorOffline.cxx:282 AliMeanVertexPreprocessorOffline.cxx:283 AliMeanVertexPreprocessorOffline.cxx:284 AliMeanVertexPreprocessorOffline.cxx:285 AliMeanVertexPreprocessorOffline.cxx:286 AliMeanVertexPreprocessorOffline.cxx:287 AliMeanVertexPreprocessorOffline.cxx:288 AliMeanVertexPreprocessorOffline.cxx:289 AliMeanVertexPreprocessorOffline.cxx:290 AliMeanVertexPreprocessorOffline.cxx:291 AliMeanVertexPreprocessorOffline.cxx:292 AliMeanVertexPreprocessorOffline.cxx:293 AliMeanVertexPreprocessorOffline.cxx:294 AliMeanVertexPreprocessorOffline.cxx:295 AliMeanVertexPreprocessorOffline.cxx:296 AliMeanVertexPreprocessorOffline.cxx:297 AliMeanVertexPreprocessorOffline.cxx:298 AliMeanVertexPreprocessorOffline.cxx:299 AliMeanVertexPreprocessorOffline.cxx:300 AliMeanVertexPreprocessorOffline.cxx:301 AliMeanVertexPreprocessorOffline.cxx:302 AliMeanVertexPreprocessorOffline.cxx:303 AliMeanVertexPreprocessorOffline.cxx:304 AliMeanVertexPreprocessorOffline.cxx:305 AliMeanVertexPreprocessorOffline.cxx:306 AliMeanVertexPreprocessorOffline.cxx:307 AliMeanVertexPreprocessorOffline.cxx:308 AliMeanVertexPreprocessorOffline.cxx:309 AliMeanVertexPreprocessorOffline.cxx:310 AliMeanVertexPreprocessorOffline.cxx:311 AliMeanVertexPreprocessorOffline.cxx:312 AliMeanVertexPreprocessorOffline.cxx:313 AliMeanVertexPreprocessorOffline.cxx:314 AliMeanVertexPreprocessorOffline.cxx:315 AliMeanVertexPreprocessorOffline.cxx:316 AliMeanVertexPreprocessorOffline.cxx:317 AliMeanVertexPreprocessorOffline.cxx:318 AliMeanVertexPreprocessorOffline.cxx:319 AliMeanVertexPreprocessorOffline.cxx:320 AliMeanVertexPreprocessorOffline.cxx:321 AliMeanVertexPreprocessorOffline.cxx:322 AliMeanVertexPreprocessorOffline.cxx:323 AliMeanVertexPreprocessorOffline.cxx:324 AliMeanVertexPreprocessorOffline.cxx:325 AliMeanVertexPreprocessorOffline.cxx:326 AliMeanVertexPreprocessorOffline.cxx:327 AliMeanVertexPreprocessorOffline.cxx:328 AliMeanVertexPreprocessorOffline.cxx:329 AliMeanVertexPreprocessorOffline.cxx:330 AliMeanVertexPreprocessorOffline.cxx:331 AliMeanVertexPreprocessorOffline.cxx:332 AliMeanVertexPreprocessorOffline.cxx:333 AliMeanVertexPreprocessorOffline.cxx:334 AliMeanVertexPreprocessorOffline.cxx:335 AliMeanVertexPreprocessorOffline.cxx:336 AliMeanVertexPreprocessorOffline.cxx:337 AliMeanVertexPreprocessorOffline.cxx:338 AliMeanVertexPreprocessorOffline.cxx:339 AliMeanVertexPreprocessorOffline.cxx:340 AliMeanVertexPreprocessorOffline.cxx:341 AliMeanVertexPreprocessorOffline.cxx:342 AliMeanVertexPreprocessorOffline.cxx:343 AliMeanVertexPreprocessorOffline.cxx:344 AliMeanVertexPreprocessorOffline.cxx:345 AliMeanVertexPreprocessorOffline.cxx:346 AliMeanVertexPreprocessorOffline.cxx:347 AliMeanVertexPreprocessorOffline.cxx:348 AliMeanVertexPreprocessorOffline.cxx:349 AliMeanVertexPreprocessorOffline.cxx:350 AliMeanVertexPreprocessorOffline.cxx:351 AliMeanVertexPreprocessorOffline.cxx:352 AliMeanVertexPreprocessorOffline.cxx:353 AliMeanVertexPreprocessorOffline.cxx:354 AliMeanVertexPreprocessorOffline.cxx:355 AliMeanVertexPreprocessorOffline.cxx:356 AliMeanVertexPreprocessorOffline.cxx:357 AliMeanVertexPreprocessorOffline.cxx:358 AliMeanVertexPreprocessorOffline.cxx:359 AliMeanVertexPreprocessorOffline.cxx:360 AliMeanVertexPreprocessorOffline.cxx:361 AliMeanVertexPreprocessorOffline.cxx:362 AliMeanVertexPreprocessorOffline.cxx:363 AliMeanVertexPreprocessorOffline.cxx:364 AliMeanVertexPreprocessorOffline.cxx:365 AliMeanVertexPreprocessorOffline.cxx:366 AliMeanVertexPreprocessorOffline.cxx:367 AliMeanVertexPreprocessorOffline.cxx:368 AliMeanVertexPreprocessorOffline.cxx:369 AliMeanVertexPreprocessorOffline.cxx:370 AliMeanVertexPreprocessorOffline.cxx:371 AliMeanVertexPreprocessorOffline.cxx:372 AliMeanVertexPreprocessorOffline.cxx:373 AliMeanVertexPreprocessorOffline.cxx:374 AliMeanVertexPreprocessorOffline.cxx:375 AliMeanVertexPreprocessorOffline.cxx:376 AliMeanVertexPreprocessorOffline.cxx:377 AliMeanVertexPreprocessorOffline.cxx:378 AliMeanVertexPreprocessorOffline.cxx:379 AliMeanVertexPreprocessorOffline.cxx:380 AliMeanVertexPreprocessorOffline.cxx:381 AliMeanVertexPreprocessorOffline.cxx:382 AliMeanVertexPreprocessorOffline.cxx:383 AliMeanVertexPreprocessorOffline.cxx:384 AliMeanVertexPreprocessorOffline.cxx:385 AliMeanVertexPreprocessorOffline.cxx:386 AliMeanVertexPreprocessorOffline.cxx:387 AliMeanVertexPreprocessorOffline.cxx:388 AliMeanVertexPreprocessorOffline.cxx:389 AliMeanVertexPreprocessorOffline.cxx:390 AliMeanVertexPreprocessorOffline.cxx:391 AliMeanVertexPreprocessorOffline.cxx:392 AliMeanVertexPreprocessorOffline.cxx:393 AliMeanVertexPreprocessorOffline.cxx:394 AliMeanVertexPreprocessorOffline.cxx:395 AliMeanVertexPreprocessorOffline.cxx:396 AliMeanVertexPreprocessorOffline.cxx:397 AliMeanVertexPreprocessorOffline.cxx:398 AliMeanVertexPreprocessorOffline.cxx:399 AliMeanVertexPreprocessorOffline.cxx:400 AliMeanVertexPreprocessorOffline.cxx:401 AliMeanVertexPreprocessorOffline.cxx:402 AliMeanVertexPreprocessorOffline.cxx:403 AliMeanVertexPreprocessorOffline.cxx:404 AliMeanVertexPreprocessorOffline.cxx:405 AliMeanVertexPreprocessorOffline.cxx:406 AliMeanVertexPreprocessorOffline.cxx:407 AliMeanVertexPreprocessorOffline.cxx:408 AliMeanVertexPreprocessorOffline.cxx:409 AliMeanVertexPreprocessorOffline.cxx:410 AliMeanVertexPreprocessorOffline.cxx:411 AliMeanVertexPreprocessorOffline.cxx:412 AliMeanVertexPreprocessorOffline.cxx:413 AliMeanVertexPreprocessorOffline.cxx:414 AliMeanVertexPreprocessorOffline.cxx:415 AliMeanVertexPreprocessorOffline.cxx:416 AliMeanVertexPreprocessorOffline.cxx:417 AliMeanVertexPreprocessorOffline.cxx:418 AliMeanVertexPreprocessorOffline.cxx:419 AliMeanVertexPreprocessorOffline.cxx:420 AliMeanVertexPreprocessorOffline.cxx:421 AliMeanVertexPreprocessorOffline.cxx:422 AliMeanVertexPreprocessorOffline.cxx:423 AliMeanVertexPreprocessorOffline.cxx:424 AliMeanVertexPreprocessorOffline.cxx:425 AliMeanVertexPreprocessorOffline.cxx:426 AliMeanVertexPreprocessorOffline.cxx:427 AliMeanVertexPreprocessorOffline.cxx:428 AliMeanVertexPreprocessorOffline.cxx:429 AliMeanVertexPreprocessorOffline.cxx:430 AliMeanVertexPreprocessorOffline.cxx:431 AliMeanVertexPreprocessorOffline.cxx:432 AliMeanVertexPreprocessorOffline.cxx:433 AliMeanVertexPreprocessorOffline.cxx:434 AliMeanVertexPreprocessorOffline.cxx:435 AliMeanVertexPreprocessorOffline.cxx:436 AliMeanVertexPreprocessorOffline.cxx:437 AliMeanVertexPreprocessorOffline.cxx:438 AliMeanVertexPreprocessorOffline.cxx:439 AliMeanVertexPreprocessorOffline.cxx:440 AliMeanVertexPreprocessorOffline.cxx:441 AliMeanVertexPreprocessorOffline.cxx:442 AliMeanVertexPreprocessorOffline.cxx:443 AliMeanVertexPreprocessorOffline.cxx:444 AliMeanVertexPreprocessorOffline.cxx:445 AliMeanVertexPreprocessorOffline.cxx:446 AliMeanVertexPreprocessorOffline.cxx:447 AliMeanVertexPreprocessorOffline.cxx:448 AliMeanVertexPreprocessorOffline.cxx:449 AliMeanVertexPreprocessorOffline.cxx:450 AliMeanVertexPreprocessorOffline.cxx:451 AliMeanVertexPreprocessorOffline.cxx:452 AliMeanVertexPreprocessorOffline.cxx:453 AliMeanVertexPreprocessorOffline.cxx:454 AliMeanVertexPreprocessorOffline.cxx:455 AliMeanVertexPreprocessorOffline.cxx:456 AliMeanVertexPreprocessorOffline.cxx:457 AliMeanVertexPreprocessorOffline.cxx:458 AliMeanVertexPreprocessorOffline.cxx:459 AliMeanVertexPreprocessorOffline.cxx:460 AliMeanVertexPreprocessorOffline.cxx:461 AliMeanVertexPreprocessorOffline.cxx:462 AliMeanVertexPreprocessorOffline.cxx:463 AliMeanVertexPreprocessorOffline.cxx:464 AliMeanVertexPreprocessorOffline.cxx:465 AliMeanVertexPreprocessorOffline.cxx:466 AliMeanVertexPreprocessorOffline.cxx:467 AliMeanVertexPreprocessorOffline.cxx:468 AliMeanVertexPreprocessorOffline.cxx:469 AliMeanVertexPreprocessorOffline.cxx:470 AliMeanVertexPreprocessorOffline.cxx:471 AliMeanVertexPreprocessorOffline.cxx:472 AliMeanVertexPreprocessorOffline.cxx:473 AliMeanVertexPreprocessorOffline.cxx:474 AliMeanVertexPreprocessorOffline.cxx:475 AliMeanVertexPreprocessorOffline.cxx:476 AliMeanVertexPreprocessorOffline.cxx:477 AliMeanVertexPreprocessorOffline.cxx:478 AliMeanVertexPreprocessorOffline.cxx:479 AliMeanVertexPreprocessorOffline.cxx:480 AliMeanVertexPreprocessorOffline.cxx:481 AliMeanVertexPreprocessorOffline.cxx:482 AliMeanVertexPreprocessorOffline.cxx:483 AliMeanVertexPreprocessorOffline.cxx:484 AliMeanVertexPreprocessorOffline.cxx:485 AliMeanVertexPreprocessorOffline.cxx:486 AliMeanVertexPreprocessorOffline.cxx:487 AliMeanVertexPreprocessorOffline.cxx:488 AliMeanVertexPreprocessorOffline.cxx:489 AliMeanVertexPreprocessorOffline.cxx:490 AliMeanVertexPreprocessorOffline.cxx:491 AliMeanVertexPreprocessorOffline.cxx:492 AliMeanVertexPreprocessorOffline.cxx:493 AliMeanVertexPreprocessorOffline.cxx:494 AliMeanVertexPreprocessorOffline.cxx:495 AliMeanVertexPreprocessorOffline.cxx:496 AliMeanVertexPreprocessorOffline.cxx:497 AliMeanVertexPreprocessorOffline.cxx:498 AliMeanVertexPreprocessorOffline.cxx:499 AliMeanVertexPreprocessorOffline.cxx:500 AliMeanVertexPreprocessorOffline.cxx:501 AliMeanVertexPreprocessorOffline.cxx:502 AliMeanVertexPreprocessorOffline.cxx:503 AliMeanVertexPreprocessorOffline.cxx:504 AliMeanVertexPreprocessorOffline.cxx:505 AliMeanVertexPreprocessorOffline.cxx:506 AliMeanVertexPreprocessorOffline.cxx:507 AliMeanVertexPreprocessorOffline.cxx:508 AliMeanVertexPreprocessorOffline.cxx:509 AliMeanVertexPreprocessorOffline.cxx:510 AliMeanVertexPreprocessorOffline.cxx:511 AliMeanVertexPreprocessorOffline.cxx:512 AliMeanVertexPreprocessorOffline.cxx:513 AliMeanVertexPreprocessorOffline.cxx:514 AliMeanVertexPreprocessorOffline.cxx:515 AliMeanVertexPreprocessorOffline.cxx:516 AliMeanVertexPreprocessorOffline.cxx:517 AliMeanVertexPreprocessorOffline.cxx:518 AliMeanVertexPreprocessorOffline.cxx:519 AliMeanVertexPreprocessorOffline.cxx:520 AliMeanVertexPreprocessorOffline.cxx:521 AliMeanVertexPreprocessorOffline.cxx:522 AliMeanVertexPreprocessorOffline.cxx:523 AliMeanVertexPreprocessorOffline.cxx:524 AliMeanVertexPreprocessorOffline.cxx:525 AliMeanVertexPreprocessorOffline.cxx:526 AliMeanVertexPreprocessorOffline.cxx:527 AliMeanVertexPreprocessorOffline.cxx:528 AliMeanVertexPreprocessorOffline.cxx:529 AliMeanVertexPreprocessorOffline.cxx:530 AliMeanVertexPreprocessorOffline.cxx:531 AliMeanVertexPreprocessorOffline.cxx:532 AliMeanVertexPreprocessorOffline.cxx:533 AliMeanVertexPreprocessorOffline.cxx:534 AliMeanVertexPreprocessorOffline.cxx:535 AliMeanVertexPreprocessorOffline.cxx:536 AliMeanVertexPreprocessorOffline.cxx:537 AliMeanVertexPreprocessorOffline.cxx:538 AliMeanVertexPreprocessorOffline.cxx:539 AliMeanVertexPreprocessorOffline.cxx:540 AliMeanVertexPreprocessorOffline.cxx:541 AliMeanVertexPreprocessorOffline.cxx:542 AliMeanVertexPreprocessorOffline.cxx:543 AliMeanVertexPreprocessorOffline.cxx:544 AliMeanVertexPreprocessorOffline.cxx:545 AliMeanVertexPreprocessorOffline.cxx:546 AliMeanVertexPreprocessorOffline.cxx:547 AliMeanVertexPreprocessorOffline.cxx:548 AliMeanVertexPreprocessorOffline.cxx:549 AliMeanVertexPreprocessorOffline.cxx:550 AliMeanVertexPreprocessorOffline.cxx:551 AliMeanVertexPreprocessorOffline.cxx:552 AliMeanVertexPreprocessorOffline.cxx:553 AliMeanVertexPreprocessorOffline.cxx:554 AliMeanVertexPreprocessorOffline.cxx:555 AliMeanVertexPreprocessorOffline.cxx:556 AliMeanVertexPreprocessorOffline.cxx:557 AliMeanVertexPreprocessorOffline.cxx:558 AliMeanVertexPreprocessorOffline.cxx:559 AliMeanVertexPreprocessorOffline.cxx:560 AliMeanVertexPreprocessorOffline.cxx:561 AliMeanVertexPreprocessorOffline.cxx:562 AliMeanVertexPreprocessorOffline.cxx:563 AliMeanVertexPreprocessorOffline.cxx:564 AliMeanVertexPreprocessorOffline.cxx:565 AliMeanVertexPreprocessorOffline.cxx:566 AliMeanVertexPreprocessorOffline.cxx:567 AliMeanVertexPreprocessorOffline.cxx:568 AliMeanVertexPreprocessorOffline.cxx:569 AliMeanVertexPreprocessorOffline.cxx:570 AliMeanVertexPreprocessorOffline.cxx:571 AliMeanVertexPreprocessorOffline.cxx:572 AliMeanVertexPreprocessorOffline.cxx:573 AliMeanVertexPreprocessorOffline.cxx:574 AliMeanVertexPreprocessorOffline.cxx:575 AliMeanVertexPreprocessorOffline.cxx:576 AliMeanVertexPreprocessorOffline.cxx:577 AliMeanVertexPreprocessorOffline.cxx:578 AliMeanVertexPreprocessorOffline.cxx:579 AliMeanVertexPreprocessorOffline.cxx:580 AliMeanVertexPreprocessorOffline.cxx:581 AliMeanVertexPreprocessorOffline.cxx:582 AliMeanVertexPreprocessorOffline.cxx:583 AliMeanVertexPreprocessorOffline.cxx:584 AliMeanVertexPreprocessorOffline.cxx:585 AliMeanVertexPreprocessorOffline.cxx:586 AliMeanVertexPreprocessorOffline.cxx:587 AliMeanVertexPreprocessorOffline.cxx:588 AliMeanVertexPreprocessorOffline.cxx:589 AliMeanVertexPreprocessorOffline.cxx:590 AliMeanVertexPreprocessorOffline.cxx:591 AliMeanVertexPreprocessorOffline.cxx:592 AliMeanVertexPreprocessorOffline.cxx:593 AliMeanVertexPreprocessorOffline.cxx:594 AliMeanVertexPreprocessorOffline.cxx:595 AliMeanVertexPreprocessorOffline.cxx:596 AliMeanVertexPreprocessorOffline.cxx:597 AliMeanVertexPreprocessorOffline.cxx:598 AliMeanVertexPreprocessorOffline.cxx:599 AliMeanVertexPreprocessorOffline.cxx:600 AliMeanVertexPreprocessorOffline.cxx:601 AliMeanVertexPreprocessorOffline.cxx:602 AliMeanVertexPreprocessorOffline.cxx:603 AliMeanVertexPreprocessorOffline.cxx:604 AliMeanVertexPreprocessorOffline.cxx:605 AliMeanVertexPreprocessorOffline.cxx:606 AliMeanVertexPreprocessorOffline.cxx:607 AliMeanVertexPreprocessorOffline.cxx:608 AliMeanVertexPreprocessorOffline.cxx:609 AliMeanVertexPreprocessorOffline.cxx:610 AliMeanVertexPreprocessorOffline.cxx:611 AliMeanVertexPreprocessorOffline.cxx:612 AliMeanVertexPreprocessorOffline.cxx:613 AliMeanVertexPreprocessorOffline.cxx:614 AliMeanVertexPreprocessorOffline.cxx:615 AliMeanVertexPreprocessorOffline.cxx:616 AliMeanVertexPreprocessorOffline.cxx:617 AliMeanVertexPreprocessorOffline.cxx:618 AliMeanVertexPreprocessorOffline.cxx:619 AliMeanVertexPreprocessorOffline.cxx:620 AliMeanVertexPreprocessorOffline.cxx:621 AliMeanVertexPreprocessorOffline.cxx:622 AliMeanVertexPreprocessorOffline.cxx:623 AliMeanVertexPreprocessorOffline.cxx:624 AliMeanVertexPreprocessorOffline.cxx:625 AliMeanVertexPreprocessorOffline.cxx:626 AliMeanVertexPreprocessorOffline.cxx:627 AliMeanVertexPreprocessorOffline.cxx:628 AliMeanVertexPreprocessorOffline.cxx:629 AliMeanVertexPreprocessorOffline.cxx:630 AliMeanVertexPreprocessorOffline.cxx:631 AliMeanVertexPreprocessorOffline.cxx:632 AliMeanVertexPreprocessorOffline.cxx:633 AliMeanVertexPreprocessorOffline.cxx:634 AliMeanVertexPreprocessorOffline.cxx:635 AliMeanVertexPreprocessorOffline.cxx:636 AliMeanVertexPreprocessorOffline.cxx:637 AliMeanVertexPreprocessorOffline.cxx:638 AliMeanVertexPreprocessorOffline.cxx:639 AliMeanVertexPreprocessorOffline.cxx:640 AliMeanVertexPreprocessorOffline.cxx:641 AliMeanVertexPreprocessorOffline.cxx:642 AliMeanVertexPreprocessorOffline.cxx:643 AliMeanVertexPreprocessorOffline.cxx:644 AliMeanVertexPreprocessorOffline.cxx:645 AliMeanVertexPreprocessorOffline.cxx:646 AliMeanVertexPreprocessorOffline.cxx:647 AliMeanVertexPreprocessorOffline.cxx:648 AliMeanVertexPreprocessorOffline.cxx:649 AliMeanVertexPreprocessorOffline.cxx:650 AliMeanVertexPreprocessorOffline.cxx:651 AliMeanVertexPreprocessorOffline.cxx:652 AliMeanVertexPreprocessorOffline.cxx:653 AliMeanVertexPreprocessorOffline.cxx:654 AliMeanVertexPreprocessorOffline.cxx:655 AliMeanVertexPreprocessorOffline.cxx:656 AliMeanVertexPreprocessorOffline.cxx:657 AliMeanVertexPreprocessorOffline.cxx:658 AliMeanVertexPreprocessorOffline.cxx:659 AliMeanVertexPreprocessorOffline.cxx:660 AliMeanVertexPreprocessorOffline.cxx:661 AliMeanVertexPreprocessorOffline.cxx:662 AliMeanVertexPreprocessorOffline.cxx:663 AliMeanVertexPreprocessorOffline.cxx:664 AliMeanVertexPreprocessorOffline.cxx:665 AliMeanVertexPreprocessorOffline.cxx:666 AliMeanVertexPreprocessorOffline.cxx:667 AliMeanVertexPreprocessorOffline.cxx:668 AliMeanVertexPreprocessorOffline.cxx:669 AliMeanVertexPreprocessorOffline.cxx:670 AliMeanVertexPreprocessorOffline.cxx:671 AliMeanVertexPreprocessorOffline.cxx:672 AliMeanVertexPreprocessorOffline.cxx:673 AliMeanVertexPreprocessorOffline.cxx:674 AliMeanVertexPreprocessorOffline.cxx:675 AliMeanVertexPreprocessorOffline.cxx:676 AliMeanVertexPreprocessorOffline.cxx:677 AliMeanVertexPreprocessorOffline.cxx:678 AliMeanVertexPreprocessorOffline.cxx:679 AliMeanVertexPreprocessorOffline.cxx:680 AliMeanVertexPreprocessorOffline.cxx:681 AliMeanVertexPreprocessorOffline.cxx:682 AliMeanVertexPreprocessorOffline.cxx:683 AliMeanVertexPreprocessorOffline.cxx:684 AliMeanVertexPreprocessorOffline.cxx:685 AliMeanVertexPreprocessorOffline.cxx:686 AliMeanVertexPreprocessorOffline.cxx:687 AliMeanVertexPreprocessorOffline.cxx:688 AliMeanVertexPreprocessorOffline.cxx:689 AliMeanVertexPreprocessorOffline.cxx:690 AliMeanVertexPreprocessorOffline.cxx:691 AliMeanVertexPreprocessorOffline.cxx:692 AliMeanVertexPreprocessorOffline.cxx:693 AliMeanVertexPreprocessorOffline.cxx:694 AliMeanVertexPreprocessorOffline.cxx:695 AliMeanVertexPreprocessorOffline.cxx:696 AliMeanVertexPreprocessorOffline.cxx:697 AliMeanVertexPreprocessorOffline.cxx:698 AliMeanVertexPreprocessorOffline.cxx:699 AliMeanVertexPreprocessorOffline.cxx:700 AliMeanVertexPreprocessorOffline.cxx:701 AliMeanVertexPreprocessorOffline.cxx:702 AliMeanVertexPreprocessorOffline.cxx:703 AliMeanVertexPreprocessorOffline.cxx:704 AliMeanVertexPreprocessorOffline.cxx:705 AliMeanVertexPreprocessorOffline.cxx:706 AliMeanVertexPreprocessorOffline.cxx:707 AliMeanVertexPreprocessorOffline.cxx:708 AliMeanVertexPreprocessorOffline.cxx:709 AliMeanVertexPreprocessorOffline.cxx:710 AliMeanVertexPreprocessorOffline.cxx:711 AliMeanVertexPreprocessorOffline.cxx:712 AliMeanVertexPreprocessorOffline.cxx:713 AliMeanVertexPreprocessorOffline.cxx:714 AliMeanVertexPreprocessorOffline.cxx:715 AliMeanVertexPreprocessorOffline.cxx:716 AliMeanVertexPreprocessorOffline.cxx:717 AliMeanVertexPreprocessorOffline.cxx:718 AliMeanVertexPreprocessorOffline.cxx:719 AliMeanVertexPreprocessorOffline.cxx:720 AliMeanVertexPreprocessorOffline.cxx:721 AliMeanVertexPreprocessorOffline.cxx:722 AliMeanVertexPreprocessorOffline.cxx:723 AliMeanVertexPreprocessorOffline.cxx:724 AliMeanVertexPreprocessorOffline.cxx:725 AliMeanVertexPreprocessorOffline.cxx:726 AliMeanVertexPreprocessorOffline.cxx:727 AliMeanVertexPreprocessorOffline.cxx:728 AliMeanVertexPreprocessorOffline.cxx:729 AliMeanVertexPreprocessorOffline.cxx:730 AliMeanVertexPreprocessorOffline.cxx:731 AliMeanVertexPreprocessorOffline.cxx:732 AliMeanVertexPreprocessorOffline.cxx:733 AliMeanVertexPreprocessorOffline.cxx:734 AliMeanVertexPreprocessorOffline.cxx:735 AliMeanVertexPreprocessorOffline.cxx:736 AliMeanVertexPreprocessorOffline.cxx:737 AliMeanVertexPreprocessorOffline.cxx:738 AliMeanVertexPreprocessorOffline.cxx:739 AliMeanVertexPreprocessorOffline.cxx:740 AliMeanVertexPreprocessorOffline.cxx:741 AliMeanVertexPreprocessorOffline.cxx:742 AliMeanVertexPreprocessorOffline.cxx:743 AliMeanVertexPreprocessorOffline.cxx:744 AliMeanVertexPreprocessorOffline.cxx:745 AliMeanVertexPreprocessorOffline.cxx:746 AliMeanVertexPreprocessorOffline.cxx:747 AliMeanVertexPreprocessorOffline.cxx:748 AliMeanVertexPreprocessorOffline.cxx:749 AliMeanVertexPreprocessorOffline.cxx:750 AliMeanVertexPreprocessorOffline.cxx:751 AliMeanVertexPreprocessorOffline.cxx:752 AliMeanVertexPreprocessorOffline.cxx:753 AliMeanVertexPreprocessorOffline.cxx:754 AliMeanVertexPreprocessorOffline.cxx:755 AliMeanVertexPreprocessorOffline.cxx:756 AliMeanVertexPreprocessorOffline.cxx:757 AliMeanVertexPreprocessorOffline.cxx:758 AliMeanVertexPreprocessorOffline.cxx:759 AliMeanVertexPreprocessorOffline.cxx:760 AliMeanVertexPreprocessorOffline.cxx:761 AliMeanVertexPreprocessorOffline.cxx:762 AliMeanVertexPreprocessorOffline.cxx:763 AliMeanVertexPreprocessorOffline.cxx:764