M CalibTimeVdrift.C - using smoothing of kalman filters
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Dec 2009 17:23:10 +0000 (17:23 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Dec 2009 17:23:10 +0000 (17:23 +0000)
M      CalibCosmic.C       - more QA plots
M      CalibTimeGain.C     - adding example tp store the data in local OCDB
M      CalibLaserVscan.C   - adding example to create reference tree
M      submitcalib.sh      - removed obsolete script

TPC/CalibMacros/CalibCosmic.C
TPC/CalibMacros/CalibLaserVscan.C
TPC/CalibMacros/CalibTimeGain.C
TPC/CalibMacros/CalibTimeVdrift.C
TPC/CalibMacros/submitcalib.sh [deleted file]

index 58b3a9a..8dd08a1 100644 (file)
@@ -1,4 +1,8 @@
 /*
+Draw result of perfomance test:
+
+aliroot -b -q  $ALICE_ROOT/TPC/scripts/loadTPCcalib.C $ALICE_ROOT/TPC/CalibMacros/CalibCosmic.C
+
   //gROOT->Macro("~/NimStyle.C");
   gSystem->Load("libANALYSIS");
   gSystem->Load("libTPCcalib");
   //
   MakeDefaultPlots();
 
+  gROOT->Macro("~/NimStyle.C");
+  TFile f("cosmicPlots.root");
+  TBrowser b
+  b.Add(CosmicPlots,"CosmicPlot");
 
 */  
 
 AliTPCcalibCosmic * cosmic =0;
 TObjArray fitArr;
+Int_t colors[3]={1,3,4};
 
 void CalibCosmic(){
   // init
@@ -64,11 +73,11 @@ void SetDefaultCut(){
     cosmic->fHistoDelta[i]->GetAxis(1)->SetRangeUser(120,200);
     cosmic->fHistoPull[i]->GetAxis(1)->SetRangeUser(120,200);
     //cut on DCA r
-    cosmic->fHistoDelta[i]->GetAxis(2)->SetRangeUser(0,30);
-    cosmic->fHistoPull[i]->GetAxis(2)->SetRangeUser(0,30);
+    cosmic->fHistoDelta[i]->GetAxis(2)->SetRangeUser(0,15);
+    cosmic->fHistoPull[i]->GetAxis(2)->SetRangeUser(0,15);
     //cut on z at
-    cosmic->fHistoDelta[i]->GetAxis(3)->SetRangeUser(-0,100);
-    cosmic->fHistoPull[i]->GetAxis(3)->SetRangeUser(-0,100);
+    cosmic->fHistoDelta[i]->GetAxis(3)->SetRangeUser(20,200);
+    cosmic->fHistoPull[i]->GetAxis(3)->SetRangeUser(20,200);
   }
   cosmic->fHistoDelta[0]->GetAxis(0)->SetRangeUser(-1,1);
   cosmic->fHistoDelta[1]->GetAxis(0)->SetRangeUser(-1,1);
@@ -93,6 +102,8 @@ TH1* GetFit2D(Int_t type, Int_t var, Bool_t resol){
   if (!resol) hres = (TH1*)(fitArr.At(1)->Clone());
   hres->SetMarkerStyle(20);
   hres->SetMarkerColor(2);
+  hres->GetYaxis()->SetTitleOffset(1.8);
+  hres->GetYaxis()->SetDecimals(kTRUE);
   return hres;
 }
 
@@ -197,7 +208,7 @@ void DrawStat(Int_t coord, TObjArray *array=0){
   //
   //
   TCanvas *cStat = new TCanvas(Form("Cosmic stat%d",coord), Form("CosmicStat%d",coord),800,600);
-  Float_t mx0=0.12, mx1=0.1, my0=0.15, my1=0.1;
+  Float_t mx0=0.2, mx1=0.05, my0=0.15, my1=0.1;
   //pad->SetMargin(mx0,mx1,my0,my1);
   cStat->Divide(3,3);
   for (Int_t i=0; i<8; i++){
@@ -208,7 +219,7 @@ void DrawStat(Int_t coord, TObjArray *array=0){
 }
 
 void SetStylePad(TVirtualPad *pad){
-  Float_t mx0=0.12, mx1=0.1, my0=0.15, my1=0.1;
+  Float_t mx0=0.2, mx1=0.05, my0=0.15, my1=0.1;
   pad->SetMargin(mx0,mx1,my0,my1);
   pad->SetTicks(1,1);
   pad->SetGrid(1,1); 
@@ -224,30 +235,87 @@ void MakePlotPt(TObjArray * array){
   //
   TH1 * hisRes=0;
   TH1 * hisMean=0;
-  hisRes  = GetFit2D(5,7,kTRUE);
-  hisMean = GetFit2D(5,7,kFALSE);
-  hisRes->SetMarkerStyle(20);
-  hisMean->SetMarkerStyle(20);
-  hisRes->Scale(100);
-  hisMean->Scale(100);
-  hisRes->SetMaximum(30);
-  hisRes->SetMinimum(0);
-  hisMean->SetMaximum(3);
-  hisMean->SetMinimum(-3);
-  hisRes->SetName("Pt resol");
-  hisRes->SetName("p_{t} resolution");
-  hisRes->SetYTitle("#sigma_{p_{t}}/p_{t} (%)");
-  hisMean->SetYTitle("#Delta_{p_{t}}/p_{t} (%)");
-  hisRes->GetXaxis()->SetRangeUser(0,20);
-  hisMean->GetXaxis()->SetRangeUser(0,20);  
-  cptRes->cd(2); 
-  hisRes->Draw("");
-  cptRes->cd(1);
-  hisMean->Draw();
+  for (Int_t i=0; i<3; i++){
+    if (i==0) cosmic->fHistoDelta[5]->GetAxis(6)->SetRangeUser(0,2);
+    if (i==1) cosmic->fHistoDelta[5]->GetAxis(6)->SetRangeUser(-2,0);
+    if (i==2) cosmic->fHistoDelta[5]->GetAxis(6)->SetRangeUser(-2,2);  
+    hisRes  = GetFit2D(5,7,kTRUE);
+    hisMean = GetFit2D(5,7,kFALSE);
+    hisRes->SetMarkerStyle(20);
+    hisMean->SetMarkerStyle(20);
+    hisRes->SetMarkerColor(colors[i]);
+    hisMean->SetMarkerColor(colors[i]);
+    hisRes->Scale(100);
+    hisMean->Scale(100);
+    hisRes->SetMaximum(30);
+    hisRes->SetMinimum(0);
+    hisMean->SetMaximum(20);
+    hisMean->SetMinimum(-20);
+    hisRes->SetName("Pt resol");
+    hisRes->SetName("p_{t} resolution");
+    hisRes->SetYTitle("#sigma_{p_{t}}/p_{t} (%)");
+    hisMean->SetYTitle("#Delta_{p_{t}}/p_{t} (%)");
+    hisRes->GetXaxis()->SetRangeUser(0,10);
+    hisMean->GetXaxis()->SetRangeUser(0,10);  
+    cptRes->cd(2); 
+    hisRes->Draw("same");
+    if (i==0) hisRes->Draw("");
+    cptRes->cd(1);
+    hisMean->Draw("same");
+    if (i==0) hisMean->Draw("");
+  }
   if (array) array->AddLast(cptRes);
 }
 
 
+void MakePlotP4(TObjArray * array){
+  //
+  //
+  TCanvas *cptRes = new TCanvas("TPCP4Resol","TPCP4Resol",600,500);
+  cptRes->Divide(2,1);
+  SetStylePad(cptRes->cd(1));
+  SetStylePad(cptRes->cd(2));
+  //
+  TH1 * hisRes  =0;
+  TH1 * hisMeanP=0;
+  
+  for (Int_t i=0; i<3; i++){
+    if (i==0) cosmic->fHistoDelta[4]->GetAxis(6)->SetRangeUser(0,2);
+    if (i==1) cosmic->fHistoDelta[4]->GetAxis(6)->SetRangeUser(-2,0);
+    if (i==2) cosmic->fHistoDelta[4]->GetAxis(6)->SetRangeUser(-2,2);
+    hisRes  = GetFit2D(4,7,kTRUE);
+    hisMean = GetFit2D(4,7,kFALSE);
+    hisRes->SetMarkerStyle(20+i);
+    hisMean->SetMarkerStyle(20+i);
+    hisMean->SetMarkerColor(colors[i]);
+    hisRes->SetMarkerColor(colors[i]);
+    hisRes->SetMaximum(0.04);
+    hisRes->SetMinimum(-0.0);
+    hisMean->SetMaximum(0.02);
+    hisMean->SetMinimum(-0.02);
+    hisRes->SetName("C resol");
+    hisRes->SetName("C resolution");
+    hisRes->SetYTitle("#sigma_{C} (1/GeV)");
+    hisMean->SetYTitle("#Delta_{C} (1/GeV)");
+    hisMean->SetXTitle("p_{t} (GeV)");
+    hisRes->SetXTitle("p_{t} (GeV)");
+    hisRes->GetXaxis()->SetRangeUser(0,10);
+    hisMean->GetXaxis()->SetRangeUser(0,10);      
+    cptRes->cd(2); 
+    hisRes->Draw("same");
+    if (i==0) hisRes->Draw("");
+    cptRes->cd(1);
+    hisMean->Draw("same");
+    if (i==0) hisMean->Draw("");
+  }
+  if (array) array->AddLast(cptRes);
+}
+
+
+
+
+
+
 void MakePlotPosY(TObjArray * array){
   //
   //
@@ -258,22 +326,35 @@ void MakePlotPosY(TObjArray * array){
   //
   TH1 * hisRes=0;
   TH1 * hisMean=0;
-  hisRes  = GetFit2D(0,7,kTRUE);
-  hisMean = GetFit2D(0,7,kFALSE);
-  hisRes->SetMaximum(0.4);
-  hisRes->SetMinimum(0.0);
-  hisMean->SetMaximum(0.2);
-  hisMean->SetMinimum(-0.2);
-  hisRes->SetName("Y resol");
-  hisRes->SetName("Y resolution");
-  hisRes->SetYTitle("#sigma_{y} (cm)");
-  hisMean->SetYTitle("#Delta_{y} (cm)");
-  hisRes->GetXaxis()->SetRangeUser(0,20);
-  hisMean->GetXaxis()->SetRangeUser(0,20);  
-  cptRes->cd(2); 
-  hisRes->Draw("");
-  cptRes->cd(1);
-  hisMean->Draw();
+  for (Int_t i=0; i<3; i++){
+    if (i==0) cosmic->fHistoDelta[0]->GetAxis(6)->SetRangeUser(0,2);
+    if (i==1) cosmic->fHistoDelta[0]->GetAxis(6)->SetRangeUser(-2,0);
+    if (i==2) cosmic->fHistoDelta[0]->GetAxis(6)->SetRangeUser(-2,2);
+    hisRes  = GetFit2D(0,7,kTRUE);
+    hisMean = GetFit2D(0,7,kFALSE);
+    hisRes->SetMarkerStyle(20+i);
+    hisMean->SetMarkerStyle(20+i);
+    hisMean->SetMarkerColor(colors[i]);
+    hisRes->SetMarkerColor(colors[i]);
+    
+    //
+    hisRes->SetMaximum(0.4);
+    hisRes->SetMinimum(0.0);
+    hisMean->SetMaximum(0.4);
+    hisMean->SetMinimum(-0.4);
+    hisRes->SetName("Y resol");
+    hisRes->SetName("Y resolution");
+    hisRes->SetYTitle("#sigma_{y} (cm)");
+    hisMean->SetYTitle("#Delta_{y} (cm)");
+    hisRes->GetXaxis()->SetRangeUser(0,10);
+    hisMean->GetXaxis()->SetRangeUser(0,10);  
+    cptRes->cd(2); 
+    hisRes->Draw("same");
+    if (i==0) hisRes->Draw("");
+    cptRes->cd(1);
+    hisMean->Draw("same");
+    if (i==0) hisMean->Draw("");
+  }
   if (array) array->AddLast(cptRes);
 }
 
@@ -287,22 +368,35 @@ void MakePlotPosZ(TObjArray * array){
   //
   TH1 * hisRes=0;
   TH1 * hisMean=0;
-  hisRes  = GetFit2D(1,7,kTRUE);
-  hisMean = GetFit2D(1,7,kFALSE);
-  hisRes->SetMaximum(0.4);
-  hisRes->SetMinimum(0.0);
-  hisMean->SetMaximum(0.2);
-  hisMean->SetMinimum(-0.2);
-  hisRes->SetName("Z resol");
-  hisRes->SetName("Z resolution");
-  hisRes->SetYTitle("#sigma_{z} (cm)");
-  hisMean->SetYTitle("#Delta_{z} (cm)");
-  hisRes->GetXaxis()->SetRangeUser(0,20);
-  hisMean->GetXaxis()->SetRangeUser(0,20);  
-  cptRes->cd(2); 
-  hisRes->Draw("");
-  cptRes->cd(1);
-  hisMean->Draw();
+  for (Int_t i=0; i<3; i++){
+    if (i==0) cosmic->fHistoDelta[1]->GetAxis(6)->SetRangeUser(0,2);
+    if (i==1) cosmic->fHistoDelta[1]->GetAxis(6)->SetRangeUser(-2,0);
+    if (i==2) cosmic->fHistoDelta[1]->GetAxis(6)->SetRangeUser(-2,2);
+    
+    hisRes  = GetFit2D(1,7,kTRUE);
+    hisMean = GetFit2D(1,7,kFALSE);
+    hisRes->SetMaximum(0.4);
+    hisRes->SetMinimum(0.0);
+    hisMean->SetMaximum(0.2);
+    hisMean->SetMinimum(-0.2); 
+    hisRes->SetMarkerStyle(20);
+    hisMean->SetMarkerStyle(20);
+    hisRes->SetMarkerColor(colors[i]);
+    hisMean->SetMarkerColor(colors[i]);
+    hisRes->SetName("Z resol");
+    hisRes->SetName("Z resolution");
+    hisRes->SetYTitle("#sigma_{z} (cm)");
+    hisMean->SetYTitle("#Delta_{z} (cm)");
+    hisRes->GetXaxis()->SetRangeUser(0,10);
+    hisMean->GetXaxis()->SetRangeUser(0,10);  
+    cptRes->cd(2); 
+    hisRes->Draw("same");
+    if (i==0) hisRes->Draw();
+    cptRes->cd(1);
+    hisMean->Draw("same");
+    if (i==0) hisMean->Draw();
+  }
   if (array) array->AddLast(cptRes);
 }
 
@@ -316,7 +410,21 @@ void  MakeDefaultPlots(){
   MakePlotPt(picArray);
   MakePlotPosY(picArray);
   MakePlotPosZ(picArray);
+  MakePlotP4(picArray);
   TFile f("cosmicPlots.root","recreate");
   picArray->Write("CosmicPlots",TObject::kSingleKey);
   f.Close();
+  TPostScript *ps=new TPostScript("cosmicPerformance.ps", 112);
+  for (Int_t ipad=0;ipad<picArray->GetEntries();ipad++){
+    TCanvas *c =dynamic_cast<TCanvas*> picArray->At(ipad);
+    if (c) {
+      c->SaveAs(Form("pic/cosmic/%s.gif",c->GetName()));
+      c->SaveAs(Form("pic/cosmic/%s.eps",c->GetName()));
+      ps->NewPage();
+      c->Draw();
+      c->Update();
+    }
+  } 
+  ps->Close();
+  delete ps;
 }
index 6459ded..aeb1bcc 100644 (file)
@@ -1,6 +1,16 @@
  
 /* 
    //
+   // 0. Make a calibration
+   // 1. Make a laser scan list
+   //    e.g in TPC workscape 
+   find `pwd`/*/laserMean.root >laserScan.txt
+   // 2. Define a reference data 
+   rrunA=84469/; for a in `cat laserScan.txt`; do echo `pwd`/$rrunA/laserMean.root; done >laserScanRefA.txt
+   rrunC=84469; for a in `cat laserScan.txt`; do echo `pwd`/$rrunC/laserMean.root; done >laserScanRefC.txt
+   rrun=84469; for a in `cat laserScan.txt`; do echo `pwd`/$rrun/laserMean.root; done >laserScanRef.txt
+                                                                                 // 
+   //
    .x ~/rootlogon.C
    gSystem->Load("libANALYSIS");
    gSystem->Load("libTPCcalib"); 
index 488263f..07bf8fd 100644 (file)
@@ -10,7 +10,7 @@ gSystem->Load("libSTAT");
 gSystem->Load("libTPCcalib");
 gSystem->AddIncludePath("-I$ALICE_ROOT/TPC");
 
-.L $ALICE_ROOT/TPC/CalibMacros/CalibTimeGain.C++
+.L $ALICE_ROOT/TPC/CalibMacros/CalibTimeGain.C+
 
 TFile fcalib("CalibObjectsTrain1.root");
 //TObjArray * array = (TObjArray*)fcalib.Get("TPCCalib");
@@ -18,7 +18,7 @@ TFile fcalib("CalibObjectsTrain1.root");
 AliTPCcalibTimeGain * gain = ( AliTPCcalibTimeGain *)fcalib.Get("calibTimeGain")
 
 ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
-CalibTimeGain(gain, ocdbStorage.Data(),70000,100000)
+CalibTimeGain(gain, ocdbStorage.Data(),70000,100000,kTRUE)
 
 */
 
index 5da0eb0..6197112 100644 (file)
@@ -25,16 +25,26 @@ CalibTimeVdriftGlobal()
 //
 // 5. try to visualize new entry
 //
-ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
-AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
-AliCDBManager::Instance()->SetSpecificStorage("/TPC/Calib/TimeDrift",ocdbStorage.Data());
 Int_t run=90000; //
-AliCDBEntry* entry = AliCDBManager::Instance()->Get("/TPC/Calib/TimeDrift",run)
+//.x ConfigOCDB.C(run);
+
+ocdbStorage="local://"+gSystem->GetFromPipe("pwd")+"/OCDB";
+AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB")
+AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/TimeDrift",ocdbStorage.Data());
+
+AliCDBEntry* entry = AliCDBManager::Instance()->Get("TPC/Calib/TimeDrift",run)
 TObjArray * arr = (TObjArray*)entry->GetObject();
+
 TObjArray *picArray = new TObjArray;
 MakeDefaultPlots(arr,picArray);
 
+//
+//  7. Tricky part - hopefully not neccessary
+//     change the default time 0
+//     BUG in OCDB - we can not change the SpecificStorage once we read given
+//                   entry
 
+   .x ConfigOCDB.C(
 
 */
 
@@ -60,6 +70,7 @@ MakeDefaultPlots(arr,picArray);
 #include "AliTPCcalibDB.h"
 #include "AliTPCcalibDButil.h"
 #include "AliRelAlignerKalman.h"
+#include "AliTPCParamSR.h"
 
 TString ocdbStorage="dummy";
 //
@@ -148,6 +159,32 @@ void CalibTimeVdriftGlobal(Char_t* file="CalibObjectsTrain1.root"){
 }
 
 
+void UpdateDriftParam(AliTPCParam *param, TObjArray *arr, Int_t startRun){
+  //
+  //  update the OCDB entry for the nominal time0
+  //
+  //
+  //  AliTPCParam * param = AliTPCcalibDB::Instance()->GetParameters();
+  AliTPCParam *paramNew = (AliTPCParam *)param->Clone();
+  TGraphErrors *grT =  (TGraphErrors *)arr->FindObject("ALIGN_ITSM_TPC_T0");
+  Double_t deltaTcm = TMath::Median(grT->GetN(),grT->GetY());
+  Double_t deltaT   = deltaTcm/param->GetDriftV();
+  paramNew->SetL1Delay(param->GetL1Delay()-deltaT);
+  paramNew->Update();
+
+  AliCDBMetaData *metaData= new AliCDBMetaData();
+  metaData->SetObjectClassName("TObjArray");
+  metaData->SetResponsible("Marian Ivanov");
+  metaData->SetBeamPeriod(1);
+  metaData->SetAliRootVersion("05-25-02"); //root version
+  metaData->SetComment("Updated calibration of nominal time 0");
+  AliCDBId* id1=NULL;
+  id1=new AliCDBId("TPC/Calib/Parameters", startRun, AliCDBRunRange::Infinity());
+  AliCDBStorage* gStorage = AliCDBManager::Instance()->GetStorage(ocdbStorage);
+  gStorage->Put(param, (*id1), metaData);
+
+}
+
 void CalibTimeVdrift(Int_t runNumber, AliTPCcalibTime* vdrift, Int_t end=false){
   TObjArray* vdriftArray = new TObjArray();
   TObjArray * array=vdrift->GetHistoDrift();
@@ -663,30 +700,35 @@ void AddAlignmentGraphs(  TObjArray * vdriftArray, AliTPCcalibTime *timeDrift){
   //
   TObjArray * arrayITSP= AliTPCcalibDButil::SmoothRelKalman(arrayITS,*mstatITS, 0, 5.);
   TObjArray * arrayITSM= AliTPCcalibDButil::SmoothRelKalman(arrayITS,*mstatITS, 1, 5.);
+  TObjArray * arrayITSB= AliTPCcalibDButil::SmoothRelKalman(arrayITSP,arrayITSM);
   TObjArray * arrayTOFP= AliTPCcalibDButil::SmoothRelKalman(arrayTOF,*mstatTOF, 0, 5.);
   TObjArray * arrayTOFM= AliTPCcalibDButil::SmoothRelKalman(arrayTOF,*mstatTOF, 1, 5.);
+  TObjArray * arrayTOFB= AliTPCcalibDButil::SmoothRelKalman(arrayTOFP,arrayTOFM);
+
   TObjArray * arrayTRDP= AliTPCcalibDButil::SmoothRelKalman(arrayTRD,*mstatTRD, 0, 5.);
   TObjArray * arrayTRDM= AliTPCcalibDButil::SmoothRelKalman(arrayTRD,*mstatTRD, 1, 5.);
+  TObjArray * arrayTRDB= AliTPCcalibDButil::SmoothRelKalman(arrayTRDP,arrayTRDM);
+
   //
   //
   Int_t entries=TMath::Max(arrayITS->GetEntriesFast(),arrayTOF->GetEntriesFast());
-  TObjArray *arrays[9]={arrayITS, arrayITSP, arrayITSM,
-                       arrayTRD, arrayTRDP, arrayTRDM,
-                       arrayTOF, arrayTOFP, arrayTOFM};
-  TString   grnames[9]={"ALIGN_ITS", "ALIGN_ITSP", "ALIGN_ITSM",
-                       "ALIGN_TRD", "ALIGN_TRDP", "ALIGN_TRDM",
-                       "ALIGN_TOF", "ALIGN_TOFP", "ALIGN_TOFM"};
+  TObjArray *arrays[12]={arrayITS, arrayITSP, arrayITSM, arrayITSB,
+                        arrayTRD, arrayTRDP, arrayTRDM, arrayTRDB,
+                        arrayTOF, arrayTOFP, arrayTOFM, arrayTOFB};
+  TString   grnames[12]={"ALIGN_ITS", "ALIGN_ITSP", "ALIGN_ITSM", "ALIGN_ITSB",
+                        "ALIGN_TRD", "ALIGN_TRDP", "ALIGN_TRDM","ALIGN_TRDB",
+                        "ALIGN_TOF", "ALIGN_TOFP", "ALIGN_TOFM","ALIGN_TOFB"};
   TString   grpar[9]={"DELTAPSI", "DELTATHETA", "DELTAPHI",
                      "DELTAX", "DELTAY", "DELTAZ",
                      "DRIFTVD", "T0", "VDGY"};
 
-
+  
   TVectorD vX(entries);
   TVectorD vY(entries);
   TVectorD vEx(entries);
   TVectorD vEy(entries);
   TObjArray *arr=0;
-  for (Int_t iarray=0; iarray<9; iarray++){
+  for (Int_t iarray=0; iarray<12; iarray++){
     arr = arrays[iarray];
     if (arr==0) continue;
     for (Int_t ipar=0; ipar<9; ipar++){      
diff --git a/TPC/CalibMacros/submitcalib.sh b/TPC/CalibMacros/submitcalib.sh
deleted file mode 100755 (executable)
index 7aaabed..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-# 1 argument      - start file
-# 2 argument      - number of files
-# 3 argument      - input file list
-# 4 argument      - run number used for ConfigOCDB
-
-#myvar=0;
-#while [ $myvar -ne 640 ] ; do bsub -q alice-t3_8h  submitcalib.sh $myvar $(($myvar+1))  /lustre_alpha/alice/miranov/rec/october2008/all/esdzip.txt; myvar=$(( $myvar +2 )) ; echo $myvar ; done
-
-echo Hallo world
-echo Hostname $HOSTNAME
-df /tmp
-
-echo $1   $2  $3
-source ../balice.sh
-source ../alienSetup.sh
-
-mkdir $1_$2
-cp *.C $1_$2 
-cd $1_$2
-cp $3 esd.txt
-
-fstart=$1
-fend=$2
-cdbrun=$4
-echo start aliroot
-echo command aliroot -q -b CalibrateTPC.C\($fstart,$fend,$cdbrun\)
-echo PWD `pwd`
-command aliroot  -q -b "CalibrateTPC.C($fstart,$fend,$cdbrun)"
-rm list.txt
-
-