+++ /dev/null
-//=============================================================================
-//
-// *** AddTaskAddObject.C ***
-//
-// This macro initialize a complete AnalysisTask object for filtering ESD with AliAnalysisTaskFilterFriendSecond.
-//
-//=============================================================================
-
-AliAnalysisTaskAddObject *AddTaskAddObject()
-{
-
- // pointer to the analysis manager
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTaskTOFCalib", "No analysis manager to connect to.");
- return NULL;
- }
-
- // check the input handler
- if (!mgr->GetInputEventHandler()) {
- ::Error("AddTask", "This task requires an input event handler");
- return NULL;
- }
- TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
-
- // create the task
- AliAnalysisTaskAddObject* add = new AliAnalysisTaskAddObject("addObj");
- mgr->AddTask(add);
-
- // connecting the input/output containers
- AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
- AliAnalysisDataContainer *coutput0 = mgr->CreateContainer("histo", TH1::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");
-
- mgr->ConnectInput (add, 0, cinput0 );
- mgr->ConnectOutput(add, 0, coutput0);
-
- return add;
-}
+++ /dev/null
-//=============================================================================
-//
-// *** AddTaskFilterFriend.C ***
-//
-// This macro initialize a complete AnalysisTask object for filtering ESD with AliAnalysisTaskFilterFriend.
-//
-//=============================================================================
-
-AliAnalysisTaskFilterFriend *AddTaskFilterFriend()
-{
-
- // pointer to the analysis manager
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTaskTOFCalib", "No analysis manager to connect to.");
- return NULL;
- }
-
- // check the input handler
- if (!mgr->GetInputEventHandler()) {
- ::Error("AddTask", "This task requires an input event handler");
- return NULL;
- }
- TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
-
- // create the task
- AliAnalysisTaskFilterFriend* filter = new AliAnalysisTaskFilterFriend("filter_1");
- mgr->AddTask(filter);
-
- // connecting the input/output containers
- AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
- AliAnalysisDataContainer *coutput0 = mgr->GetCommonOutputContainer();
-
- mgr->ConnectInput (filter, 0, cinput0 );
- //mgr->ConnectOutput(filter, 0, coutput0);
-
- return filter;
-}
+++ /dev/null
-//=============================================================================
-//
-// *** AddTaskFilterFriendSecond.C ***
-//
-// This macro initialize a complete AnalysisTask object for filtering ESD with AliAnalysisTaskFilterFriendSecond.
-//
-//=============================================================================
-
-AliAnalysisTaskFilterFriendSecond *AddTaskFilterFriendSecond()
-{
-
- // pointer to the analysis manager
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTaskTOFCalib", "No analysis manager to connect to.");
- return NULL;
- }
-
- // check the input handler
- if (!mgr->GetInputEventHandler()) {
- ::Error("AddTask", "This task requires an input event handler");
- return NULL;
- }
- TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
-
- // create the task
- AliAnalysisTaskFilterFriendSecond* filter = new AliAnalysisTaskFilterFriendSecond("filter_2");
- mgr->AddTask(filter);
-
- // connecting the input/output containers
- AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
- AliAnalysisDataContainer *coutput0 = mgr->GetCommonOutputContainer();
-
- mgr->ConnectInput (filter, 0, cinput0 );
- //mgr->ConnectOutput(filter, 0, coutput0);
-
- return filter;
-}
+++ /dev/null
-//=============================================================================
-//
-// *** AddTaskFilterFriendSteer.C ***
-//
-// This macro initialize a complete AnalysisTask object for filtering ESD with AliAnalysisTaskFilterFriendSteer
-//
-//=============================================================================
-
-AliAnalysisTaskFilterSteer *AddTaskFilterSteer()
-{
-
- // pointer to the analysis manager
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTaskTOFCalib", "No analysis manager to connect to.");
- return NULL;
- }
-
- // check the input handler
- if (!mgr->GetInputEventHandler()) {
- ::Error("AddTask", "This task requires an input event handler");
- return NULL;
- }
-
- // create the task
- AliAnalysisTaskFilterSteer* filter = new AliAnalysisTaskFilterSteer("samplingFilter");
- filter->SetFraction(0.7);
- mgr->AddTask(filter);
-
- // connecting the input/output containers
- AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
- AliAnalysisDataContainer *coutput0 = mgr->GetCommonOutputContainer();
-
- mgr->ConnectInput (filter, 0, cinput0 );
- //mgr->ConnectOutput(filter, 0, coutput0);
-
- return filter;
-}
+++ /dev/null
-//=============================================================================
-//
-// *** AddTaskTPCCalib
-//
-// This macros setup the TPC calibration task
-//
-//=============================================================================
-
-
-
-
-Int_t debugLevel = 2;
-Int_t streamLevel = 20;
-TTimeStamp startTime(2010,2,1,0,0,0);
-TTimeStamp stopTime(2010,12,31,0,0,0);
-char * prefix = "/V6/";
-
-void ConfigOCDB(Int_t crun);
-
-AliAnalysisTask *AddTaskTPCCalib(Int_t runNumber)
-{
- gSystem->Load("libTPCcalib");
- // pointer to the analysis manager
- AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) {
- Error("AddTaskTPCCalib", "No analysis manager to connect to.");
- return NULL;
- }
-
- // check the input handler
- if (!mgr->GetInputEventHandler()) {
- ::Error("AddTask", "This task requires an input event handler");
- return NULL;
- }
- ConfigOCDB(runNumber);
- AliTPCAnalysisTaskcalib *task1=new AliTPCAnalysisTaskcalib("CalibObjectsTrain1");
- //
- SetupCalibTaskTrain1(task1);
- mgr->AddTask(task1);
- AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
-
- if (!cinput1) cinput1 = mgr->CreateContainer("cchain",TChain::Class(),
- AliAnalysisManager::kInputContainer);
-
- AliAnalysisDataContainer *coutput1 =mgr->CreateContainer("TPCCalib",TObjArray::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");
- mgr->ConnectInput(task1,0,cinput1);
- mgr->ConnectOutput(task1,0,coutput1);
- return task1;
-}
-
-
-
-
-void AddCalibCalib(TObject* task){
- //
- // Responsible: Marian Ivanov
- // Description:
- // calibCalib is a prefilter
- // The current OCDB entries transformation are applied on cluster, tracks are refitted
- //
- AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
- AliTPCcalibCalib *calibCalib = new AliTPCcalibCalib("calibTPC","calibTPC");
- calibCalib->SetDebugLevel(debugLevel);
- calibCalib->SetStreamLevel(streamLevel);
- calibCalib->SetTriggerMask(-1,-1,kFALSE); //accept everything
- myTask->AddJob(calibCalib);
-
-}
-void AddCalibTimeGain(TObject* task, Bool_t isCosmic = kFALSE, char * name = "calibTimeGain"){
- //
- // Responsible: Alexander Kalweit
- // Description:
- // Parameters to set
- AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
- AliTPCcalibTimeGain *calibTimeGain = new AliTPCcalibTimeGain(name,"calibTimeGain", startTime.GetSec(), stopTime.GetSec(), 30*60);
- //calibTimeGain->SetLowMemoryConsumption(kTRUE);
- //calibTimeGain->SetMIP(25.);
- calibTimeGain->SetIsCosmic(isCosmic);
- calibTimeGain->SetUseCookAnalytical(kTRUE);
- calibTimeGain->SetUseMax(kFALSE);
- calibTimeGain->SetDebugLevel(debugLevel);
- calibTimeGain->SetStreamLevel(streamLevel);
- calibTimeGain->SetTriggerMask(-1,-1,kTRUE); //reject laser
- myTask->AddJob(calibTimeGain);
-}
-
-void AddCalibTime(TObject* task){
- //
- // Responsible: Dag Larsen
- // Description:
- //
- //
- AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
- AliTPCcalibTime *calibTime = new AliTPCcalibTime("calibTime","calibTime", startTime.GetSec(), stopTime.GetSec(), 20*60);
- calibTime->SetDebugLevel(debugLevel);
- calibTime->SetStreamLevel(streamLevel);
- calibTime->SetTriggerMask(-1,-1,kFALSE); //accept everything
- myTask->AddJob(calibTime);
-}
-
-void AddCalibLaser(TObject* task){
- //
- // Responsible: Marian Ivanov
- // Description:
- //
- AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
- AliTPCcalibLaser *calibLaser = new AliTPCcalibLaser("laserTPC","laserTPC");
- calibLaser->SetDebugLevel(debugLevel);
- calibLaser->SetStreamLevel(streamLevel);
- calibLaser->SetTriggerMask(-1,-1,kFALSE); //accept everything
- myTask->AddJob(calibLaser);
-}
-
-
-void AddCalibAlign(TObject* task){
- //
- // Responsible: Marian Ivanov
- // Description:
- //
- AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
- AliTPCcalibAlign *calibAlign = new AliTPCcalibAlign("alignTPC","Alignment of the TPC sectors");
- calibAlign->SetDebugLevel(debugLevel);
- calibAlign->SetStreamLevel(streamLevel);
- calibAlign->SetTriggerMask(-1,-1,kTRUE); //accept everything
- myTask->AddJob(calibAlign);
-}
-
-void AddCalibCosmic(TObject* task){
- //
- // Responsible: Marian Ivanov
- // Description:
- // Histogram residuals and pulls of the track parameters in bins of track parameters
- //
- AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
- AliTPCcalibCosmic *calibCosmic = new AliTPCcalibCosmic("cosmicTPC","cosmicTPC");
- calibCosmic->SetDebugLevel(debugLevel);
- calibCosmic->SetStreamLevel(streamLevel);
- calibCosmic->SetTriggerMask(-1,-1,kTRUE); //accept everything
- myTask->AddJob(calibCosmic);
-}
-
-
-
-
-void SetupCalibTaskTrain1(TObject* task){
- //
- //
- //
- AliTPCAnalysisTaskcalib* myTask = (AliTPCAnalysisTaskcalib*) task;
- AddCalibCalib(task);
- AddCalibTimeGain(task);
- AddCalibTimeGain(task,kTRUE,"calibTimeGainCosmic"); // 2nd task for cosmic runs
- AddCalibTime(task);
- AddCalibLaser(task);
- AddCalibAlign(task);
- AddCalibCosmic(task);
- //
- TString path=gSystem->pwd();
- path+=prefix;
- gSystem->mkdir(path);
- myTask->SetDebugOuputhPath(path.Data());
-
-}
-
-
-
-void ConfigOCDB(Int_t run){
- //
- printf("SETUP OCBD for TPC\n");
- printf("SETUP OCBD for TPC\n");
- printf("SETUP OCBD for TPC Run =%d\n", run);
- //
- //
- AliTPCParam *param= AliTPCcalibDB::Instance()->GetParameters();
- param->ReadGeoMatrices();
- //
- AliMagF* magF= TGeoGlobalMagField::Instance()->GetField();
- printf("\n\nSET EXB FIELD\t\n\n");
- AliTPCcalibDB::Instance()->SetExBField(magF);
- //
- //
- //
- AliTPCTransform *transform = AliTPCcalibDB::Instance()->GetTransform() ;
- AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kTRUE);
- //
- transform->SetCurrentRecoParam(tpcRecoParam);
- tpcRecoParam->SetUseGainCorrectionTime(0);
- tpcRecoParam->SetUseRPHICorrection(kTRUE);
- tpcRecoParam->SetUseTOFCorrection(kFALSE);
- //
- tpcRecoParam->SetUseDriftCorrectionTime(0);
- tpcRecoParam->SetUseDriftCorrectionGY(0);
- //
- tpcRecoParam->SetUseRadialCorrection(kFALSE);
- tpcRecoParam->SetUseQuadrantAlignment(kFALSE);
- //
- tpcRecoParam->SetUseSectorAlignment(kTRUE);
- tpcRecoParam->SetUseGainCorrectionTime(kFALSE);
- tpcRecoParam->SetUseFieldCorrection(kFALSE);
- tpcRecoParam->SetUseExBCorrection(kTRUE);
- AliTPCcalibDB::Instance()->SetRun(run);
-}
-
-
-
-
+++ /dev/null
-//
-// Macro to initialize:
-// - the OCDB (run number required as input argument)
-// - the geometry (expected to be in the current directory)
-// to run the Calibration train.
-//
-
-void ConfigCalibTrain(Int_t run, const char *ocdb="raw://"){
-
- // OCDB
-
- printf("setting run to %d\n",run);
- AliCDBManager::Instance()->SetDefaultStorage(ocdb);
- AliCDBManager::Instance()->SetRun(run);
-
- // geometry
- AliGeomManager::LoadGeometry();
- AliGeomManager::ApplyAlignObjsFromCDB("GRP ITS TPC");
-
-
-
- AliCDBEntry *entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");
- AliGRPObject* grpData = (AliGRPObject*)entry->GetObject();
-
- Bool_t ok=kTRUE;
- Float_t l3Current = grpData->GetL3Current((AliGRPObject::Stats)0);
- if (l3Current == AliGRPObject::GetInvalidFloat()) {
- printf("GRP/GRP/Data entry: missing value for the L3 current !");
- ok = kFALSE;
- }
-
- Char_t l3Polarity = grpData->GetL3Polarity();
- if (l3Polarity == AliGRPObject::GetInvalidChar()) {
- printf("GRP/GRP/Data entry: missing value for the L3 polarity !");
- ok = kFALSE;
- }
-
- // Dipole
- Float_t diCurrent = grpData->GetDipoleCurrent((AliGRPObject::Stats)0);
- if (diCurrent == AliGRPObject::GetInvalidFloat()) {
- printf("GRP/GRP/Data entry: missing value for the dipole current !");
- ok = kFALSE;
- }
-
- Char_t diPolarity = grpData->GetDipolePolarity();
- if (diPolarity == AliGRPObject::GetInvalidChar()) {
- printf("GRP/GRP/Data entry: missing value for the dipole polarity !");
- ok = kFALSE;
- }
-
- TString beamType = grpData->GetBeamType();
- if (beamType==AliGRPObject::GetInvalidString()) {
- printf("GRP/GRP/Data entry: missing value for the beam type ! Using UNKNOWN");
- beamType = "UNKNOWN";
- }
-
- Float_t beamEnergy = grpData->GetBeamEnergy();
- if (beamEnergy==AliGRPObject::GetInvalidFloat()) {
- printf("GRP/GRP/Data entry: missing value for the beam energy ! Using 0");
- beamEnergy = 0;
- }
-
- // read special bits for the polarity convention and map type
- //Int_t polConvention = grpData->IsPolarityConventionLHC() ? AliMagF::kConvLHC : AliMagF::kConvDCS2008;
- Int_t polConvention = grpData->IsPolarityConventionLHC() ? 0 : 1;
- Bool_t uniformB = grpData->IsUniformBMap();
-
- if (ok) {
- AliMagF* fld = AliMagF::CreateFieldMap(TMath::Abs(l3Current) * (l3Polarity ? -1:1),
- TMath::Abs(diCurrent) * (diPolarity ? -1:1),
- polConvention,uniformB,beamEnergy, beamType.Data());
- if (fld) {
- TGeoGlobalMagField::Instance()->SetField( fld );
- TGeoGlobalMagField::Instance()->Lock();
- printf("Running with the B field constructed out of GRP !");
- }
- }
- printf("Problem with magnetic field setup\n");
-}
+++ /dev/null
-void LoadLibraries(){
- gSystem->Load("libTree");
- gSystem->Load("libGeom");
- gSystem->Load("libPhysics");
- gSystem->Load("libVMC");
- gSystem->Load("libSTEERBase");
- gSystem->Load("libESD");
- gSystem->Load("libAOD");
-
- gSystem->Load("libANALYSIS");
- gSystem->Load("libANALYSISalice");
- gSystem->Load("libANALYSIScalib");
- gSystem->Load("libCORRFW");
- gSystem->Load("libPWGmuon");
- //
- // detector libraries
- //
- gSystem->Load("libTPCcalib");
-}
+++ /dev/null
-Executable="/alice/cern.ch/user/z/zampolli/bin/runPassX.sh";
-
-Packages={"VO_ALICE@AliRoot::v4-19-07-AN","VO_ALICE@ROOT::v5-26-00b-1","VO_ALICE@APISCONFIG::V1.1x"};
-Jobtag =
- {
- "test Calibration Train"
- };
-
-GUIDFILE="guid.txt";
-TTL = "28000";
-Price = 1;
-
-Requirements = ( other.CE == "ALICE::CERN::LCG" );
-
-Validationcommand ="/alice/cern.ch/user/z/zampolli/PassX/validation.sh";
-
-Split="file";
-
-JDLVariables={"Packages", "OutputDir"};
-GUIDFILE="guid.txt";
-
-
-SplitArguments = {"/alice/data/2009/LHC09d/$1/raw/#alienfilename#"};
-Workdirectorysize={"6000MB"};
-
-InputFile={"LF:/alice/cern.ch/user/z/zampolli/PassX/rec.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/ConfigCalibTrain.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/runCalibTrain.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/AddTaskAddObject.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/AddTaskFilterFriend.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/AddTaskFilterFriendSecond.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/AddTaskTPCCalib.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/LoadLibraries.C",
- "LF:/alice/cern.ch/user/z/zampolli/PassX/tag.C"
-};
-InputDataCollection="LF:/alice/data/2009/LHC09d/$1/collection,nodownload";
-
-OutputDir="/alice/cern.ch/user/z/zampolli/PassX/output/$1/#alienfilename/.root//#";
-
-OutputArchive={"log_archive:*.log@disk=1",
- "root_archive.zip:galice.root,AliESDs.root,AliESDfriends.root,AliESDfriends_v1.root,Merged.QA.Data*.root,*.ESD.tag.root,@disk=1"};
-
+++ /dev/null
-void rec(const char *filename="raw.root")
-{
- /////////////////////////////////////////////////////////////////////////////////////////
- //
- // Reconstruction script for 2009 RAW data
- //
- /////////////////////////////////////////////////////////////////////////////////////////
-
-
- // Set the CDB storage location
- AliCDBManager * man = AliCDBManager::Instance();
- man->SetDefaultStorage("raw://");
-
- // Reconstruction settings
- AliReconstruction rec;
-
- // Set protection against too many events in a chunk (should not happen)
- // rec.SetEventRange(0,30000);
-
- // Set reconstruction flags (skip detectors here if neded
- rec.SetRunReconstruction("ITS TPC TRD TOF");
- //rec.SetFillESD("ITS TPC TRD");
- // QA options
- //rec.SetRunQA("Global:ESDs") ;
-
- //rec.SetRunQA(":") ;
- AliQAManager *qam = AliQAManager::QAManager(AliQAv1::kRECMODE) ;
- rec.SetRunQA(":");
- rec.SetRunGlobalQA(kFALSE);
- //ITS QA Off (https://savannah.cern.ch/bugs/?60187)
- //rec.SetRunQA("ALL -HLT:ALL") ;
-
- //rec.SetQARefDefaultStorage("local://$ALICE_ROOT/QAref") ;
-
- // AliReconstruction settings
- rec.SetWriteESDfriend(kTRUE);
- rec.SetWriteAlignmentData();
- rec.SetInput(filename);
- rec.SetUseTrackingErrorsForAlignment("ITS");
-
-
- // Specially for ITS (https://savannah.cern.ch/bugs/?59368)
-
- rec.SetRunPlaneEff(kTRUE);
-
- // switch off cleanESD
- rec.SetCleanESD(kFALSE);
-
- //Ignore SetStopOnError
- rec.SetStopOnError(kFALSE);
-
- AliLog::Flush();
- rec.Run();
-
-}
+++ /dev/null
-/*
- Template of calibration/filtering macro using ESD
-
- Example:
- .L $ALICE_ROOT/ANALYSIS/macros/runCalibTrain.C
- runCalibTrain(105160);
-
-*/
-
-void runCalibTrain(TString runNumberString, const char *inFileName = "AliESDs.root")
-{
- gROOT->Macro("LoadLibraries.C");
- gROOT->LoadMacro("ConfigCalibTrain.C");
- gROOT->LoadMacro("AddTaskFilterFriend.C");
- gROOT->LoadMacro("AddTaskFilterFriendSecond.C");
- gROOT->LoadMacro("AddTaskAddObject.C");
-
- // detector tasks
-
- gROOT->LoadMacro("AddTaskTPCCalib.C");
-
- AliLog::SetClassDebugLevel("AliESDEvent",19);
- TChain *chain = new TChain("esdTree");
-
- // Steering input chain
-
- chain->Add(inFileName);
- Int_t runNumber = runNumberString.Atoi();
- printf("runNumber from runCalibTrain = %d\n",runNumber);
- ConfigCalibTrain(runNumber, "raw://");
-
- AliAnalysisManager *mgr = new AliAnalysisManager("ESD to ESD", "Analysis Manager");
- // mgr->SetDebugLevel(3);
-
- // Input
-
- AliESDInputHandler* inpHandler = new AliESDInputHandler();
- mgr->SetInputEventHandler (inpHandler);
-
- // Output
-
- AliESDHandler* esdHandler = new AliESDHandler();
- mgr->SetOutputEventHandler(esdHandler);
- esdHandler->SetOutputFileName("AliESDfriends_v1.root");
- // Steering Tasks
-
- AliAnalysisTaskFilterFriend* filter = AddTaskFilterFriend();
- AliAnalysisTaskFilterFriendSecond* filter2 = AddTaskFilterFriendSecond();
- AliAnalysisTaskAddObject* add = AddTaskAddObject();
-
- // Detector Tasks
-
- AliAnalysisTask* tTPC = AddTaskTPCCalib(runNumber);
-
- // Run the analysis
-
- if (!mgr->InitAnalysis()) {
- printf("Analysis cannot be started, returning\n");
- return;
- }
-
- mgr->PrintStatus();
- mgr->StartAnalysis("local", chain);
-
- return;
-}
+++ /dev/null
-#!/bin/bash
-
-# Script to run:
-# 1. reconstruction
-# 2. calibration and friend track filtering
-# 3. tag creation
-#
-# Files assumed to be in working directory:
-# rec.C - reconstruction macro
-# runCalibTrain.C - calibration/filtering macro
-# Arguments:
-# 1 - raw data file name
-# 2 - number of events to be processed
-# 3 - run number
-
-# example:
-# runPassX.sh raw.root 50 104892
-
-#ALIEN setting
-entries=1000
-# $1 = raw input filename
-runnum=`echo $1 | cut -d "/" -f 6`
-
-#Local setting
-#entries=$2
-#runnum=$3
-
-echo File to be processed $1
-echo Number of events to be processed $entries
-
-echo ">>>>>>>>> PATH is..."
-echo $PATH
-echo ">>>>>>>>> LD_LIBRARY_PATH is..."
-echo $LD_LIBRARY_PATH
-echo ">>>>>>>>> rec.C is..."
-cat rec.C
-echo
-
-echo ">>>>>>> Running AliRoot to reconstruct $1. Run number is $runnum..."
-aliroot -l -b -q rec.C\(\"alien://$1\"\) 2>&1 | tee rec.log
-
-echo ">>>>>>> Running AliRoot to make calibration..."
-aliroot -l -b -q runCalibTrain.C\(\"$runnum\"\) 2>&1 | tee calib.log
-
-echo ">>>>>>> Running AliRoot to generate Tags..."
-aliroot -l -b -q tag.C\(\) 2>&1 | tee tag.log
+++ /dev/null
-void tag() {
- const char* turl = gSystem->Getenv("ALIEN_JDL_OUTPUTDIR");
-
- gSystem->Load("libNet.so");
- gSystem->Load("libMonaLisa.so");
- new TMonaLisaWriter(0, "GridAliRoot-tag.C", 0, 0, "global");
-
- TString fESDFileName = "alien://";
- fESDFileName += turl;
- fESDFileName += "/AliESDs.root";
-
- TString fGUID = 0;
- GetGUID(fGUID);
-
- gEnv->Print();
-
- TString fAliroot, fRoot, fGeant;
- GetVersions(fAliroot,fRoot,fGeant);
-
- UpdateTag(fAliroot,fRoot,fGeant,fESDFileName,fGUID);
-}
-
-//_____________________________________//
-GetVersions(TString &fAliroot, TString &froot, TString &fgeant) {
- const char* fver = gSystem->Getenv("ALIEN_JDL_PACKAGES");
- TString fS = fver;
- Int_t fFirst = fS.First("#");
-
- while(fFirst != -1) {
- Int_t fTotalLength = fS.Length();
- TString tmp = fS;
- TString fS1 = fS(0,fFirst);
- tmp = fS(fFirst+2,fTotalLength);
- fS = tmp;
-
- if(fS1.Contains("Root")) fAliroot = fS1;
- if(fS1.Contains("ROOT")) froot = fS1;
- if(fS1.Contains("GEANT")) fgeant = fS1;
-
- if(tmp.Contains("Root")) fAliroot = tmp;
- if(tmp.Contains("ROOT")) froot = tmp;
- if(tmp.Contains("GEANT")) fgeant = tmp;
-
- fFirst = tmp.First("#");
- }
-}
-
-//_____________________________________//
-GetGUID(TString &guid) {
- ofstream myfile ("guid.txt");
- if (myfile.is_open()) {
- TFile *f = TFile::Open("AliESDs.root","read");
- if(f && !f->IsZombie() && f->IsOpen()) {
- guid = f->GetUUID().AsString();
- myfile << "AliESDs.root \t"<<f->GetUUID().AsString();
- cout<<guid.Data()<<endl;
- myfile.close();
- }
- else cout<<"Input file not found"<<endl;
- }
- else cout<<"Output file can't be created..."<<endl;
-}
-
-
-//_____________________________________//
-Bool_t UpdateTag(TString faliroot, TString froot, TString fgeant, TString turl, TString guid) {
- cout<<"> Updating tags...."<<endl;
-
- const char * tagPattern = "tag.root";
- // Open the working directory
- void * dirp = gSystem->OpenDirectory(gSystem->pwd());
- const char * name = 0x0;
- // Add all files matching *pattern* to the chain
- while((name = gSystem->GetDirEntry(dirp))) {
- cout<<">>> Adding to chain file " << name << "...." << endl;
- if (strstr(name,tagPattern)) {
- TFile *f = TFile::Open(name,"read") ;
-
- AliRunTag *tag = 0x0;
- AliEventTag *evTag = 0x0;
- TTree *fTree = (TTree *)f->Get("T");
- if (!fTree) { f->Close(); continue; }
- fTree->SetBranchAddress("AliTAG",&tag);
-
- //Defining new tag objects
- AliRunTag *newTag = 0x0;
- TTree ttag("T","A Tree with event tags");
- TBranch * btag = ttag.Branch("AliTAG", &newTag);
- btag->SetCompressionLevel(9);
-
- cout<<">>>>> Found " << fTree->GetEntries() << " entries...." << endl;
- for(Int_t iTagFiles = 0; iTagFiles < fTree->GetEntries(); iTagFiles++) {
- fTree->GetEntry(iTagFiles);
- newTag = new AliRunTag(*tag);
- newTag->SetAlirootVersion(faliroot);
- newTag->SetRootVersion(froot);
- newTag->SetGeant3Version(fgeant);
- TClonesArray *tagList = newTag->GetEventTags();
- cout << "Found " << tagList->GetEntries() << " tags" << endl;
- for(Int_t j = 0; j < tagList->GetEntries(); j++) {
- evTag = (AliEventTag *) tagList->At(j);
- evTag->SetTURL(turl);
- evTag->SetGUID(guid);
- }
- ttag.Fill();
-
- delete tag;
- delete newTag;
- }//tag file loop
-
- TFile* ftag = TFile::Open(name, "recreate");
- ftag->cd();
- ttag.Write();
- ftag->Close();
-
- }//pattern check
- }//directory loop
- return kTRUE;
-}
-
+++ /dev/null
-#!/bin/sh
-##################################################
-validateout=`dirname $0`
-validatetime=`date`
-validated="0";
-error=1
-
-if [ -z $validateout ]
-then
- validateout="."
-fi
-cd $validateout;
-validateworkdir=`pwd`;
-
-echo "*******************************************************" >> stdout;
-echo "* AliRoot Validation Script V1.0 *" >> stdout;
-echo "* Time: $validatetime " >> stdout;
-echo "* Dir: $validateout" >> stdout;
-echo "* Workdir: $validateworkdir" >> stdout;
-echo "* ----------------------------------------------------*" >> stdout;
-ls -la ./ >> stdout;
-echo "* ----------------------------------------------------*" >> stdout;
-
-cp stdout stdout.log
-cp stderr stderr.log
-
-##################################################
-if [ -f rec.log ] && [ -f calib.log ] && [ -f AliESDs.root ] && [ -f AliESDfriends_v1.root ] && [ -f Run*.ESD.tag.root ]
-then
-sv=`grep -i "Segmentation violation" *.log`
-if [ "$sv" = "" ]
- then
- sf=`grep -i "Segmentation fault" *.log`
- if [ "$sf" = "" ]
- then
- be=`grep -i "Bus error" *.log`
- if [ "$be" = "" ]
- then
- ab=`grep -i "Break" *.log`
- if [ "$ab" = "" ]
- then
- fp=`grep -i "Floating point exception" *.log`
- if [ "$fp" = "" ]
- then
- kl=`grep -i "Killed" *.log`
- if [ "$kl" = "" ]
- then
- bf=`grep -i "busy flag cleared" *.log`
- if [ "$bf" = "" ]
- then
- echo "* ---------------- Job Validated ------------------*" >> stdout;
- error="0";
- else
- echo "* # Check Macro failed ! #" >> stdout;
- fi
- fi
- fi
- fi
- fi
- fi
-fi
-else
- echo "* ########## Job not validated - no rec.log or calib.log or tag.log or AliESDs.root or ESD.tag.root && AliESDfriends.root ###" >> stdout;
- echo "* ########## Removing all ROOT files from the local directory, leaving only the logs ###" >> stdout;
- rm -rf *.root
-fi
-if [ "$error" = "1" ]
- then
- echo "* ################ Job not validated ################" >> stdout;
-fi
-echo "* ----------------------------------------------------*" >> stdout;
-echo "*******************************************************" >> stdout;
-sleep 15;
-cd -
-exit $error