1 //=============================================================================
5 // This macros setup the TRD calibration task
7 //=============================================================================
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);
12 AliAnalysisTask *AddTaskTRDCalib(Int_t runNumber)
14 gSystem->Load("libTRDcalib");
15 // pointer to the analysis manager
16 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
18 Error("AddTaskTRDCalib", "No analysis manager to connect to.");
22 // check the input handler
23 if (!mgr->GetInputEventHandler()) {
24 ::Error("AddTask", "This task requires an input event handler");
28 ////////////////////////////////////////////
30 ///////////////////////////////////////////
31 AliTRDcalibDB *calib = AliTRDcalibDB::Instance();
32 Int_t nbOfTimeBins = calib->GetNumberOfTimeBinsDCS();
33 if(nbOfTimeBins < 0) nbOfTimeBins = 27;
34 ////////////////////////////////////////////
36 /////////////////////////////////////////////
37 Int_t versiongain, subversiongain, versionvdrift, subversionvdrift;
39 /////////////////////////
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);
53 calibTask->SetHigh(30);
54 calibTask->SetFillZero(kFALSE);
55 calibTask->AddSelectedTriggerClass("CINT1B-ABCE-NOPF-ALL");
56 calibTask->AddSelectedTriggerClass("CINT1WU-B-NOPF-ALL");
57 calibTask->SetReject(kFALSE);
58 //calibTask->SetDebug(2);
59 calibTask->SetNbTimeBins(nbOfTimeBins);
60 //calibTask->SetMaxEvent(10);
61 //calibTask->SetThresholdP(1.0);
62 calibTask->SetRequirePrimaryVertex(kTRUE);
63 calibTask->SetMinNbOfContributors(1);
64 calibTask->SetMaxCluster(100.0);
65 calibTask->SetNbMaxCluster(2);
66 //calibTask->SetLimitChargeIntegration(kTRUE);
68 //calibTask->SetCalDetGain(GetCalDetGain(runNumber,versiongain,subversiongain));
69 //GetVersionSubversionVdrift(runNumber,versionvdrift,subversionvdrift);
70 //calibTask->SetVersionGainUsed(versiongain);
71 //calibTask->SetSubVersionGainUsed(subversiongain);
72 //calibTask->SetVersionVdriftUsed(versionvdrift);
73 //calibTask->SetSubVersionVdriftUsed(subversionvdrift);
76 /////////////////////////////
78 /////////////////////////////
79 AliESDtrackCuts *trackCuts = new AliESDtrackCuts("trackcuts","trackcuts");
80 trackCuts->SetMinNClustersTPC(50);
81 trackCuts->SetMaxChi2PerClusterTPC(3.5);
82 //trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
83 trackCuts->SetRequireTPCRefit(kTRUE);
84 //trackCuts->SetRequireITSRefit(kTRUE);
85 //trackCuts->SetMinNsigmaToVertex(10);
86 trackCuts->SetRequireSigmaToVertex(kFALSE);
87 trackCuts->SetAcceptKinkDaughters(kFALSE);
88 trackCuts->SetMaxDCAToVertexZ(30.0);
89 trackCuts->SetMaxDCAToVertexXY(3.0);
90 trackCuts->SetDCAToVertex2D(kFALSE);
92 calibTask->SetESDtrackCuts(trackCuts);
94 mgr->AddTask(calibTask);
96 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
97 //AliAnalysisDataContainer *cinput = mgr->GetCommonOutputContainer();
99 if (!cinput) cinput = mgr->CreateContainer("cchain",TChain::Class(),
100 AliAnalysisManager::kInputContainer);
102 AliAnalysisDataContainer *coutput =mgr->CreateContainer("TRDCalib",TList::Class(), AliAnalysisManager::kOutputContainer, "AliESDfriends_v1.root");
105 mgr->ConnectInput(calibTask,0,cinput);
106 mgr->ConnectOutput(calibTask,1,coutput);
111 const AliTRDCalDet *GetCalDetGain(Int_t runNumber, Int_t &version, Int_t &subversion){
113 // Get Cal Det for gas gain
116 AliCDBEntry *entry = AliCDBManager::Instance()->Get("TRD/Calib/ChamberGainFactor",runNumber);
118 printf("Found no entry\n");
121 const AliCDBId id = entry->GetId();
122 version = id.GetVersion();
123 subversion = id.GetSubVersion();
124 printf("Found version %d and subversion %d for gain\n",version,subversion);
125 const AliTRDCalDet* calDet = (AliTRDCalDet *)entry->GetObject();
130 void GetVersionSubversionVdrift(Int_t runNumber, Int_t &version, Int_t &subversion){
132 // Get Version and subversion for Vdrift
135 AliCDBEntry *entry = AliCDBManager::Instance()->Get("TRD/Calib/ChamberVdrift",runNumber);
137 printf("Found no entry\n");
140 const AliCDBId id = entry->GetId();
141 version = id.GetVersion();
142 subversion = id.GetSubVersion();
143 printf("Found version %d and subversion %d for vdrift\n",version,subversion);