ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//*************************************************************************
// Class AliMeanVertexCalibTask
// AliAnalysisTask to extract from ESD the information on primary vertex
// reconstruction in order to compute the MeanVertex object
//
// Author:  D.Caffarri, davide.caffarri@pd.infn.it  
//          A.Dainese, andrea.dainese@pd.infn.it
//*************************************************************************


#include <TH1F.h>
#include <TH2F.h>
#include <string.h>

#include "AliMultiplicity.h"
#include "AliESDVertex.h"
#include "AliESDEvent.h"
#include "AliVertexerTracks.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliGRPRecoParam.h"

#include "AliMeanVertexCalibTask.h"


ClassImp(AliMeanVertexCalibTask)

//_____________________________________________________________________
AliMeanVertexCalibTask::AliMeanVertexCalibTask(const char *name):
  AliAnalysisTaskSE(name),
  fESD(0), 
  fOutput(0),
  fOnlyITSTPCTracks(kFALSE),
  fOnlyITSSATracks(kTRUE)
{

  // Constructor
  
  // Define input and output slots here
  // Output slot #0 writes into a TList container
  DefineOutput(1, TList::Class());  //My private output
}

//________________________________________________________________________
AliMeanVertexCalibTask::~AliMeanVertexCalibTask()
{
  // Destructor

  if (fOutput) {
    delete fOutput;
    fOutput = 0;
  }
  
}
//________________________________________________________________________
void AliMeanVertexCalibTask::UserCreateOutputObjects()
{

  // Several histograms are more conveniently managed in a TList
  fOutput = new TList;
  fOutput->SetOwner();

  
  TH1F* hSPDVertexX = new TH1F("hSPDVertexX","SPDVertex x; x vertex [cm]; events",200,-1,1);
  fOutput->Add(hSPDVertexX);
  TH1F* hSPDVertexY = new TH1F("hSPDVertexY","SPDVertex y; y vertex [cm]; events",200,-1,1);
  fOutput->Add(hSPDVertexY);
  TH1F* hSPDVertexZ = new TH1F("hSPDVertexZ","SPDVertex z; z vertex [cm]; events",200,-20,20);
  fOutput->Add(hSPDVertexZ);
  TH1F* hTRKVertexX = new TH1F("hTRKVertexX","TRKVertex x; x vertex [cm]; events",200,-1,1);
  fOutput->Add(hTRKVertexX);
  TH1F* hTRKVertexY = new TH1F("hTRKVertexY","TRKVertex y; y vertex [cm]; events",200,-1,1);
  fOutput->Add(hTRKVertexY);
  TH1F* hTRKVertexZ = new TH1F("hTRKVertexZ","TRKVertex z; z vertex [cm]; events",200,-20,20);
  fOutput->Add(hTRKVertexZ);

  TH2F *hTRKVertexXvsMult = new TH2F("hTRKVertexXvsMult", "TRKVertex X vs mult", 200, -1, 1, 300, 0, 3000);
  fOutput->Add(hTRKVertexXvsMult);
  
  TH2F *hTRKVertexYvsMult = new TH2F("hTRKVertexYvsMult", "TRKVertex Y vs mult", 200, -1, 1, 300, 0, 3000);
  fOutput->Add(hTRKVertexYvsMult);
  
  TH2F *hTRKVertexXZ = new TH2F("hTRKVertexXZ", "TRKVertex XZ corr", 200, -1, 1, 200, -20, 20);
  fOutput->Add(hTRKVertexXZ);
  
  TH2F *hTRKVertexYZ = new TH2F("hTRKVertexYZ", "TRKVertex YZ corr", 200, -1, 1, 200, -20, 20);
  fOutput->Add(hTRKVertexYZ);
  
  TH1F* hTRKVertexXdefMult = new TH1F("hTRKVertexXdefMult","TRKVertex x Mult; x vertex [cm] 30<Mult<45; events",500,-1,1);  
  fOutput->Add(hTRKVertexXdefMult);
  TH1F* hTRKVertexYdefMult = new TH1F("hTRKVertexYdefMult","TRKVertex y Mult; y vertex [cm] 30<Mult<45; events",500,-1,1);
  fOutput->Add(hTRKVertexYdefMult);
	
  TH1F* hTRKVertexXHighMult = new TH1F("hTRKVertexXHighMult","TRKVertex x High Mult; x vertex [cm] Mult>1500; events",500,-0.5,0.5);  
  fOutput->Add(hTRKVertexXHighMult);
  TH1F* hTRKVertexYHighMult = new TH1F("hTRKVertexYHighMult","TRKVertex y High Mult; y vertex [cm] Mult>1500; events",500,-0.5,0.5);
  fOutput->Add(hTRKVertexYHighMult);	
  
  TH1F* hITSSAVertexX = new TH1F("hITSSAVertexX","ITSSAVertex x; x vertex [cm]; events",200,-1,1);
  fOutput->Add(hITSSAVertexX);
  TH1F* hITSSAVertexY = new TH1F("hITSSAVertexY","ITSSAVertex y; y vertex [cm]; events",200,-1,1);
  fOutput->Add(hITSSAVertexY);
  TH1F* hITSSAVertexZ = new TH1F("hITSSAVertexZ","ITSSAVertex z; z vertex [cm]; events",200,-20,20);
  fOutput->Add(hITSSAVertexZ);
  
  TH2F *hITSSAVertexXZ = new TH2F("hITSSAVertexXZ", "ITSSAVertex XZ corr", 200, -1, 1, 200, -20, 20);
  fOutput->Add(hITSSAVertexXZ);

  TH2F *hITSSAVertexYZ = new TH2F("hITSSAVertexYZ", "ITSSAVertex YZ corr", 200, -1, 1, 200, -20, 20);
  fOutput->Add(hITSSAVertexYZ);

  TH2F *hITSSAVertexXvsMult = new TH2F("hITSSAVertexXvsMult", "ITSSAVertex X vs mult", 200, -1, 1, 300, 0, 3000);
  fOutput->Add(hITSSAVertexXvsMult);
  
  TH2F *hITSSAVertexYvsMult = new TH2F("hITSSAVertexYvsMult", "ITSSAVertex Y vs mult", 200, -1, 1, 300, 0, 3000);
  fOutput->Add(hITSSAVertexYvsMult);
  
  TH1F* hITSSAVertexXdefMult = new TH1F("hITSSAVertexXdefMult","ITSSAVertex x Mult; x vertex [cm] 30<Mult<45; events",500,-1,1);  
  fOutput->Add(hITSSAVertexXdefMult);
  TH1F* hITSSAVertexYdefMult = new TH1F("hITSSAVertexYdefMult","ITSSAVertex y Mult; y vertex [cm] 30<Mult<45; events",500,-1,1);
  fOutput->Add(hITSSAVertexYdefMult);

  
  TH1F* hITSSAVertexXHighMult = new TH1F("hITSSAVertexXHighMult","ITSSAVertex x High Mult; x vertex [cm] Mult>1500; events",500,-0.5,0.5);  
  fOutput->Add(hITSSAVertexXHighMult);
  TH1F* hITSSAVertexYHighMult = new TH1F("hITSSAVertexYHighMult","ITSSAVertex y High Mult; y vertex [cm] Mult>1500; events",500,-0.5,0.5);
  fOutput->Add(hITSSAVertexYHighMult);
  
  PostData(1, fOutput);
  
  return;
}


