]>
Commit | Line | Data |
---|---|---|
674af238 | 1 | //============================================================================= |
2 | // | |
3 | // *** AddTaskTRDCalib | |
4 | // | |
5 | // This macros setup the TRD calibration task | |
6 | // | |
7 | //============================================================================= | |
8 | ||
9 | const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t &version, Int_t &subversion); | |
10 | void GetVersionSubversionVdrift(Int_t runNumber, Int_t &version, Int_t &subversion); | |
11 | ||
12 | AliAnalysisTask *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 | ||
112 | const 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 | } | |
131 | void 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 | } |