A makeCalibTreeRun.sh - make summary trees per run
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Jun 2010 07:10:00 +0000 (07:10 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Jun 2010 07:10:00 +0000 (07:10 +0000)
M      makeRunList.sh            -  Update
M      README                    -
M      ConfigOCDB.C              -  Use only AliEn OCDB access - no sepc. storage
 -  Setup of the magnetic field
M      makeCalibTree.sh          -  obsolete to be removed once ocmfirmed by Jens

Marian

TPC/scripts/OCDBscan/ConfigOCDB.C
TPC/scripts/OCDBscan/README
TPC/scripts/OCDBscan/makeCalibTree.sh
TPC/scripts/OCDBscan/makeCalibTreeRun.sh [new file with mode: 0755]
TPC/scripts/OCDBscan/makeRunList.sh

index 5cfdc56..8795439 100644 (file)
 //
-// Macro to Setup OCDB  
+// Macro to Setup OCDB for calibration scan
+// By default - all entries taken from the AliEn OCDB storage 
 // This is just example macro
 // Responsible: marian.ivanov@cern.ch
-// To be used:
-// 1. Before invocation of the calibration - in the calibration trains
-// 2. To setup calibration viewer.
-//  
-// ConfigOCDB  - setup default and specific data storage
-// SetupCustom - user sepcific configuration 
-//             - Values in local cache of OCDB are overwritten
 
-
-
-void SetupCustom(Int_t run);
 
 void ConfigOCDB(Int_t crun=-1){
   // 
   printf("SETUP OCBD for TPC\n");
   //
-  AliCDBManager::Instance()->SetDefaultStorage("local:///lustre/alice/alien/alice/data/2009/OCDB/");
-  
-  //
-  // custom calibration to test before committing
-  //
-
- AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/GainFactorDedx","local:///lustre/alice/akalweit/OCDB"); 
- AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/ClusterParam","local:///lustre/alice/akalweit/OCDB");
- AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/TimeGainKrypton","local:///lustre/alice/miranov/OCDB");
- AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/TimeDrift","local:///lustre/alice/miranov/rec/LHC09c/calibAlienNoDrift/mergerunMagAll.list/OCDB");
- // AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/TimeGain","local:///lustre/alice/akalweit/OCDB");  
- AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/TimeGain","local:///lustre/alice/miranov/rec/LHC09c/calibAlienNoDrift/mergerunMagN0.list");
-AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/Ref","local://$ALICE_ROOT/OCDB");
-
+  AliCDBManager::Instance()->SetDefaultStorage("raw://");  
   Int_t run =crun;
   if (run<0) run =0;
   AliCDBManager::Instance()->SetRun(run);
-  SetupCustom(run);
-}
-
-
-void SetupCustom(Int_t run){
-  //
-  //
-  // Custom part - to be empty once we are happy with the calibration
-  //
-  //
-  // Setup magnetic field
-  //
-  AliGRPObject *grp = AliTPCcalibDB::GetGRP(run);
-  Float_t current = 0;
-  Float_t bz      = 0;
-  if (grp){
-    current = grp->GetL3Current((AliGRPObject::Stats)0);
-    bz = 5*current/30000.;
-    printf("Run%d\tL3 current%f\tBz\t%f\n",run,current,bz);
-  }
-  else{
-    printf("Run%d\tL3 current%f\tBz\t%f\n",run,current,bz);
+  // magnetic field
+  if ( !TGeoGlobalMagField::Instance()->GetField() ) {
+    printf("Loading field map...\n");
+    AliGRPManager grpMan;
+    if( !grpMan.ReadGRPEntry() ) {
+      printf("Cannot get GRP entry\n");
+    }
+    if( !grpMan.SetMagField() ) {
+      printf("Problem with magnetic field setup\n");
+    }
   }
-  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;
+  if ( !TGeoGlobalMagField::Instance()->GetField()){
+    AliMagF::BMap_t smag = AliMagF::k5kG;
+    Double_t bzfac = 1;
+    AliMagF* magF= new AliMagF("Maps","Maps", bzfac, 1., smag);
+    TGeoGlobalMagField::Instance()->SetField(magF);
   }
-  AliMagF * magF = new AliMagF("Maps","Maps", 2, bzfac, 1., 10., smag);
-  TGeoGlobalMagField::Instance()->SetField(magF);
-  printf("\n\nSET EXB FIELD\t%f\n\n", );
-  AliTPCcalibDB::Instance()->SetExBField(magF);
-  //
-  //
-  // import geometry
-  //
-  //
-  TGeoManager::Import("/u/miranov/proof/geometry.root");
-  AliGeomManager::LoadGeometry("/u/miranov/proof/geometry.root");
-
-  AliTPCClusterParam * paramCl = AliTPCcalibDB::Instance()->GetClusterParam(); 
-  AliTPCParam   * paramTPC = AliTPCcalibDB::Instance()->GetParameters();
-  paramCl->SetInstance(paramCl);
-
-  //
-  // Setup reco param
-  //
-  AliTPCTransform *transform     = AliTPCcalibDB::Instance()->GetTransform() ;
-  AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kTRUE);
-  transform->SetCurrentRecoParam(tpcRecoParam);
-  tpcRecoParam->SetUseRPHICorrection(kTRUE);
-  //
-  tpcRecoParam->SetUseRadialCorrection(kFALSE);
-  tpcRecoParam->SetUseQuadrantAlignment(kTRUE);
-  //
-  tpcRecoParam->SetUseSectorAlignment(kFALSE);
-  tpcRecoParam->SetUseDriftCorrectionTime(kFALSE);
-  tpcRecoParam->SetUseDriftCorrectionGY(kTRUE);
-  tpcRecoParam->SetUseGainCorrectionTime(kFALSE);
-  tpcRecoParam->SetUseFieldCorrection(kFALSE);
-  tpcRecoParam->SetUseExBCorrection(kTRUE);
-  //
-  //
-  //
-  TFile fposcor("~/OCDB/calibUnlin.root");
-  AliTPCPointCorrection *pcorr = fposcor.Get("correction");
-  if (pcorr) pcorr->SetInstance(pcorr); 
-  //
-  //
-  //
-  printf("END of SETUP OCBD for TPC\n");
+  AliTPCcalibDB::Instance()->SetRun(run); 
 }
 
 
+
index c7e2a0c..6a557ea 100644 (file)
@@ -30,7 +30,7 @@ Do the following:
         export SCRIPTDIR=$ALICE_ROOT/TPC/scripts/OCDBscan
             or your local scriptdir if you want to modify it
         e.g:
-        export SCRIPTDIR=/lustre/alice/miranov/calibPass0/OCDBscan/scripts
+        export SCRIPTDIR=/lustre/alice/miranov/OCDBscan/scripts
         
         export PATH=$SCRIPTDIR:$PATH
        source $SCRIPTDIR/guiEnv.sh
@@ -49,12 +49,12 @@ Do the following:
         !!!WARNING!!! this will take quite some time
         makeCalibTree -a
 
-3. Run tree creation for extended statistic. This part can be run only if batchcommand specified.  (Marian Ivanov part of scripts)
+3. OBSOLETE PART - Run tree creation for extended statistic. This part can be run only if batchcommand specified.  (Marian Ivanov part of scripts)
    WARNING  this is just example usage of expert mode:
    bgroup=/bgui
-   ifirst=100000       
-   ilast=103000
-   step=250
+   ifirst=110000       
+   ilast=115000
+   step=200
    runList=`pwd`/run.list
    bgadd $bgroup
    for ((  startRun=$ifirst; startRun<$ilast; startRun=startRun+$step )) ; do 
@@ -64,39 +64,21 @@ Do the following:
     $BATCHCOMMAND -g $bgroup -oo $GUI_OUTDIR/logs/out$startRun.log -eo $GUI_OUTDIR/logs/err$startRun.log  makeCalibTree.sh $runList $startRun $endRun;    
    done;
 
-4. Start the GUI browser. This should work always (even on your laptop). 
-guiTime
-
-
-
--------------------
-General information
--------------------
-The macros and shell scripts used are stored in $ALICE_ROOT/TPC/CalibMacros/guiTime
-If you would like to modify some setting (see below), but do not have write access to this
-directory, you can copy the complete directory somewhere else and setup the environment
-variables accordingly:
-
-export SCRIPTDIR=path_to_my_directory
-export PATH=$SCRIPTDIR:$PATH
-
-- setup scripts
-All user relevant setup is done the shell script 'guiEnv' and the root macro 'ConfigOCDB.C'
-All other files don't need to be modified by the user.
+4. New approach -  run the jobs for each run separatelly - more robust - but more jobs
+   //
+   bgroup=/bguiRUN
+   for arun in `cat run.list`; do
+       echo submitting jobs for run $arun
+        echo  $BATCHCOMMAND -g $bgroup -oo $GUI_OUTDIR/logs/out$arun.log -eo $GUI_OUTDIR/logs/err$arun.log  makeCalibTreeRun.sh $arun alien://///alice/cern.ch/user/m/miranov/OCDBscan/
+        $BATCHCOMMAND -g $bgroup -oo $GUI_OUTDIR/logs/out$arun.log -eo $GUI_OUTDIR/logs/err$arun.log  $SCRIPTDIR/makeCalibTreeRun.sh $arun alien://///alice/cern.ch/user/m/miranov/OCDBscan/
+   done;
+   
 
-- scripts for the tree creation:
-makeCalibTree:        Steering script to launch the tree creation
-makeCalibTreeList:    script running the actual root process to create the tree
 
-- scripts to start the gui:
-gui 'filename':       Start the CalibViewerGUI using the tree in file 'filename'. Invokes the script
-                      startGUI.C
-guiTime ['filename']: Start the CalibViewerGUItime. Optionally a filename containing the calibration
-                      calibration tree can be specified. Otherwise the trees from the directory setup
-                      in guiEnv will be used (see below). Invokes the script startGUItime.C
+   
 
--oter scripts:
-loadlibsREC.C:        Root macro to load only libraries needed to start the gui and tree creation.
+4. Start the GUI browser. This should work always (even on your laptop). 
+guiTime
 
 
 ----------------
index 49c0885..e964c13 100755 (executable)
@@ -20,7 +20,7 @@ cd $workdir
 source guiEnv.sh
 source $ALICE_ROOT/TPC/scripts/halloWorld.sh
 #
-aliroot -q -b $SCRIPTDIR/ConfigOCDB.C  $SCRIPTDIR/CalibEnv.C+\(\"$runList\",$startRun,$endRun\)
+aliroot -q -b $SCRIPTDIR/ConfigOCDB.C\($2\)  $SCRIPTDIR/CalibEnv.C+\(\"$runList\",$startRun,$endRun\)
 echo End of job:
 echo pwd=`pwd`
 echo ls=
diff --git a/TPC/scripts/OCDBscan/makeCalibTreeRun.sh b/TPC/scripts/OCDBscan/makeCalibTreeRun.sh
new file mode 100755 (executable)
index 0000000..29cea95
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Aruments
+# 1   -  run number
+# 2   -  alien prefix
+
+run=$1
+alienPrefix=$2
+
+echo run=$run
+echo alienPrefix=$alienPrefix
+#
+workdir=${GUI_OUTDIR}/tmp/tmp${run}
+backupdir=`pwd`/
+mkdirhier $workdir
+cd $workdir
+source guiEnv.sh
+source $ALICE_ROOT/TPC/scripts/halloWorld.sh
+#
+cp $SCRIPTDIR/ConfigOCDB.C .
+aliroot -q -b $SCRIPTDIR/CalibSummary.C\($run\)
+echo End of job:
+echo pwd=`pwd`
+echo ls=
+ls -alrt
+echo cp dcsTime.root $GUI_OUTDIR/time/calibTreeTime_$run.root
+cp dcsTime.root $GUI_OUTDIR/time/calibTreeTime_$run.root
+
+
+echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+echo Copy ALIEN prefix $alienPrefix 
+echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
+echo alien_rm $alienPrefix/calibTreeTime_$run.root
+echo alien_cp `pwd`/dcsTime.root $alienPrefix/calibTreeTime_$run.root
+alien_rm $alienPrefix/calibTreeTime_$run.root
+alien_cp dcsTime.root $alienPrefix/calibTreeTime_$run.root
+
+cd $backupdir
index d3a4eee..b748ca8 100755 (executable)
@@ -1,28 +1,24 @@
-#!/bin/bash
+#
+# Make a run list using
+# GRP and TPC HV and Altro requested
+# Output run list stored  in run list
 
-# Create the file  run.list to be processed
-# Aruments
-# 1   -  prefix
-# Example usage
-# $ALICE_ROOT/TPC/scripts/OCDBscan/makeRunList.sh /alice/data/2010
+prefix=/alice/data/2010/OCDB/
 
+alien_find $prefix/GRP/GRP/Data Run > grpAlien.txt
+alien_find $prefix/TPC/Calib/HighVoltage Run > hvAlien.txt
+alien_find $prefix/TPC/Calib/AltroConfig Run > altroAlien.txt
 
-prefix=$1
-alien_find $prefix/OCDB/GRP/GRP/Data Run            > grp.list
-alien_find $prefix/OCDB/TPC/Calib/HighVoltage  Run  > hv.list 
+cat grpAlien.txt | sed s/_/\ /g | gawk '{ print $2}' | sort > grp.txt
+cat hvAlien.txt | sed s/_/\ /g | gawk '{ print $2}'  | sort > hv.txt
+cat altroAlien.txt | sed s/_/\ /g | gawk '{ print $2}'  | sort > altro.txt
 
-for afile in `cat hv.list | grep root`; do 
-    bfile=`basename $afile`; 
-    echo $bfile  | sed s/_/\ / | sed s_Run__ | gawk '{print $1 }' 
-done &> hvRun.list
-sort  hvRun.list > hv.list
+for run in `cat hv.txt | sort`; do
+   grun=`cat grp.txt | grep -c $run`
+   arun=`cat altro.txt | grep -c $run`   
+   if [ $grun -gt 0 ] && [ $arun -gt 0 ]; then
+      echo $run
+   fi 
+done > run.list
 
-for arun  in `cat hv.list`; do 
-    grpstatus=`cat grp.list | grep $arun`
-    if [ -n $grpstatus ] ; then
-      echo $arun
-    fi;
-done > hvRun.list
-
-sort  hvRun.list > run.list