//________________________________________________________________________
void AliMeanVertexCalibTask::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event
  
  if (!InputEvent()) {
    Printf("ERROR: fESD not available");
    return;
  }
  
  AliESDEvent* esdE = (AliESDEvent*) InputEvent();

  const AliMultiplicity *alimult = esdE->GetMultiplicity();
  Int_t ntrklets=0;
  if(alimult) ntrklets = alimult->GetNumberOfTracklets();
  
  const char* beamType = esdE->GetBeamType();
  // Printf("beam type = %s", beamType);

  Bool_t kLowFlux = kTRUE, kHighFlux = kFALSE;
  // TString pp= "p-p";
  //TString pA= "p-A";
  TString AA= "A-A";

  if (beamType == AA){ 
    kHighFlux = kTRUE;
    kLowFlux = kFALSE;
    // Printf ("high flux setting");
    }
  
  AliCDBManager* man = AliCDBManager::Instance();
  //man->SetDefaultStorage("raw://");
  Int_t runNb = esdE->GetRunNumber();
  if (runNb > 0) {
    man->SetRun(runNb);
    // Printf("runNb = %d", runNb);
  }
  
  AliCDBEntry *entry = (AliCDBEntry*)man->Get("GRP/Calib/RecoParam/");
  // Printf("entry = %p", entry);
  TObjArray *arrayRecoParam=0x0;
  if (entry) {
    arrayRecoParam = (TObjArray*)entry->GetObject();
    // Printf("arrayRecoParam = %p", arrayRecoParam);
  }
  else { 
    Printf("CDBEntry not found");
    return;
  }
  AliGRPRecoParam *grpRecoParam=0x0;
  if (kLowFlux) grpRecoParam= (AliGRPRecoParam*)arrayRecoParam->At(1);
  else if (kHighFlux) grpRecoParam = (AliGRPRecoParam*)arrayRecoParam->At(2);
  
  AliVertexerTracks *vertexer= new AliVertexerTracks(esdE->GetMagneticField());
  vertexer->SetITSMode();
  vertexer->SetConstraintOff();
    
  if (grpRecoParam) {
    Int_t nCutsVertexer = grpRecoParam->GetVertexerTracksNCuts();
    Double_t *cutsVertexer = new Double_t[nCutsVertexer];
    grpRecoParam->GetVertexerTracksCutsITS(cutsVertexer,nCutsVertexer);
    vertexer->SetCuts(cutsVertexer,nCutsVertexer);
    delete [] cutsVertexer; cutsVertexer = NULL; 
   }
   
  vertexer->SetConstraintOff();

  //track vertex recomputed from the vertexer
  AliESDVertex *trkv = vertexer->FindPrimaryVertex(esdE);
  
  //const AliESDVertex *trkv = esdE->GetPrimaryVertexTracks();
  
  //SPD vertex taken from the ESD 
  const AliESDVertex *spdv = esdE->GetPrimaryVertexSPD();

  //ITSSA vertex computed from the vertexer
  vertexer->SetITSpureSA();
  AliESDVertex *itsSAv = vertexer->FindPrimaryVertex(esdE);

  if(spdv) {
    if(spdv->GetNContributors()>0) {
      TString title=spdv->GetTitle();
      if(title.Contains("3D")) {
	((TH1F*)fOutput->FindObject("hSPDVertexX"))->Fill(spdv->GetX());
	((TH1F*)fOutput->FindObject("hSPDVertexY"))->Fill(spdv->GetY());
      }
      ((TH1F*)fOutput->FindObject("hSPDVertexZ"))->Fill(spdv->GetZ());
    }
  }
  
  
  if(trkv) {
    if(trkv->GetNContributors()>0) {
      ((TH1F*)fOutput->FindObject("hTRKVertexX"))->Fill(trkv->GetX());
      ((TH1F*)fOutput->FindObject("hTRKVertexY"))->Fill(trkv->GetY());
      ((TH1F*)fOutput->FindObject("hTRKVertexZ"))->Fill(trkv->GetZ());

      ((TH2F*)fOutput->FindObject("hTRKVertexXvsMult"))->Fill(trkv->GetX(), ntrklets);
      ((TH2F*)fOutput->FindObject("hTRKVertexYvsMult"))->Fill(trkv->GetY(), ntrklets);
      
      if (ntrklets>30 && ntrklets<45){
	((TH1F*)fOutput->FindObject("hTRKVertexXdefMult"))->Fill(trkv->GetX());
	((TH1F*)fOutput->FindObject("hTRKVertexYdefMult"))->Fill(trkv->GetY());
      }
      
      if (ntrklets>1500){
	((TH1F*)fOutput->FindObject("hTRKVertexXHighMult"))->Fill(trkv->GetX());
	((TH1F*)fOutput->FindObject("hTRKVertexYHighMult"))->Fill(trkv->GetY());
      }
      
      ((TH2F*)fOutput->FindObject("hTRKVertexXZ"))->Fill(trkv->GetX(),trkv->GetZ());
      ((TH2F*)fOutput->FindObject("hTRKVertexYZ"))->Fill(trkv->GetY(),trkv->GetZ());
      
    }
  }
  
  if (itsSAv){
    if (itsSAv->GetNContributors()>0){
      
      ((TH1F*)fOutput->FindObject("hITSSAVertexX"))->Fill(itsSAv->GetX());
      ((TH1F*)fOutput->FindObject("hITSSAVertexY"))->Fill(itsSAv->GetY());
      ((TH1F*)fOutput->FindObject("hITSSAVertexZ"))->Fill(itsSAv->GetZ());

      ((TH2F*)fOutput->FindObject("hITSSAVertexXvsMult"))->Fill(itsSAv->GetX(), ntrklets);
      ((TH2F*)fOutput->FindObject("hITSSAVertexYvsMult"))->Fill(itsSAv->GetY(), ntrklets);
      
      if (ntrklets>30 && ntrklets<45){
	((TH1F*)fOutput->FindObject("hITSSAVertexXdefMult"))->Fill(itsSAv->GetX());
	((TH1F*)fOutput->FindObject("hITSSAVertexYdefMult"))->Fill(itsSAv->GetY());
      }
      
      if (ntrklets>1500){
	((TH1F*)fOutput->FindObject("hITSSAVertexXHighMult"))->Fill(itsSAv->GetX());
	((TH1F*)fOutput->FindObject("hITSSAVertexYHighMult"))->Fill(itsSAv->GetY());
      }
      
      ((TH2F*)fOutput->FindObject("hITSSAVertexXZ"))->Fill(itsSAv->GetX(),itsSAv->GetZ());
      ((TH2F*)fOutput->FindObject("hITSSAVertexYZ"))->Fill(itsSAv->GetY(),itsSAv->GetZ());
      
    }
  }

  delete itsSAv;
  delete vertexer;
  
  PostData(1, fOutput);
  
  return;
  
}


