Update for TRD (Raphaelle).
[u/mrichter/AliRoot.git] / PWGPP / CalibMacros / CPass1 / AddTaskTRDCalib.C
1 //=============================================================================
2 //
3 // *** AddTaskTRDCalib
4 //
5 // This macros setup the TRD calibration task
6 //
7 //=============================================================================
8
9 AliAnalysisTask  *AddTaskTRDCalib(Int_t runNumber)
10 {
11   gSystem->Load("libTRDcalib");
12   // pointer to the analysis manager
13   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14   if (!mgr) {
15     Error("AddTaskTRDCalib", "No analysis manager to connect to.");
16     return NULL;
17   }
18
19   // check the input handler
20   if (!mgr->GetInputEventHandler()) {
21     ::Error("AddTask", "This task requires an input event handler");
22     return NULL;
23   }
24
25   ////////////////////////////////////////////
26   // Number of timebins
27   ///////////////////////////////////////////
28   AliTRDcalibDB *calib = AliTRDcalibDB::Instance();
29   Int_t nbOfTimeBins = calib->GetNumberOfTimeBinsDCS();
30   if(nbOfTimeBins < 0) nbOfTimeBins = 27;
31   ////////////////////////////////////////////
32   //
33   /////////////////////////////////////////////
34   Int_t versiongain, subversiongain, versionvdrift, subversionvdrift;
35
36   /////////////////////////
37   // The TRD calib Task
38   /////////////////////////
39   AliTRDCalibTask *calibTask = new AliTRDCalibTask();
40
41   // Disabling TRD CPAss0 as per https://savannah.cern.ch/bugs/?88813
42   //calibTask->SetMaxEvent(-1);
43   
44   calibTask->SetMaxNbTracks(1600);
45   calibTask->SetHisto2d(kTRUE);
46   calibTask->SetVector2d(kFALSE);
47   calibTask->SetVdriftLinear(kTRUE);
48   calibTask->SetExbAlt(kFALSE);
49   calibTask->SetNz(0,0);
50   calibTask->SetNrphi(0,0);
51   calibTask->SetNz(0,1);
52   calibTask->SetNrphi(0,1);
53   calibTask->SetNz(0,2);
54   calibTask->SetNrphi(0,2);
55   calibTask->SetLow(0);
56   calibTask->SetHigh(30);
57   calibTask->SetFillZero(kFALSE);
58   // now
59   calibTask->AddSelectedTriggerClass("C0OB0-ABCE-NOPF-ALL");
60   calibTask->AddSelectedTriggerClass("CTRDCO2-ABCE-NOPF-CENT");
61   calibTask->AddSelectedTriggerClass("CTRDCO2-ABCE-NOPF-TRD");
62   calibTask->AddSelectedTriggerClass("CTRDCO2-ABCE-NOPF-ALL");
63   calibTask->SetReject(kTRUE);
64   // before
65   //calibTask->AddSelectedTriggerClass("CINT1B-ABCE-NOPF-ALL");
66   //calibTask->AddSelectedTriggerClass("CINT1WU-B-NOPF-ALL");
67   //calibTask->AddSelectedTriggerClass("CINT7WU-B-NOPF-ALL");
68   //calibTask->AddSelectedTriggerClass("CINT7WU-I-NOPF-ALL");
69   //calibTask->SetReject(kFALSE);
70   //calibTask->SetDebug(2);
71   calibTask->SetNbTimeBins(nbOfTimeBins);
72   calibTask->SetNumberBinCharge(100);
73   //calibTask->SetMaxEvent(10);
74   //calibTask->SetThresholdP(1.0);
75   calibTask->SetRequirePrimaryVertex(kTRUE);
76   calibTask->SetMinNbOfContributors(1);
77   calibTask->SetMaxCluster(100.0);
78   calibTask->SetNbMaxCluster(2);
79   //calibTask->SetLimitChargeIntegration(kTRUE);
80
81
82   /////////////////////////////
83   // Track cuts
84   /////////////////////////////
85   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("trackcuts","trackcuts");
86   trackCuts->SetMinNClustersTPC(50);
87   trackCuts->SetMaxChi2PerClusterTPC(3.5);
88   //trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
89   trackCuts->SetRequireTPCRefit(kTRUE);
90   //trackCuts->SetRequireITSRefit(kTRUE);
91   //trackCuts->SetMinNsigmaToVertex(10);
92   trackCuts->SetRequireSigmaToVertex(kFALSE);
93   trackCuts->SetAcceptKinkDaughters(kFALSE);
94   trackCuts->SetMaxDCAToVertexZ(30.0);
95   trackCuts->SetMaxDCAToVertexXY(3.0);
96   trackCuts->SetDCAToVertex2D(kFALSE);
97
98   calibTask->SetESDtrackCuts(trackCuts);
99
100   mgr->AddTask(calibTask);
101
102   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
103   //AliAnalysisDataContainer *cinput = mgr->GetCommonOutputContainer();
104
105   if (!cinput) cinput = mgr->CreateContainer("cchain",TChain::Class(),
106                                       AliAnalysisManager::kInputContainer);
107
108   AliAnalysisDataContainer *coutput =mgr->CreateContainer("TRDCalib",TList::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");
109
110
111   mgr->ConnectInput(calibTask,0,cinput);
112   mgr->ConnectOutput(calibTask,1,coutput);
113   return calibTask;
114
115 }