]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Modification in order to run the TPC Calibration train
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 2 Oct 2009 09:42:35 +0000 (09:42 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 2 Oct 2009 09:42:35 +0000 (09:42 +0000)
(in workspace)

The CalibrateTPC.C macro create:
Train1 tasks
Train2 tasks

Possibility to use it inside of the official calibration train will
be investigated.
Current focus: Stability test and the memory, IO consumption

(Marian Ivanov)

TPC/CalibMacros/ReadmeTrain.txt
TPC/CalibMacros/runTrainGSI.sh [new file with mode: 0644]
TPC/CalibMacros/submitcalib.sh
TPC/macros/CalibrateTPC.C
TPC/macros/ConfigOCDB.C
TPC/macros/filterESD.C

index 9d2e196e40f826322afa42fc1ed3cc4a2ac12974..abc066d6c8ca913514badb0f1f87987bfbd0bcbe 100644 (file)
@@ -15,6 +15,29 @@ Calibration and Performace  train at GSI:
    The calibration at GSI is done on the batch farm. The results are merged per run.
 
 
-   
-     
-    
\ No newline at end of file
+
+List of files:
+Macros:
+CalibrateTPC.C - standard in $ALICE_ROOT/TPC/macros   
+ConfigOCDB.C   - example (to be mofieid according studies)  in $ALICE_ROOT/TPC/macros 
+filterESD.C    - $ALICE_ROOT/TPC/macros/filterESD.C
+
+Shell scripts:
+balice.sh      - symbolic link to the AliRoot setup script
+               - example (to be modified):
+                ln -sf ~/.balice64HEAD0108 balice.sh
+alienSetup.sh  - symbolic link to the alien setup script
+               - hint (don't modify unles you know what are you doing): 
+              - ln -sf $ALICE_ROOT/TPC/CalibMacros/alienSetupGSI.sh alienSetup.sh
+submitcalib.sh - hint: copy of the (don't change it unless ...)
+               - cp $ALICE_ROOT/TPC/CalibMacros/submitcalib.sh .
+
+Run lists:
+(No recepie for the moment how to create it)
+run.list      - main source of the run numbers  (created from the logbook)      
+esdall.list   - the list of files -standard 
+esdalien.list - the list of files -alien
+    
+
+Run the train:
+shells.sh      - this is a recepie
diff --git a/TPC/CalibMacros/runTrainGSI.sh b/TPC/CalibMacros/runTrainGSI.sh
new file mode 100644 (file)
index 0000000..3494181
--- /dev/null
@@ -0,0 +1,167 @@
+#
+# Run train commands at GSI 
+# marian.ivanov@cern.ch
+#
+
+#
+# Make workspace
+# This is just example (see $ALICE_ROOT/TPC/CalibMacros/ReadmeTrain.txt)
+#
+cp $ALICE_ROOT/TPC/macros/CalibrateTPC.C .
+cp $ALICE_ROOT/TPC/macros/ConfigOCDB.C .
+#modify ConfigOCDB.C
+ln -sf ~/.balice64HEAD0108 balice.sh
+#use your favourite aliroot
+ln -sf $ALICE_ROOT/TPC/CalibMacros/alienSetupGSI.sh alienSetup.sh
+#use your alien setup 
+cp $ALICE_ROOT/TPC/CalibMacros/submitcalib.sh .
+#copy your lists
+#run.list      - main source of the run numbers  (created from the logbook)
+#esdall.list   - the list of files -standard 
+#esdalien.list - the list of files -alien
+
+# Make a esd all list 
+# This is just example
+#
+for a in `find  /lustre/alice/alien/alice/data/2009/LHC09c/0000* | grep .zip` ; do echo $a#AliESDs.root; done >esdall.list
+for a in `find  /lustre/alice/alien/alice/data/2009/LHC09c/0000* | grep AliESDfriend` ; do echo `dirname $a`/AliESDs.root; done >>esdall.list
+
+
+
+# 
+# Create a list for each run 
+# and make directory structure
+# This is fast
+mydir=`pwd`
+for adir in `cat run.list`; do
+    mkdir $adir;
+    cat  $mydir/esdall.list | grep $adir >esd${adir}.txt
+    cat  $mydir/esdalien.list | grep $adir >>esd${adir}.txt
+    cp esd${adir}.txt   $adir/esd.txt
+done
+
+#
+# filter lists of files 
+# make 2 lists - esd.txt.Good and esd.txt.Bad
+# Wait until jobs will finish
+#
+mydir=`pwd`
+for adir in `cat run.list`; do
+myvar=0;
+cd $mydir
+cd $adir
+bsub -q alice-t3_8h  aliroot -b -q  $ALICE_ROOT/TPC/macros/filterESD.C
+echo _____________________________________
+echo Run $adir
+echo _____________________________________
+cd $mydir
+done
+
+
+# You have to wait until the lists are filtered
+# Only Afterwards you should process with calibration submission
+# Submitting calibration
+#
+mydir=`pwd`
+#for adir in `cat runMag5.list`; do
+for adir in `cat run.list`; do
+myvar=0;
+cd $mydir
+mkdir $mydir/$adir
+cd $adir
+echo SUBMITING DIRECTORY $adir
+cp ../ConfigOCDB.C .
+cp ../CalibrateTPC.C .
+rm -rf *_*
+rm -rf */V3/
+up=`cat  esd.txt | grep -c .root`
+while [ $myvar -le ${up} ] ; 
+     do
+      bsub -q alice-t3_8h  ../submitcalib.sh $myvar $(($myvar+4))  `pwd`/esd.txt.Good $adir; 
+      myvar=$(( $myvar +5 )) ; 
+      echo $myvar ; 
+      done;
+done;
+
+
+#
+# Submitting merging
+#
+
+mydir=`pwd`
+for adir in `cat run.list`; do
+myvar=0;
+cd $mydir
+cd $adir
+rm CalibObjects*.root
+ls `pwd`/*_*/V3/*/*/CalibObjectsTrain1.root > mergelistTrain1.txt
+ls `pwd`/*_*/V3/*/*/CalibObjectsTrain2.root > mergelistTrain2.txt
+#cat ../getmean.C | sed s_runxxx_\{$adir}\_g | sed s_{__ | sed s_}__> getmean.C
+#cat ../getmeanT.C | sed "s|runxxx|$adir|" | sed s_{__ | sed s_}__> getmean.C
+bsub -q alice-t3_8h aliroot $ALICE_ROOT/TPC/macros/CalibFileMerger.C+\(\"CalibObjectsTrain1.root\",10000,\"mergelistTrain1.txt\"\)
+bsub -q alice-t3_8h aliroot $ALICE_ROOT/TPC/macros/CalibFileMerger.C+\(\"CalibObjectsTrain2.root\",10000,\"mergelistTrain2.txt\"\)
+echo _____________________________________
+echo Run $adir
+echo _____________________________________
+cd $mydir
+done
+#
+# Merge mag field data
+#
+mydir=`pwd`
+rm mergeMagTrain1.txt
+rm mergeMagTrain2.txt
+for adir in `cat runMag.list`; do
+ls $mydir/$adir/CalibObjectsTrain1.root >> mergeMagTrain1.txt;
+ls $mydir/$adir/CalibObjectsTrain2.root >> mergeMagTrain2.txt;
+done;
+aliroot $ALICE_ROOT/TPC/macros/CalibFileMerger.C+\(\"CalibObjectsTrain1.root\",10000,\"mergeMagTrain1.txt\"\)
+aliroot $ALICE_ROOT/TPC/macros/CalibFileMerger.C+\(\"CalibObjectsTrain2.root\",10000,\"mergeMagTrain2.txt\"\)
+#
+
+
+#
+# get debug streamer list for different components
+#
+
+find `pwd`/*/*_*/V3/ | grep calibTrigg  > trigger.txt
+find `pwd`/*/*_*/V3/ | grep calibTime   > time.txt
+
+
+#
+# Submitting analysis
+#
+
+mydir=`pwd`
+for adir in `cat esd.list`; do
+myvar=0;
+cd $mydir
+cd $adir
+ls `pwd`/*_*/V3/*/*/CalibOb* > mergelist.txt
+#cat ../getmean.C | sed s_runxxx_\{$adir}\_g | sed s_{__ | sed s_}__> getmean.C
+cat ../getmeanT.C | sed "s|runxxx|$adir|" | sed s_{__ | sed s_}__> getmean.C
+echo _____________________________________
+echo Run $adir
+ls -al `pwd`/mergelist.txt
+echo _____________________________________
+aliroot   < getmean.C &
+cd $mydir
+done
+
+
+ls   `pwd`/*/laserMe* > laserScan.txt 
+for a in `cat laserScan.txt` ; do echo /lustre/alice/miranov/rec/LHC09d_TPC/vscan_laser1807/77475/laserMean.root; done > laserScanRefA.txt 
+for a in `cat laserScan.txt` ; do echo /lustre/alice/miranov/rec/LHC09d_TPC/vscan_laser1807/77656/laserMean.root; done > laserScanRefC.txt 
+
+
+
+
+
+
+
+
+
+
+
+
index 0283aa272c909137413e0850d1428af04e24588e..7aaabede326dede7d68ec3191e5759b97bea2787 100755 (executable)
@@ -8,9 +8,13 @@
 #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 $1   $2  $3
-source /u/miranov/.balice64HEAD0108
+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 
@@ -22,6 +26,7 @@ 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
 
index 9b4a4f375ac293ed7e01eeec7cb178abb6f1033e..24f1b36f4a4fac9979e0b35a09e088d180cf20b3 100644 (file)
   mem.MakeReport(0,0,"order 0 sortstat 3 sortstamp 0 sortdeep 10 stackdeep 15 maxlength 50")   
 */
 
-void SetupCalibTask(TObject * task1);
+
+void SetupCalibTaskTrain1(TObject * task1);
+void SetupCalibTaskTrain2(TObject * task2);
+
 char * prefix = "/V6/";
 // Global parameters to set
 TTimeStamp startTime(2009,8,7,0,0,0);
@@ -65,9 +68,13 @@ TObject  * SetupCalibTask(char * tprefix ="/V12/") {
   AliESDInputHandler* esdH=new AliESDInputHandler;
   esdH->SetActiveBranches("ESDfriend");
   mgr->SetInputEventHandler(esdH);  
-  AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("TPC calibration task");
+
+  //
+  // Train 1 - to be run always on full statistic (
   //
-  SetupCalibTaskTime(task1);
+  AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("CalibObjectsTrain1");
+  //
+  SetupCalibTaskTrain1(task1);
   //
   mgr->AddTask(task1);
   AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
@@ -75,9 +82,28 @@ TObject  * SetupCalibTask(char * tprefix ="/V12/") {
   if (!cinput1) cinput1 = mgr->CreateContainer("cchain",TChain::Class(), 
                                       AliAnalysisManager::kInputContainer);
 
-  AliAnalysisDataContainer *coutput1 =mgr->CreateContainer("TPCCalib",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "CalibObjects.root");  
+  AliAnalysisDataContainer *coutput1 =mgr->CreateContainer("TPCCalib",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "CalibObjectsTrain1.root");  
   mgr->ConnectInput(task1,0,cinput1);
   mgr->ConnectOutput(task1,0,coutput1);
+  //
+  //
+  //
+  AliTPCAnalysisTaskcalib *task2=new AliTPCAnalysisTaskcalib("CalibObjectsTrain2");
+  //
+  SetupCalibTaskTrain2(task2);
+  //
+  mgr->AddTask(task2);
+  AliAnalysisDataContainer *cinput2 = mgr->GetCommonInputContainer();
+  
+  if (!cinput2) cinput2 = mgr->CreateContainer("cchain",TChain::Class(), 
+                                      AliAnalysisManager::kInputContainer);
+
+  AliAnalysisDataContainer *coutput2 =mgr->CreateContainer("TPCCalib2",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "CalibObjectsTrain2.root");  
+  mgr->ConnectInput(task2,0,cinput2);
+  mgr->ConnectOutput(task2,0,coutput2);
+
+
+
   //
   if (!mgr->InitAnalysis()) return 0;
   mgr->PrintStatus();   
@@ -206,7 +232,7 @@ void AddCalibPID(TObject* task){
 //
 //
 
-void SetupCalibTaskTime(TObject* task){
+void SetupCalibTaskTrain1(TObject* task){
   //
   //
   //
@@ -226,6 +252,23 @@ void SetupCalibTaskTime(TObject* task){
 
 }
 
+void SetupCalibTaskTrain2(TObject* task){
+  //
+  //
+  //
+  AliTPCClusterParam * clusterParam = AliTPCcalibDB::Instance()->GetClusterParam(); 
+  AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
+  // AddCalibCalib(task);
+  // AddCalibAlign()
+  // AddCalibTracks()
+  AddCalibPID(task);
+  //
+  TString path=gSystem->pwd();
+  path+=prefix;
+  gSystem->mkdir(path);
+  myTask->SetDebugOuputhPath(path.Data());
+}
+
 
 
 
@@ -370,7 +413,8 @@ void CalibrateTPC(Int_t first, Int_t last, Int_t run, const char*closeSE="ALICE:
   gSystem->Load("libANALYSIS");
   gSystem->Load("libTPCcalib");
   gSystem->Setenv("alien_CLOSE_SE",closeSE);
-  TGrid * alien =     TGrid::Connect("alien://",0,0,"t");
+  TGrid * alien =     TGrid::Connect("alien://",0,0,"t"); 
+  gSystem->Exec("rm -f isOK");
   gROOT->Macro(Form("ConfigOCDB.C\(%d\)",run));
   //
   // Setup analysis manager
@@ -390,5 +434,6 @@ void CalibrateTPC(Int_t first, Int_t last, Int_t run, const char*closeSE="ALICE:
   //
   mgr->SetDebugLevel(1);
   mgr->StartAnalysis("local",chain);
+  gSystem->Exec("touch isOK");
   
 }
index c68730bf565d248caff2aed352b5dfbcf91248f1..f31f7e2bf6c1739157fecf6b6d7070f88efdd354 100644 (file)
@@ -54,6 +54,10 @@ void SetupCustom(Int_t run){
   }
   AliMagF::BMap_t smag = AliMagF::k5kG;
   Double_t bzfac = bz/5;
+  if (bzfac==0) {  // force default magnetic field if 0 field used
+    bzfac=1;
+    bz=5;
+  }
   TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 2, bzfac, 1., 10., smag));
 
   printf("\n\nSET EXB FIELD\t%f\n\n", -bz);
index c36a633189db98b4dfb36d0a76d34f82a43183e6..f070274b658b1888141d3dde8951eba9eeba864f 100644 (file)
@@ -3,6 +3,8 @@ void filterESD(){
   //
   //
   //
+  //gSystem->Setenv("alien_CLOSE_SE","ALICE::GSI::SE");
+  //TGrid * alien =     TGrid::Connect("alien://",0,0,"t");
   printf("Filtering esd.C\n");
   gSystem->AddIncludePath("-I$ALICE_ROOT/TPC/macros");
   gROOT->LoadMacro("$ALICE_ROOT/TPC/macros/AliXRDPROOFtoolkit.cxx+");