]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/CalibMacros/CPass0/runCalibTrain.C
Updating calib train steering macro to take into account presence/absence of TPC
[u/mrichter/AliRoot.git] / PWGPP / CalibMacros / CPass0 / 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/CPass0/LoadLibraries.C");
21   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/ConfigCalibTrain.C");
22
23   // detector tasks
24   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskTPCCalib.C");
25   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskTRDCalib.C");
26   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTOFAnalysisTaskCalibPass0.C");
27   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskT0Calib.C");
28   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/AddTaskMeanVertexCalib.C");
29   gROOT->LoadMacro("$ALICE_ROOT/PWGPP/CalibMacros/CPass0/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   
59   // Input
60   AliESDInputHandler* inpHandler = new AliESDInputHandler();
61   inpHandler->SetReadFriends(1);
62   mgr->SetInputEventHandler(inpHandler);
63   
64   // Output
65   const char *outFile = "AliESDfriends_v1.root";
66   AliESDHandler* esdHandler   = new AliESDHandler();
67   mgr->SetOutputEventHandler(esdHandler);
68   esdHandler->SetOutputFileName(outFile);
69   mgr->SetCommonFileName(outFile);
70   //  
71   // Detector Tasks
72   AliAnalysisTask* tTPC = AddTaskTPCCalib(runNumber);
73   AliAnalysisTask* tTRD = AddTaskTRDCalib(runNumber);
74   AliTOFAnalysisTaskCalibPass0 *thisTask = AddTOFAnalysisTaskCalibPass0();
75   AliAnalysisTask* tT0 = AddTaskT0Calib(runNumber);
76   AliMeanVertexCalibTask *tMeanVtx = AddTaskMeanVertexCalib();
77   //
78   Bool_t okTPC = detStr.Contains("TPC");
79   Bool_t useTPCcrv=kTRUE;
80   Bool_t writeITSTP = kFALSE;
81   if (!okTPC) useTPCcrv = kFALSE;
82   AliAnalysisTaskITSAlignQA *itsAlign = AddTaskSDDCalib(0,writeITSTP,useTPCcrv);
83   if (!okTPC) itsAlign->SetUseITSstandaloneTracks(kTRUE); 
84   //
85   // Run the analysis
86   if (!mgr->InitAnalysis()) {
87     printf("Analysis cannot be started, returning\n");
88     return;
89   }
90   
91   mgr->PrintStatus();
92   mgr->StartAnalysis("local", chain);
93   
94   return;
95 }