c8956ba0ef881513d54b0ed1de0ad62e2d95cb6a
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / macros / test / AddTaskAnalysisMonitor.C
1 //
2 // Macro to create the full analysis manager for Resonances
3 //
4 Bool_t AddTaskAnalysisMonitor
5 (
6   const char *dataType,
7   const char *outName = "monitor.root"
8 )
9 {
10   // convert the last argument into a BOOL variable
11   Bool_t isMC = kTRUE;
12   if (!strcmp(dataType, "7TeV_pass1_data")) isMC = kFALSE;
13   if (!strcmp(dataType, "7TeV_pass2_data")) isMC = kFALSE;
14   
15   // retrieve analysis manager
16   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
17   
18   /* promemoria TOF
19   - dati pass1
20   calibrateESD = kTRUE
21   correctTExp = kTRUE
22   useT0TOF = kTRUE
23   timeResolution = 100.
24   tuneTOFMC = kFALSE
25
26   - dati pass2
27   idem, anche se in teoria potresti usare
28   calibrateESD = kFALSE
29   suggerirei di lasciare come pass1
30
31   - MC tunato
32   calibrateESD = kFALSE
33   correctTExp = kTRUE
34   useT0TOF = kTRUE
35   timeResolution = 100.
36   tuneTOFMC = kTRUE
37   */
38
39   // add task macro
40   AliRsnAnalysisMonitorTask *task = new AliRsnAnalysisMonitorTask("taskRsnMonitor");
41   task->SelectCollisionCandidates();
42   task->SetTPCbands(5.0, 3.0);
43   task->SetTPClargeBandLimit(0.35);
44   task->SetITSband(4.0);
45   if (isMC) task->SetTPCpar(2.15898 / 50.0, 1.75295E1, 3.40030E-9, 1.96178, 3.91720);
46   else      task->SetTPCpar(1.41543 / 50.0, 2.63394E1, 5.0411E-11, 2.12543, 4.88663);
47   
48   // TPC cuts
49   task->GetCutsTPC().SetRequireTPCStandAlone(kTRUE); // to get chi2 and ncls of kTPCin
50   task->GetCutsTPC().SetMinNClustersTPC(70);
51   task->GetCutsTPC().SetMaxChi2PerClusterTPC(4);
52   task->GetCutsTPC().SetAcceptKinkDaughters(kFALSE);
53   task->GetCutsTPC().SetRequireTPCRefit(kTRUE);
54   // ITS
55   task->GetCutsTPC().SetRequireITSRefit(kTRUE);
56   task->GetCutsTPC().SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
57   // DCA pt dependent: 7*(0.0050+0.0060/pt0.9)
58   task->GetCutsTPC().SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
59   task->GetCutsTPC().SetMaxDCAToVertexZ(1e6);
60   task->GetCutsTPC().SetDCAToVertex2D(kFALSE);
61   task->GetCutsTPC().SetRequireSigmaToVertex(kFALSE);
62   //esdTrackCuts->SetEtaRange(-0.8,+0.8);
63   
64   //task->GetCutsITS().SetRequireITSStandAlone(kTRUE);
65   //task->GetCutsITS().SetRequireITSPureStandAlone(kFALSE);
66   task->GetCutsITS().SetRequireITSRefit(kTRUE); 
67   task->GetCutsITS().SetMinNClustersITS(4);
68   task->GetCutsITS().SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
69   task->GetCutsITS().SetMaxChi2PerClusterITS(1.);
70   task->GetCutsITS().SetMaxDCAToVertexXYPtDep("0.0595+0.0182/pt^1.55");
71   task->GetCutsTPC().SetMaxDCAToVertexZ(1e6);
72   //task->GetCutsITS().SetRequireITSPid(kTRUE);
73   
74   if (!strcmp(dataType, "7TeV_pass1_data"))
75   {
76     task->SetTOFcalibrateESD(kTRUE);
77     task->SetTOFcorrectTExp(kTRUE);
78     task->SetTOFuseT0(kTRUE);
79     task->SetTOFtuneMC(kFALSE);
80     task->SetTOFresolution(100.0);
81   }
82   if (!strcmp(dataType, "7TeV_pass2_data"))
83   {
84     task->SetTOFcalibrateESD(kTRUE);  // potrebbe anche essere kFALSE
85     task->SetTOFcorrectTExp(kTRUE);
86     task->SetTOFuseT0(kTRUE);
87     task->SetTOFtuneMC(kFALSE);
88     task->SetTOFresolution(100.0);
89   }
90   else if (!strcmp(dataType, "7TeV_pass2_sim"))
91   {
92     task->SetTOFcalibrateESD(kFALSE);
93     task->SetTOFcorrectTExp(kTRUE);
94     task->SetTOFuseT0(kTRUE);
95     task->SetTOFtuneMC(kTRUE);
96     task->SetTOFresolution(100.0);
97   }
98   mgr->AddTask(task);
99   
100   // create containers for input/output
101   AliAnalysisDataContainer *out = mgr->CreateContainer("all" , TTree::Class(), AliAnalysisManager::kOutputContainer, outName);
102   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
103   mgr->ConnectOutput(task, 1, out);
104
105   return kTRUE;
106 }