]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Updated version of the Test TPC toolkits (Marian)
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Feb 2008 19:13:31 +0000 (19:13 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 18 Feb 2008 19:13:31 +0000 (19:13 +0000)
TPC/macros/testTPC/AliTPCjobs.cxx
TPC/macros/testTPC/AlienToolkit.cxx
TPC/macros/testTPC/action.sh
TPC/macros/testTPC/rec.C

index 5c7bbc97486ef58cec8f6aca84fda75b6f57799c..08a23ce525f3fe2bd46a733ccb52b22aaa57b407 100644 (file)
@@ -1,6 +1,17 @@
-#include <fstream>
-#include <TFile.h>
-#include <TSystem.h>
+//#include <fstream>
+//#include <TFile.h>
+//#include <TSystem.h>
+
+
+/*
+
+  Process all jobs specified in the job.list file
+  Concurent agents acces the list
+  Once starting to procces given job the jonb is locked 
+
+*/
+
+
 
 /*
 
@@ -55,18 +66,21 @@ void AliTPCJobs::ProcessAllJobs(){
 
 
 Bool_t AliTPCJobs::GetNextJob(){
-  ifstream in;
-  in.open(fJobFile);
+  //
+  // GetNextJob  - get job from the list which is not locked
+  //
+  ifstream ins;
+  ins.open(fJobFile);
   TString id;
   TString inputData;
   TString outputDir;
   TString action;
   Bool_t hasJob=kFALSE;
-  while(in.good()) {
-    in>>id;
-    in>>inputData;
-    in>>outputDir;
-    in>>action;
+  while(ins.good()) {
+    ins>>id;
+    ins>>inputData;
+    ins>>outputDir;
+    ins>>action;
     if (!IsLocked(id)){
       hasJob=kTRUE;
       break;
index 8166bce790bbd0e9e64d7221d0db2f627e8e7d5e..ea7e9c0145a0519884b225640771456bdf5466d4 100644 (file)
   char *mask = "v14*";
   char *path = "/alice/cern.ch/user/m/miranov/test2007/"
   // raw data
-  char *mask = "07000015*.root";
-  char *path = "/alice/data/2007/LHC07w_TPC/"
+  char *mask = "0000191*RecPo*.root";
+  char *path = "/alice/data/2008/LHC08a_TPC/"
  
   AlienToolkit toolkit;
   toolkit.MakeCollection(path,mask);
 
   //
-  toolkit.MakeJobList("job.list","root://gsiaf.gsi.de:1094/", "", "COPY");
+  toolkit.MakeJobList("job.list","", "", "rec");
 
 */
 
@@ -41,10 +41,12 @@ public:
   void             Stage();
   void             LocalCopy(const char* destination);
   void             RemoteCopy(const char* destination="root://gsiaf.gsi.de:1094/", Int_t maxfiles=20);
+  void             PrintPFN();
   void             MakeJobList(const  char * outname, const char *outputPrefix,  const char *action, const char *suffix);
   static Bool_t    IsDir(const char * name);
   static Bool_t    IsFile(const char * name);
   static Bool_t    ResubmitJobs();
+
 public:
   TGridCollection *fCollection;
   TObjArray        fInfoArray;
@@ -180,6 +182,21 @@ void AlienToolkit::LocalCopy(const char *destination){
 }
 
 
+void              AlienToolkit::PrintPFN(){
+  //
+  //
+  // 
+  Int_t entries = fInfoArray.GetEntries();
+  for (Int_t i=0; i<entries;i++){
+    TMap &map = *((TMap*)fInfoArray.At(i));
+    TObjString *lfn = (TObjString*)map("alienLFN");
+    TObjString *pfn = (TObjString*)map("alienSURL");
+    if (!lfn) continue;
+    if (!pfn) continue;
+    printf("%s\n",pfn->String().Data());
+  }
+}
+
 void   AlienToolkit::MakeJobList(const  char * outname, const char *outputPrefix, const char *action, const char *suffix){
   //
   //
@@ -198,6 +215,8 @@ void   AlienToolkit::MakeJobList(const  char * outname, const char *outputPrefix
     jobID.ReplaceAll("/","_");
     //
     //
+    //
+    //
     TString outputDir=outputPrefix;
     outputDir+=lfn->String().Data();
     
index c744666570bdcbe8e0fa817288559a8c96d97445..71ca786382635f89e2d093aee6ba86294b20046e 100755 (executable)
 #3 TString outputDir
 #4 TString   action
 
+echo INPUT ARGUMENT FOR ACTION
 echo $1
 echo $2
 echo $3
 echo $4
+#
+# 
+#
+olddir=`pwd`
+mkdir -p $jobhome/$1
+mkdir -p $jobhome/$1/$4
+cd       $jobhome/$1/$4
+ln -sf $olddir home
+echo HOME DIR `pwd`
+#
+#
+#
+echo GETTING DATA - START
+date
 
+CISIZE=0
+if [  $AGENTINPUTTYPE -eq 2 ]; then 
+    CINAME=`echo $2| sed s_root://voalice04.cern.ch:1094/__`
+    echo CASTOR COPY $CINAME ; 
+    CISIZE=`nsls -l $CINAME | gawk '{print $5}'`
+    if [  $CISIZE -gt 1000000 ]; then 
+        rfcp  $CINAME data.root 
+    else
+       echo FILE TOO SMALL
+       exit
+    fi;
+fi;
+if [  $AGENTINPUTTYPE -eq 0 ]; then 
+    echo XRD COPY $2 ;
+    xrdcp -np $2 data.root
+fi;
+echo GETTING DATA - STOP
+date
+echo LS DATA
+ls -al
+CISIZE=`ls -l data.root | gawk '{print $5}'`
+if [  $CISIZE -lt 100000 ]; then 
+    exit
+fi;
+#
+#
+#
+echo BEGIN ACTION
+date
+echo aliroot -b -q $olddir/macros/$4.C
+aliroot -b -q $olddir/macros/$4.C
+echo END ACTION $1
+date
+#
+#
+#
+rm data.root
+rm TPCsignal.root
+ls -al `pwd`
+echo CREATING ZIP FILE
+zip -n root $4 *.root *.log
 
-olddir=`pwd`
 
-mkdir -p /tmp/$USER/$1
-mkdir -p /tmp/$USER/$1/$4
+isxrd=`echo $3 | grep root://`
+mkdir $olddir/filelists
+flist=$olddir/filelists/$1.list
+touch $flist
 
-cd /tmp/$USER/$1/$4
-which  xrdcp
+#
+# ALIEN - PROBLEM WITH HOST CERTIFICATE
+#
+if [  ${#alien_HOME} -gt 1 ]; then
+    dirname=`echo $alien_HOME$3/$4 | sed s/.root//g  `
+    echo alien_mkdir $dirname
+    alien_mkdir -p $dirname
+    echo ALIEN COPY DATA START 
+    echo  alien_cp -n $4.zip alien:${dirname}/$4_se.zip@ALICE::GSI::SE
+    #echo  alien_cp -n  $4.zip alien:${dirname}$4.zip@ALICE::ALICE::CASTOR2 
+     for name in `ls *.root`; do
+       echo alien_cp -n $name alien:${dirname}/$name@ALICE::GSI::SE 
+       alien_cp -n $name alien:${dirname}/$name@ALICE::GSI::SE
+       
+    done
+    alien_cp  -n  $4.zip  alien:${dirname}/$4_se.zip@ALICE::GSI::SE  
+    #alien_cp  $4.zip -n alien:${dirname}$4.zip@ALICE::ALICE::CASTOR2  
+    echo END OF ALIEN COPY
+fi;
 
-xrdcp -np $2 data.root
 
-echo aliroot -b -q $ALICE_ROOT/TPC/macros/testTPC/$4.C
 
-aliroot -b -q $ALICE_ROOT/TPC/macros/testTPC/$4.C
-echo END ACTION $1
+if [  ${#isxrd} -lt 1 ]; then
+   dirname=`echo $CASTOR_HOME$3/$4 | sed s/.root//g  `
+   echo CASTOR COPPING DATA - START
+   echo DIRNAME  - $dirname
+   echo XRD PATH = root://voalice04.cern.ch:1094/$dirname
+   echo     
+   rfmkdir -p  $dirname
+   #
+   for name in `ls *.root`; do
+       echo  rfcp  $name $dirname/$name
+       rfcp $name $dirname/$name
+       echo root://voalice04.cern.ch:1094/$dirname/$name >>$flist
+    done
+    echo rfcp $4.zip $dirname/$4.zip
+    rfcp $4.zip $dirname/$4.zip
+    echo root://voalice04.cern.ch:1094/$dirname/$4.zip >>$flist
+    echo END OF COPY    
+else
+    echo XRD COPY DATA START
+    dirname=`echo $3/$4 | sed s/.root//g` 
+    echo DIRNAME  - $dirname
+    for name in `ls *.root`; do
+       echo  xrdcp $name $dirname/$name
+       xrdcp -np $name $dirname/$name
+       echo $dirname/$name >>$flist
+    done
+    echo xrdcp -np  $4.zip  $dirname.zip
+    xrdcp -np $4.zip  $dirname/$4.zip 
+    echo $dirname/$4.zip >>$flist
+    echo END OF COPY
+fi;
 
-rm data.root
-ls -al 
-echo CREATING ZIP FILE
-zip -n root $4 *.root
-echo COPING DATA
-for name in `ls *.root`; do
-    echo  xrdcp $name $3/$4/$name
-  xrdcp -np $name $3/$4/$name
-done
-echo xrdcp -np  $4.zip  $3/$4.zip
- xrdcp -np $4.zip  $3/$4.zip
 
 
 cd $olddir
index ec2f18a21854172b39bc4c4ebd235106e63aadce..b72aa2e2239e53156f2d93d3a5ba4795205ddfed 100644 (file)
@@ -1,5 +1,13 @@
-void rec(const char *filename="data.root", const char *ocdbpath = "local:///d/alice12/miranov/testTPC/OCDB/")\r
+void rec(const char *filename="data.root")
 {
+
+  char *ocdbpath = gSystem->Getenv("OCDB_PATH");
+  if (ocdbpath==0){
+    ocdbpath="alien://folder=/alice/data/2007/LHC07w/OCDB/";
+  }
+  printf("OCDB PATH = %s\n",ocdbpath);
+   
+
   //gSystem->Load("libXrdClient.so");
   //gSystem->Load("libNetx.so"); 
   AliLog::SetClassDebugLevel("AliTPCRawStream",-5);
@@ -62,7 +70,7 @@ void rec(const char *filename="data.root", const char *ocdbpath = "local:///d/al
   rec.SetRunV0Finder(kFALSE);  
   rec.SetRunVertexFinder(kFALSE);
 
-  rec.SetRunQA(kFALSE);
+  rec.SetRunQA(kTRUE);
   
   // Detector options if any
   rec.SetOption("MUON","SAVEDIGITS");
@@ -90,6 +98,7 @@ void rec(const char *filename="data.root", const char *ocdbpath = "local:///d/al
   cout <<" EXITING RECONSTRUNCTION SESSION\n";
   //
   exit();
+  AliTPCcalibDB::Instance()->GetParameters()->Dump();
   //  AliQADataMakerSteer qas;
   // qas.Merge();
 }