//________________________________________________________________________
void AliMeanVertexCalibTask::Terminate(Option_t *) 
{
  // Draw result to the screen
  // Called once at the end of the query
  fOutput = dynamic_cast<TList*> (GetOutputData(1));
  if (!fOutput) {     
    Printf("ERROR: fOutput not available");
    return;
  }


  return;

}


//__________________________________________________________________________
// AliESDVertex* AliMeanVertexCalibTask::ReconstructPrimaryVertex(Bool_t constr,Int_t mode) const {
//   // On the fly reco of ITS+TPC vertex from ESD
//   // mode=0 use all tracks
//   // mode=1 use odd-number tracks
//   // mode=2 use even-number tracks

//   AliESDEvent* evt = (AliESDEvent*) fInputEvent;
//   AliVertexerTracks vertexer(evt->GetMagneticField());
//   if(evt->GetNumberOfTracks()<500) {
//     vertexer.SetITSMode(); // defaults
//     vertexer.SetMinClusters(4); // default is 5
//   } else { 
//     vertexer.SetITSMode(0.1,0.1,0.5,5,1,3.,100.,1000.,3.,30.,1,1);// PbPb
//   } 
//   if (fOnlyITSSATracks) vertexer.SetITSpureSA();
  
//   Float_t diamondcovxy[3]; evt->GetDiamondCovXY(diamondcovxy);
//   Double_t pos[3]={evt->GetDiamondX(),evt->GetDiamondY(),0}; 
//   Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
//   AliESDVertex *initVertex = new AliESDVertex(pos,cov,1.,1);
//   vertexer.SetVtxStart(initVertex);
//   delete initVertex;
//   if(!constr) vertexer.SetConstraintOff();

