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(Int_t runNumber, 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 printf("runNumber from runCalibTrain = %d\n",runNumber);
41 printf("ocdb from runCalibTrain = %s\n",ocdb);
42 ConfigCalibTrain(runNumber, ocdb);
44 if (gROOT->LoadMacro("localOCDBaccessConfig.C")==0) {
45 localOCDBaccessConfig();
49 // check the presence of the detectors
50 AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");
51 AliGRPObject* grpData = dynamic_cast<AliGRPObject*>(entry->GetObject());
52 if (!grpData) {printf("Failed to get GRP data for run",runNumber); return;}
53 Int_t activeDetectors = grpData->GetDetectorMask();
54 TString detStr = AliDAQ::ListOfTriggeredDetectors(activeDetectors);
55 printf("Detectors in the data:\n%s\n",detStr.Data());
59 AliAnalysisManager *mgr = new AliAnalysisManager("ESD to ESD", "Analysis Manager");
60 // mgr->SetDebugLevel(3);
64 AliESDInputHandler* inpHandler = new AliESDInputHandler();
65 inpHandler->SetReadFriends(1);
66 mgr->SetInputEventHandler(inpHandler);
69 const char *outFile = "AliESDfriends_v1.root";
70 AliESDHandler* esdHandler = new AliESDHandler();
71 mgr->SetOutputEventHandler(esdHandler);
72 esdHandler->SetOutputFileName(outFile);
73 mgr->SetCommonFileName(outFile);
77 if ( detStr.Contains("TPC")) AddTaskTPCCalib(runNumber);
78 if ( detStr.Contains("TRD")) AddTaskTRDCalib(runNumber);
79 if ( detStr.Contains("TOF")) AddTOFAnalysisTaskCalibPass0();
80 if ( detStr.Contains("T0")) AddTaskT0Calib(runNumber);
81 //if ( detStr.Contains("ITSSPD")) tMeanVtx = AddTaskMeanVertexCalib();
83 Bool_t okTPC = detStr.Contains("TPC");
84 Bool_t useTPCcrv=kFALSE;
85 Bool_t writeITSTP = kTRUE;
86 if (!okTPC) useTPCcrv = kFALSE;
87 AliAnalysisTaskITSAlignQA *itsAlign = AddTaskSDDCalib(0,writeITSTP,useTPCcrv);
88 if (!okTPC) itsAlign->SetUseITSstandaloneTracks(kTRUE);
89 if (grpData->GetL3Current()[0] < 300) itsAlign->SetMinPt(0.001);
92 if (!mgr->InitAnalysis()) {
93 printf("Analysis cannot be started, returning\n");
98 mgr->StartAnalysis("local", chain);