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 AliSysInfo::SetVerbose(kTRUE);
20 AliLog::SetGlobalLogLevel(AliLog::kError);
21 gROOT->Macro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/LoadLibraries.C");
22 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/ConfigCalibTrain.C");
23 gSystem->SetIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/ANALYSIS -g");
24 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/commonMacros/CleanGeom.C++");
27 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskTPCCalib.C");
28 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskTRDCalib.C");
29 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTOFAnalysisTaskCalibPass0.C");
30 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskT0Calib.C");
31 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskMeanVertexCalib.C");
32 gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskSDDCalib.C");
35 AliLog::SetClassDebugLevel("AliESDEvent",0);
37 // steering input chain
38 TChain *chain = new TChain("esdTree");
39 chain->Add(inFileName);
41 // config calibration train
42 // setting geometry and B-field from GRP
43 printf("runNumber from runCalibTrain = %d\n",runNumber);
44 printf("ocdb from runCalibTrain = %s\n",ocdb);
45 AliSysInfo::AddStamp("BeforeConfiguringCalibTrain");
46 ConfigCalibTrain(runNumber, ocdb);
47 AliSysInfo::AddStamp("AfterConfiguringCalibTrain");
49 if (gROOT->LoadMacro("localOCDBaccessConfig.C")==0) {
50 localOCDBaccessConfig();
54 // check the presence of the detectors
55 AliCDBEntry* entry = AliCDBManager::Instance()->Get("GRP/GRP/Data");
56 AliGRPObject* grpData = dynamic_cast<AliGRPObject*>(entry->GetObject());
57 if (!grpData) {printf("Failed to get GRP data for run",runNumber); return;}
58 Int_t activeDetectors = grpData->GetDetectorMask();
59 TString detStr = AliDAQ::ListOfTriggeredDetectors(activeDetectors);
60 printf("Detectors in the data:\n%s\n",detStr.Data());
64 AliAnalysisManager *mgr = new AliAnalysisManager("ESD to ESD", "Analysis Manager");
65 // mgr->SetDebugLevel(3);
70 AliESDInputHandler* inpHandler = new AliESDInputHandler();
71 inpHandler->SetReadFriends(1);
72 mgr->SetInputEventHandler(inpHandler);
75 const char *outFile = "AliESDfriends_v1.root";
76 AliESDHandler* esdHandler = new AliESDHandler();
77 mgr->SetOutputEventHandler(esdHandler);
78 esdHandler->SetOutputFileName(outFile);
79 mgr->SetCommonFileName(outFile);
83 AliSysInfo::AddStamp("BeforeTPC");
84 if ( detStr.Contains("TPC")) AddTaskTPCCalib(runNumber);
86 AliSysInfo::AddStamp("BeforeTRD");
87 if ( detStr.Contains("TRD") && detStr.Contains("TPC")) AddTaskTRDCalib(runNumber);
89 AliSysInfo::AddStamp("BeforeTOF");
90 if ( detStr.Contains("TOF") && detStr.Contains("TPC")) AddTOFAnalysisTaskCalibPass0();
92 AliSysInfo::AddStamp("BeforeT0");
93 if ( detStr.Contains("T0")) AddTaskT0Calib(runNumber);
95 AliSysInfo::AddStamp("BeforeMeanVertex");
96 if ( detStr.Contains("ITSSPD")) AddTaskMeanVertexCalib();
100 Bool_t okTPC = detStr.Contains("TPC");
101 Bool_t useTPCcrv=kTRUE;
102 Bool_t writeITSTP = kFALSE;
103 if (!okTPC) useTPCcrv = kFALSE;
104 AliSysInfo::AddStamp("BeforeSDD");
105 AliAnalysisTaskITSAlignQA *itsAlign = AddTaskSDDCalib(0,writeITSTP,useTPCcrv);
106 if (!okTPC) itsAlign->SetUseITSstandaloneTracks(kTRUE);
107 if (grpData->GetL3Current()[0] < 300) itsAlign->SetMinPt(0.001);
109 // dummy task to clean geometry in Terminate >>>>
110 CleanGeom* clgmTask = new CleanGeom("cleanGeom");
111 mgr->AddTask(clgmTask);
112 AliAnalysisDataContainer *dummyInp = mgr->GetCommonInputContainer();
113 if (dummyInp) mgr->ConnectInput(clgmTask,0,dummyInp);
114 // dummy task to clean geometry in Terminate <<<<
117 AliSysInfo::AddStamp("BeforeInitAnalysis");
118 if (!mgr->InitAnalysis()) {
119 printf("Analysis cannot be started, returning\n");
124 AliSysInfo::AddStamp("BeforeStartAnalysis");
125 mgr->StartAnalysis("local", chain);