]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/CalibMacros/CPass1/runCalibTrain.C
9b3aa90e4d6420753b78fe49e3b37b53c0ee5b7a
[u/mrichter/AliRoot.git] / PWGPP / CalibMacros / CPass1 / runCalibTrain.C
1 /*
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
8
9   Example:
10   .L $ALICE_ROOT/ANALYSIS/macros/runCalibTrain.C
11   runCalibTrain("104892");
12 */
13
14 void runCalibTrain(TString runNumberString, const char *inFileName = "AliESDs.root", const char *ocdb="raw://")
15 {
16   //
17   // macro to run TPC calibration train 
18   //
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");
22
23   // detector tasks
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"); 
30
31   // switch off debug 
32   AliLog::SetClassDebugLevel("AliESDEvent",0);
33   
34   // steering input chain
35   TChain *chain = new TChain("esdTree");
36   chain->Add(inFileName);
37
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);
44   
45   //
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());
53
54   // setup analysis
55   //
56   AliAnalysisManager *mgr  = new AliAnalysisManager("ESD to ESD", "Analysis Manager");
57   // mgr->SetDebugLevel(3);
58   mgr->SetNSysInfo(50);   
59
60   // Input
61   AliESDInputHandler* inpHandler = new AliESDInputHandler();
62   inpHandler->SetReadFriends(1);
63   mgr->SetInputEventHandler(inpHandler);
64   
65   // Output
66   const char *outFile = "AliESDfriends_v1.root";
67   AliESDHandler* esdHandler   = new AliESDHandler();
68   mgr->SetOutputEventHandler(esdHandler);
69   esdHandler->SetOutputFileName(outFile);
70   mgr->SetCommonFileName(outFile);
71   //  
72   // Detector Tasks
73   AliAnalysisTask* tTPC = AddTaskTPCCalib(runNumber);
74   AliAnalysisTask* tTRD = AddTaskTRDCalib(runNumber);
75   AliTOFAnalysisTaskCalibPass0 *thisTask = AddTOFAnalysisTaskCalibPass0();
76   AliAnalysisTask* tT0 = AddTaskT0Calib(runNumber);
77   //AliMeanVertexCalibTask *tMeanVtx = AddTaskMeanVertexCalib();
78   //
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); 
85   //
86   // Run the analysis
87   if (!mgr->InitAnalysis()) {
88     printf("Analysis cannot be started, returning\n");
89     return;
90   }
91   
92   mgr->PrintStatus();
93   mgr->StartAnalysis("local", chain);
94   
95   return;
96 }