//   if(fOnlyITSTPCTracks || fOnlyITSSATracks || mode>0) {
//     Int_t iskip=0;
//     Int_t ntracks = evt->GetNumberOfTracks();
//     Int_t *skip = new Int_t[ntracks];
//     for(Int_t i=0;i<ntracks;i++) skip[i]=-1;
//     for(Int_t itr=0;itr<ntracks; itr++) {
//       AliESDtrack* track = evt->GetTrack(itr);
//       if(fOnlyITSTPCTracks && track->GetNcls(1)==0) { // skip ITSSA
// 	skip[iskip++]=itr;
// 	continue;
//       }
//       if(fOnlyITSSATracks && track->GetNcls(1)>0) { // skip ITSTPC
// 	skip[iskip++]=itr;
// 	continue;
//       }
//       if(mode==1 && itr%2==0) skip[iskip++]=itr;
//       if(mode==2 && itr%2==1) skip[iskip++]=itr;
//     }
//     vertexer.SetSkipTracks(iskip,skip);
//     delete [] skip; skip=NULL;
//   }
  
//   return vertexer.FindPrimaryVertex(evt);
// }
 AliMeanVertexCalibTask.cxx:1
 AliMeanVertexCalibTask.cxx:2
 AliMeanVertexCalibTask.cxx:3
 AliMeanVertexCalibTask.cxx:4
 AliMeanVertexCalibTask.cxx:5
 AliMeanVertexCalibTask.cxx:6
 AliMeanVertexCalibTask.cxx:7
 AliMeanVertexCalibTask.cxx:8
 AliMeanVertexCalibTask.cxx:9
 AliMeanVertexCalibTask.cxx:10
 AliMeanVertexCalibTask.cxx:11
 AliMeanVertexCalibTask.cxx:12
 AliMeanVertexCalibTask.cxx:13
 AliMeanVertexCalibTask.cxx:14
 AliMeanVertexCalibTask.cxx:15
 AliMeanVertexCalibTask.cxx:16
 AliMeanVertexCalibTask.cxx:17
 AliMeanVertexCalibTask.cxx:18
 AliMeanVertexCalibTask.cxx:19
 AliMeanVertexCalibTask.cxx:20
 AliMeanVertexCalibTask.cxx:21
 AliMeanVertexCalibTask.cxx:22
 AliMeanVertexCalibTask.cxx:23
 AliMeanVertexCalibTask.cxx:24
 AliMeanVertexCalibTask.cxx:25
 AliMeanVertexCalibTask.cxx:26
 AliMeanVertexCalibTask.cxx:27
 AliMeanVertexCalibTask.cxx:28
 AliMeanVertexCalibTask.cxx:29
 AliMeanVertexCalibTask.cxx:30
 AliMeanVertexCalibTask.cxx:31
 AliMeanVertexCalibTask.cxx:32
 AliMeanVertexCalibTask.cxx:33
 AliMeanVertexCalibTask.cxx:34
 AliMeanVertexCalibTask.cxx:35
 AliMeanVertexCalibTask.cxx:36
 AliMeanVertexCalibTask.cxx:37
 AliMeanVertexCalibTask.cxx:38
 AliMeanVertexCalibTask.cxx:39
 AliMeanVertexCalibTask.cxx:40
 AliMeanVertexCalibTask.cxx:41
 AliMeanVertexCalibTask.cxx:42
 AliMeanVertexCalibTask.cxx:43
 AliMeanVertexCalibTask.cxx:44
 AliMeanVertexCalibTask.cxx:45
 AliMeanVertexCalibTask.cxx:46
 AliMeanVertexCalibTask.cxx:47
 AliMeanVertexCalibTask.cxx:48
 AliMeanVertexCalibTask.cxx:49
 AliMeanVertexCalibTask.cxx:50
 AliMeanVertexCalibTask.cxx:51
 AliMeanVertexCalibTask.cxx:52
 AliMeanVertexCalibTask.cxx:53
 AliMeanVertexCalibTask.cxx:54
 AliMeanVertexCalibTask.cxx:55
 AliMeanVertexCalibTask.cxx:56
 AliMeanVertexCalibTask.cxx:57
 AliMeanVertexCalibTask.cxx:58
 AliMeanVertexCalibTask.cxx:59
 AliMeanVertexCalibTask.cxx:60
 AliMeanVertexCalibTask.cxx:61
 AliMeanVertexCalibTask.cxx:62
 AliMeanVertexCalibTask.cxx:63
 AliMeanVertexCalibTask.cxx:64
 AliMeanVertexCalibTask.cxx:65
 AliMeanVertexCalibTask.cxx:66
 AliMeanVertexCalibTask.cxx:67
 AliMeanVertexCalibTask.cxx:68
 AliMeanVertexCalibTask.cxx:69
 AliMeanVertexCalibTask.cxx:70
 AliMeanVertexCalibTask.cxx:71
 AliMeanVertexCalibTask.cxx:72
 AliMeanVertexCalibTask.cxx:73
 AliMeanVertexCalibTask.cxx:74
 AliMeanVertexCalibTask.cxx:75
 AliMeanVertexCalibTask.cxx:76
 AliMeanVertexCalibTask.cxx:77
 AliMeanVertexCalibTask.cxx:78
 AliMeanVertexCalibTask.cxx:79
 AliMeanVertexCalibTask.cxx:80
 AliMeanVertexCalibTask.cxx:81
 AliMeanVertexCalibTask.cxx:82
 AliMeanVertexCalibTask.cxx:83
 AliMeanVertexCalibTask.cxx:84
 AliMeanVertexCalibTask.cxx:85
 AliMeanVertexCalibTask.cxx:86
 AliMeanVertexCalibTask.cxx:87
 AliMeanVertexCalibTask.cxx:88
 AliMeanVertexCalibTask.cxx:89
 AliMeanVertexCalibTask.cxx:90
 AliMeanVertexCalibTask.cxx:91
 AliMeanVertexCalibTask.cxx:92
 AliMeanVertexCalibTask.cxx:93
 AliMeanVertexCalibTask.cxx:94
 AliMeanVertexCalibTask.cxx:95
 AliMeanVertexCalibTask.cxx:96
 AliMeanVertexCalibTask.cxx:97
 AliMeanVertexCalibTask.cxx:98
 AliMeanVertexCalibTask.cxx:99
 AliMeanVertexCalibTask.cxx:100
 AliMeanVertexCalibTask.cxx:101
 AliMeanVertexCalibTask.cxx:102
 AliMeanVertexCalibTask.cxx:103
 AliMeanVertexCalibTask.cxx:104
 AliMeanVertexCalibTask.cxx:105
 AliMeanVertexCalibTask.cxx:106
 AliMeanVertexCalibTask.cxx:107
 AliMeanVertexCalibTask.cxx:108
 AliMeanVertexCalibTask.cxx:109
 AliMeanVertexCalibTask.cxx:110
 AliMeanVertexCalibTask.cxx:111
 AliMeanVertexCalibTask.cxx:112
 AliMeanVertexCalibTask.cxx:113
 AliMeanVertexCalibTask.cxx:114
 AliMeanVertexCalibTask.cxx:115
 AliMeanVertexCalibTask.cxx:116
 AliMeanVertexCalibTask.cxx:117
 AliMeanVertexCalibTask.cxx:118
 AliMeanVertexCalibTask.cxx:119
 AliMeanVertexCalibTask.cxx:120
 AliMeanVertexCalibTask.cxx:121
 AliMeanVertexCalibTask.cxx:122
 AliMeanVertexCalibTask.cxx:123
 AliMeanVertexCalibTask.cxx:124
 AliMeanVertexCalibTask.cxx:125
 AliMeanVertexCalibTask.cxx:126
 AliMeanVertexCalibTask.cxx:127
 AliMeanVertexCalibTask.cxx:128
 AliMeanVertexCalibTask.cxx:129
 AliMeanVertexCalibTask.cxx:130
 AliMeanVertexCalibTask.cxx:131
 AliMeanVertexCalibTask.cxx:132
 AliMeanVertexCalibTask.cxx:133
 AliMeanVertexCalibTask.cxx:134
 AliMeanVertexCalibTask.cxx:135
 AliMeanVertexCalibTask.cxx:136
 AliMeanVertexCalibTask.cxx:137
 AliMeanVertexCalibTask.cxx:138
 AliMeanVertexCalibTask.cxx:139
 AliMeanVertexCalibTask.cxx:140
 AliMeanVertexCalibTask.cxx:141
 AliMeanVertexCalibTask.cxx:142
 AliMeanVertexCalibTask.cxx:143
 AliMeanVertexCalibTask.cxx:144
 AliMeanVertexCalibTask.cxx:145
 AliMeanVertexCalibTask.cxx:146
 AliMeanVertexCalibTask.cxx:147
 AliMeanVertexCalibTask.cxx:148
 AliMeanVertexCalibTask.cxx:149
 AliMeanVertexCalibTask.cxx:150
 AliMeanVertexCalibTask.cxx:151
 AliMeanVertexCalibTask.cxx:152
 AliMeanVertexCalibTask.cxx:153
 AliMeanVertexCalibTask.cxx:154
 AliMeanVertexCalibTask.cxx:155
 AliMeanVertexCalibTask.cxx:156
 AliMeanVertexCalibTask.cxx:157
 AliMeanVertexCalibTask.cxx:158
 AliMeanVertexCalibTask.cxx:159
 AliMeanVertexCalibTask.cxx:160
 AliMeanVertexCalibTask.cxx:161
 AliMeanVertexCalibTask.cxx:162
 AliMeanVertexCalibTask.cxx:163
 AliMeanVertexCalibTask.cxx:164
 AliMeanVertexCalibTask.cxx:165
 AliMeanVertexCalibTask.cxx:166
 AliMeanVertexCalibTask.cxx:167
 AliMeanVertexCalibTask.cxx:168
 AliMeanVertexCalibTask.cxx:169
 AliMeanVertexCalibTask.cxx:170
 AliMeanVertexCalibTask.cxx:171
 AliMeanVertexCalibTask.cxx:172
 AliMeanVertexCalibTask.cxx:173
 AliMeanVertexCalibTask.cxx:174
 AliMeanVertexCalibTask.cxx:175
 AliMeanVertexCalibTask.cxx:176
 AliMeanVertexCalibTask.cxx:177
 AliMeanVertexCalibTask.cxx:178
 AliMeanVertexCalibTask.cxx:179
 AliMeanVertexCalibTask.cxx:180
 AliMeanVertexCalibTask.cxx:181
 AliMeanVertexCalibTask.cxx:182
 AliMeanVertexCalibTask.cxx:183
 AliMeanVertexCalibTask.cxx:184
 AliMeanVertexCalibTask.cxx:185
 AliMeanVertexCalibTask.cxx:186
 AliMeanVertexCalibTask.cxx:187
 AliMeanVertexCalibTask.cxx:188
 AliMeanVertexCalibTask.cxx:189
 AliMeanVertexCalibTask.cxx:190
 AliMeanVertexCalibTask.cxx:191
 AliMeanVertexCalibTask.cxx:192
 AliMeanVertexCalibTask.cxx:193
 AliMeanVertexCalibTask.cxx:194
 AliMeanVertexCalibTask.cxx:195
 AliMeanVertexCalibTask.cxx:196
 AliMeanVertexCalibTask.cxx:197
 AliMeanVertexCalibTask.cxx:198
 AliMeanVertexCalibTask.cxx:199
 AliMeanVertexCalibTask.cxx:200
 AliMeanVertexCalibTask.cxx:201
 AliMeanVertexCalibTask.cxx:202
 AliMeanVertexCalibTask.cxx:203
 AliMeanVertexCalibTask.cxx:204
 AliMeanVertexCalibTask.cxx:205
 AliMeanVertexCalibTask.cxx:206
 AliMeanVertexCalibTask.cxx:207
 AliMeanVertexCalibTask.cxx:208
 AliMeanVertexCalibTask.cxx:209
 AliMeanVertexCalibTask.cxx:210
 AliMeanVertexCalibTask.cxx:211
 AliMeanVertexCalibTask.cxx:212
 AliMeanVertexCalibTask.cxx:213
 AliMeanVertexCalibTask.cxx:214
 AliMeanVertexCalibTask.cxx:215
 AliMeanVertexCalibTask.cxx:216
 AliMeanVertexCalibTask.cxx:217
 AliMeanVertexCalibTask.cxx:218
 AliMeanVertexCalibTask.cxx:219
 AliMeanVertexCalibTask.cxx:220
 AliMeanVertexCalibTask.cxx:221
 AliMeanVertexCalibTask.cxx:222
 AliMeanVertexCalibTask.cxx:223
 AliMeanVertexCalibTask.cxx:224
 AliMeanVertexCalibTask.cxx:225
 AliMeanVertexCalibTask.cxx:226
 AliMeanVertexCalibTask.cxx:227
 AliMeanVertexCalibTask.cxx:228
 AliMeanVertexCalibTask.cxx:229
 AliMeanVertexCalibTask.cxx:230
 AliMeanVertexCalibTask.cxx:231
 AliMeanVertexCalibTask.cxx:232
 AliMeanVertexCalibTask.cxx:233
 AliMeanVertexCalibTask.cxx:234
 AliMeanVertexCalibTask.cxx:235
 AliMeanVertexCalibTask.cxx:236
 AliMeanVertexCalibTask.cxx:237
 AliMeanVertexCalibTask.cxx:238
 AliMeanVertexCalibTask.cxx:239
 AliMeanVertexCalibTask.cxx:240
 AliMeanVertexCalibTask.cxx:241
 AliMeanVertexCalibTask.cxx:242
 AliMeanVertexCalibTask.cxx:243
 AliMeanVertexCalibTask.cxx:244
 AliMeanVertexCalibTask.cxx:245
 AliMeanVertexCalibTask.cxx:246
 AliMeanVertexCalibTask.cxx:247
 AliMeanVertexCalibTask.cxx:248
 AliMeanVertexCalibTask.cxx:249
 AliMeanVertexCalibTask.cxx:250
 AliMeanVertexCalibTask.cxx:251
 AliMeanVertexCalibTask.cxx:252
 AliMeanVertexCalibTask.cxx:253
 AliMeanVertexCalibTask.cxx:254
 AliMeanVertexCalibTask.cxx:255
 AliMeanVertexCalibTask.cxx:256
 AliMeanVertexCalibTask.cxx:257
 AliMeanVertexCalibTask.cxx:258
 AliMeanVertexCalibTask.cxx:259
 AliMeanVertexCalibTask.cxx:260
 AliMeanVertexCalibTask.cxx:261
 AliMeanVertexCalibTask.cxx:262
 AliMeanVertexCalibTask.cxx:263
 AliMeanVertexCalibTask.cxx:264
 AliMeanVertexCalibTask.cxx:265
 AliMeanVertexCalibTask.cxx:266
 AliMeanVertexCalibTask.cxx:267
 AliMeanVertexCalibTask.cxx:268
 AliMeanVertexCalibTask.cxx:269
 AliMeanVertexCalibTask.cxx:270
 AliMeanVertexCalibTask.cxx:271
 AliMeanVertexCalibTask.cxx:272
 AliMeanVertexCalibTask.cxx:273
 AliMeanVertexCalibTask.cxx:274
 AliMeanVertexCalibTask.cxx:275
 AliMeanVertexCalibTask.cxx:276
 AliMeanVertexCalibTask.cxx:277
 AliMeanVertexCalibTask.cxx:278
 AliMeanVertexCalibTask.cxx:279
 AliMeanVertexCalibTask.cxx:280
 AliMeanVertexCalibTask.cxx:281
 AliMeanVertexCalibTask.cxx:282
 AliMeanVertexCalibTask.cxx:283
 AliMeanVertexCalibTask.cxx:284
 AliMeanVertexCalibTask.cxx:285
 AliMeanVertexCalibTask.cxx:286
 AliMeanVertexCalibTask.cxx:287
 AliMeanVertexCalibTask.cxx:288
 AliMeanVertexCalibTask.cxx:289
 AliMeanVertexCalibTask.cxx:290
 AliMeanVertexCalibTask.cxx:291
 AliMeanVertexCalibTask.cxx:292
 AliMeanVertexCalibTask.cxx:293
 AliMeanVertexCalibTask.cxx:294
 AliMeanVertexCalibTask.cxx:295
 AliMeanVertexCalibTask.cxx:296
 AliMeanVertexCalibTask.cxx:297
 AliMeanVertexCalibTask.cxx:298
 AliMeanVertexCalibTask.cxx:299
 AliMeanVertexCalibTask.cxx:300
 AliMeanVertexCalibTask.cxx:301
 AliMeanVertexCalibTask.cxx:302
 AliMeanVertexCalibTask.cxx:303
 AliMeanVertexCalibTask.cxx:304
 AliMeanVertexCalibTask.cxx:305
 AliMeanVertexCalibTask.cxx:306
 AliMeanVertexCalibTask.cxx:307
 AliMeanVertexCalibTask.cxx:308
 AliMeanVertexCalibTask.cxx:309
 AliMeanVertexCalibTask.cxx:310
 AliMeanVertexCalibTask.cxx:311
 AliMeanVertexCalibTask.cxx:312
 AliMeanVertexCalibTask.cxx:313
 AliMeanVertexCalibTask.cxx:314
 AliMeanVertexCalibTask.cxx:315
 AliMeanVertexCalibTask.cxx:316
 AliMeanVertexCalibTask.cxx:317
 AliMeanVertexCalibTask.cxx:318
 AliMeanVertexCalibTask.cxx:319
 AliMeanVertexCalibTask.cxx:320
 AliMeanVertexCalibTask.cxx:321
 AliMeanVertexCalibTask.cxx:322
 AliMeanVertexCalibTask.cxx:323
 AliMeanVertexCalibTask.cxx:324
 AliMeanVertexCalibTask.cxx:325
 AliMeanVertexCalibTask.cxx:326
 AliMeanVertexCalibTask.cxx:327
 AliMeanVertexCalibTask.cxx:328
 AliMeanVertexCalibTask.cxx:329
 AliMeanVertexCalibTask.cxx:330
 AliMeanVertexCalibTask.cxx:331
 AliMeanVertexCalibTask.cxx:332
 AliMeanVertexCalibTask.cxx:333
 AliMeanVertexCalibTask.cxx:334
 AliMeanVertexCalibTask.cxx:335
 AliMeanVertexCalibTask.cxx:336
 AliMeanVertexCalibTask.cxx:337
 AliMeanVertexCalibTask.cxx:338
 AliMeanVertexCalibTask.cxx:339
 AliMeanVertexCalibTask.cxx:340
 AliMeanVertexCalibTask.cxx:341
 AliMeanVertexCalibTask.cxx:342
 AliMeanVertexCalibTask.cxx:343
 AliMeanVertexCalibTask.cxx:344
 AliMeanVertexCalibTask.cxx:345
 AliMeanVertexCalibTask.cxx:346
 AliMeanVertexCalibTask.cxx:347
 AliMeanVertexCalibTask.cxx:348
 AliMeanVertexCalibTask.cxx:349
 AliMeanVertexCalibTask.cxx:350
 AliMeanVertexCalibTask.cxx:351
 AliMeanVertexCalibTask.cxx:352
 AliMeanVertexCalibTask.cxx:353
 AliMeanVertexCalibTask.cxx:354
 AliMeanVertexCalibTask.cxx:355
 AliMeanVertexCalibTask.cxx:356
 AliMeanVertexCalibTask.cxx:357
 AliMeanVertexCalibTask.cxx:358
 AliMeanVertexCalibTask.cxx:359
 AliMeanVertexCalibTask.cxx:360
 AliMeanVertexCalibTask.cxx:361
 AliMeanVertexCalibTask.cxx:362
 AliMeanVertexCalibTask.cxx:363
 AliMeanVertexCalibTask.cxx:364
 AliMeanVertexCalibTask.cxx:365
 AliMeanVertexCalibTask.cxx:366
 AliMeanVertexCalibTask.cxx:367
 AliMeanVertexCalibTask.cxx:368