]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/CalibMacros/CPass1/runCalibTrain.C
Improving printouts, minor changes, update according to current settings for T0 and...
[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(Int_t runNumber, 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   printf("runNumber from runCalibTrain = %d\n",runNumber);
41   printf("ocdb from runCalibTrain = %s\n",ocdb);
42   ConfigCalibTrain(runNumber, ocdb);
43   
44   if (gROOT->LoadMacro("localOCDBaccessConfig.C")==0) {
45     localOCDBaccessConfig();
46   }
47   
48   //
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());
56
57   // setup analysis
58   //
59   AliAnalysisManager *mgr  = new AliAnalysisManager("ESD to ESD", "Analysis Manager");
60   // mgr->SetDebugLevel(3);
61   mgr->SetNSysInfo(50);   
62
63   // Input
64   AliESDInputHandler* inpHandler = new AliESDInputHandler();
65   inpHandler->SetReadFriends(1);
66   mgr->SetInputEventHandler(inpHandler);
67   
68   // Output
69   const char *outFile = "AliESDfriends_v1.root";
70   AliESDHandler* esdHandler   = new AliESDHandler();
71   mgr->SetOutputEventHandler(esdHandler);
72   esdHandler->SetOutputFileName(outFile);
73   mgr->SetCommonFileName(outFile);
74   //  
75   // Detector Tasks
76   //
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();
82   //
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); 
90   //
91   // Run the analysis
92   if (!mgr->InitAnalysis()) {
93     printf("Analysis cannot be started, returning\n");
94     return;
95   }
96   
97   mgr->PrintStatus();
98   mgr->StartAnalysis("local", chain);
99   
100   return;
101 }