2 Template of calibration/filtering macro using ESD:
3 - requires AliESDs.root and AliESDfriend.root
4 - requires OCDB access (default set to "raw://")
5 - requires run number as argument to init OCDB
6 - calls LoadLibraries.C, ConfigCalibTrain.C and AddTaskTPCCalib.C macros
7 - output AliESDfriends_v1.root with TPC and TRD calibration objects are created
10 .L $ALICE_ROOT/ANALYSIS/macros/runCalibTrain.C
11 runCalibTrain("104892");
14 void runCalibTrain(TString runNumberString, const char *inFileName = "AliESDs.root", const char *ocdb="raw://")
17 // macro to run TPC calibration train
19 AliLog::SetGlobalLogLevel(AliLog::kError);
20 gROOT->Macro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/LoadLibraries.C");
21 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/ConfigCalibTrain.C");
24 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskTPCCalib.C");
25 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskTRDCalib.C");
26 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTOFAnalysisTaskCalibPass0.C");
27 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskT0Calib.C");
28 // gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskMeanVertexCalib.C");
29 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass1/AddTaskSDDCalib.C");
32 AliLog::SetClassDebugLevel("AliESDEvent",0);
34 // steering input chain
35 TChain *chain = new TChain("esdTree");
36 chain->Add(inFileName);
38 // config calibration train
39 // setting geometry and B-field from GRP
40 Int_t runNumber = runNumberString.Atoi();
41 printf("runNumber from runCalibTrain = %d\n",runNumber);
42 printf("ocdb from runCalibTrain = %s\n",ocdb);
43 ConfigCalibTrain(runNumber, ocdb);
46 // check the presence of the detectors
47 AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");
48 AliGRPObject* grpData = dynamic_cast<AliGRPObject*>(entry->GetObject());
49 if (!grpData) {printf("Failed to get GRP data for run",runNumber); return;}
50 Int_t activeDetectors = grpData->GetDetectorMask();
51 TString detStr = AliDAQ::ListOfTriggeredDetectors(activeDetectors);
52 printf("Detectors in the data:\n%s\n",detStr.Data());
56 AliAnalysisManager *mgr = new AliAnalysisManager("ESD to ESD", "Analysis Manager");
57 // mgr->SetDebugLevel(3);
61 AliESDInputHandler* inpHandler = new AliESDInputHandler();
62 inpHandler->SetReadFriends(1);
63 mgr->SetInputEventHandler(inpHandler);
66 const char *outFile = "AliESDfriends_v1.root";
67 AliESDHandler* esdHandler = new AliESDHandler();
68 mgr->SetOutputEventHandler(esdHandler);
69 esdHandler->SetOutputFileName(outFile);
70 mgr->SetCommonFileName(outFile);
73 AliAnalysisTask* tTPC = AddTaskTPCCalib(runNumber);
74 AliAnalysisTask* tTRD = AddTaskTRDCalib(runNumber);
75 AliTOFAnalysisTaskCalibPass0 *thisTask = AddTOFAnalysisTaskCalibPass0();
76 AliAnalysisTask* tT0 = AddTaskT0Calib(runNumber);
77 //AliMeanVertexCalibTask *tMeanVtx = AddTaskMeanVertexCalib();
79 Bool_t okTPC = detStr.Contains("TPC");
80 Bool_t useTPCcrv=kFALSE;
81 Bool_t writeITSTP = kTRUE;
82 if (!okTPC) useTPCcrv = kFALSE;
83 AliAnalysisTaskITSAlignQA *itsAlign = AddTaskSDDCalib(0,writeITSTP,useTPCcrv);
84 if (!okTPC) itsAlign->SetUseITSstandaloneTracks(kTRUE);
87 if (!mgr->InitAnalysis()) {
88 printf("Analysis cannot be started, returning\n");
93 mgr->StartAnalysis("local", chain);