]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/CalibMacros/Pass0/AddTaskTRDCalib.C
Adding the new filtering mask - https://savannah.cern.ch/bugs/?84135
[u/mrichter/AliRoot.git] / PWG1 / CalibMacros / Pass0 / AddTaskTRDCalib.C
CommitLineData
674af238 1//=============================================================================
2//
3// *** AddTaskTRDCalib
4//
5// This macros setup the TRD calibration task
6//
7//=============================================================================
8
9const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t &version, Int_t &subversion);
10void GetVersionSubversionVdrift(Int_t runNumber, Int_t &version, Int_t &subversion);
11
12AliAnalysisTask *AddTaskTRDCalib(Int_t runNumber)
13{
14 gSystem->Load("libTRDcalib");
15 // pointer to the analysis manager
16 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
17 if (!mgr) {
18 Error("AddTaskTRDCalib", "No analysis manager to connect to.");
19 return NULL;
20 }
21
22 // check the input handler
23 if (!mgr->GetInputEventHandler()) {
24 ::Error("AddTask", "This task requires an input event handler");
25 return NULL;
26 }
27
28 ////////////////////////////////////////////
29 // Number of timebins
30 ///////////////////////////////////////////
31 AliTRDcalibDB *calib = AliTRDcalibDB::Instance();
32 Int_t nbOfTimeBins = calib->GetNumberOfTimeBinsDCS();
33 if(nbOfTimeBins < 0) nbOfTimeBins = 27;
34 ////////////////////////////////////////////
35 //
36 /////////////////////////////////////////////
37 Int_t versiongain, subversiongain, versionvdrift, subversionvdrift;
38
39 /////////////////////////
40 // The TRD calib Task
41 /////////////////////////
42 AliTRDCalibTask *calibTask = new AliTRDCalibTask();
43 calibTask->SetHisto2d(kTRUE);
44 calibTask->SetVector2d(kFALSE);
45 calibTask->SetVdriftLinear(kTRUE);
46 calibTask->SetNz(0,0);
47 calibTask->SetNrphi(0,0);
48 calibTask->SetNz(0,1);
49 calibTask->SetNrphi(0,1);
50 calibTask->SetNz(0,2);
51 calibTask->SetNrphi(0,2);
52 calibTask->SetLow(0);
53 calibTask->SetHigh(30);
54 calibTask->SetFillZero(kFALSE);
55 calibTask->AddSelectedTriggerClass("CINT1B-ABCE-NOPF-ALL");
56 calibTask->AddSelectedTriggerClass("CINT1WU-B-NOPF-ALL");
22074561 57 calibTask->AddSelectedTriggerClass("CINT7WU-B-NOPF-ALL");
674af238 58 calibTask->SetReject(kFALSE);
59 //calibTask->SetDebug(2);
60 calibTask->SetNbTimeBins(nbOfTimeBins);
61 //calibTask->SetMaxEvent(10);
62 //calibTask->SetThresholdP(1.0);
63 calibTask->SetRequirePrimaryVertex(kTRUE);
64 calibTask->SetMinNbOfContributors(1);
65 calibTask->SetMaxCluster(100.0);
66 calibTask->SetNbMaxCluster(2);
67 //calibTask->SetLimitChargeIntegration(kTRUE);
68
69 //calibTask->SetCalDetGain(GetCalDetGain(runNumber,versiongain,subversiongain));
70 //GetVersionSubversionVdrift(runNumber,versionvdrift,subversionvdrift);
71 //calibTask->SetVersionGainUsed(versiongain);
72 //calibTask->SetSubVersionGainUsed(subversiongain);
73 //calibTask->SetVersionVdriftUsed(versionvdrift);
74 //calibTask->SetSubVersionVdriftUsed(subversionvdrift);
75
76
77 /////////////////////////////
78 // Track cuts
79 /////////////////////////////
80 AliESDtrackCuts *trackCuts = new AliESDtrackCuts("trackcuts","trackcuts");
81 trackCuts->SetMinNClustersTPC(50);
82 trackCuts->SetMaxChi2PerClusterTPC(3.5);
83 //trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
84 trackCuts->SetRequireTPCRefit(kTRUE);
85 //trackCuts->SetRequireITSRefit(kTRUE);
86 //trackCuts->SetMinNsigmaToVertex(10);
87 trackCuts->SetRequireSigmaToVertex(kFALSE);
88 trackCuts->SetAcceptKinkDaughters(kFALSE);
89 trackCuts->SetMaxDCAToVertexZ(30.0);
90 trackCuts->SetMaxDCAToVertexXY(3.0);
91 trackCuts->SetDCAToVertex2D(kFALSE);
92
93 calibTask->SetESDtrackCuts(trackCuts);
94
95 mgr->AddTask(calibTask);
96
97 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
98 //AliAnalysisDataContainer *cinput = mgr->GetCommonOutputContainer();
99
100 if (!cinput) cinput = mgr->CreateContainer("cchain",TChain::Class(),
101 AliAnalysisManager::kInputContainer);
102
103 AliAnalysisDataContainer *coutput =mgr->CreateContainer("TRDCalib",TList::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");
104
105
106 mgr->ConnectInput(calibTask,0,cinput);
107 mgr->ConnectOutput(calibTask,1,coutput);
108 return calibTask;
109
110}
111
112const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t &version, Int_t &subversion){
113 //
114 // Get Cal Det for gas gain
115 //
116
117 AliCDBEntry *entry = AliCDBManager::Instance()->Get("TRD/Calib/ChamberGainFactor",runNumber);
118 if(!entry) {
119 printf("Found no entry\n");
120 return 0x0;
121 }
122 const AliCDBId id = entry->GetId();
123 version = id.GetVersion();
124 subversion = id.GetSubVersion();
125 printf("Found version %d and subversion %d for gain\n",version,subversion);
126 const AliTRDCalDet* calDet = (AliTRDCalDet *)entry->GetObject();
127
128 return calDet;
129
130}
131void GetVersionSubversionVdrift(Int_t runNumber, Int_t &version, Int_t &subversion){
132 //
133 // Get Version and subversion for Vdrift
134 //
135
136 AliCDBEntry *entry = AliCDBManager::Instance()->Get("TRD/Calib/ChamberVdrift",runNumber);
137 if(!entry) {
138 printf("Found no entry\n");
139 return 0x0;
140 }
141 const AliCDBId id = entry->GetId();
142 version = id.GetVersion();
143 subversion = id.GetSubVersion();
144 printf("Found version %d and subversion %d for vdrift\n",version,subversion);
145
146
147}