]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/Macros/AliTRDrunCalib.C
new PID 2dLQ implementation to fix bug 54540
[u/mrichter/AliRoot.git] / TRD / Macros / AliTRDrunCalib.C
1 void Plot(Int_t run);
2 void AliTRDrunCalib(const char*filename,Int_t runnr)
3 {
4  
5  
6   gSystem->Load("libANALYSIS");
7   gSystem->Load("libANALYSISalice");
8   gSystem->Load("libTRDcalib");
9   
10  
11   AliLog::SetGlobalLogLevel(AliLog::kError);
12   gROOT->LoadMacro(Form("%s/PWG0/CreateESDChain.C", gSystem->ExpandPathName("$ALICE_ROOT")));
13   TChain *chain = CreateESDChain((const char*)filename, -1);
14   chain->SetBranchStatus("*FMD*",0);
15   chain->SetBranchStatus("*Calo*",0);
16   chain->SetBranchStatus("Tracks", 1);
17   chain->SetBranchStatus("ESDfriend*",1);
18   chain->Lookup();
19   chain->GetListOfFiles()->Print();
20   printf("\n ----> CHAIN HAS %d ENTRIES <----\n\n", (Int_t)chain->GetEntries());
21     
22
23   TGrid::Connect("alien://");
24   AliCDBManager * man = AliCDBManager::Instance();
25   man->SetDefaultStorage("alien://folder=/alice/data/2009/OCDB?cacheFold=/lustre/alice/local/alice/data/2009/OCDB");
26   man->SetCacheFlag(kTRUE);
27   man->SetRun(runnr);
28
29   AliTRDcalibDB *calib = AliTRDcalibDB::Instance();
30   const AliTRDCalDet* caldet = calib->GetGainFactorDet();
31
32   AliAnalysisManager *TRDqa = new AliAnalysisManager("TRD QA/Calibration");
33   TRDqa->SetInputEventHandler(new AliESDInputHandler);
34   
35   AliTRDCalibTask *calibTask = new AliTRDCalibTask();
36   calibTask->SetHisto2d(kTRUE);
37   calibTask->SetVector2d(kTRUE);
38   calibTask->SetVdriftLinear(kTRUE);
39   calibTask->SetNz(0,0);
40   calibTask->SetNrphi(0,0);
41   calibTask->SetNz(0,1);
42   calibTask->SetNrphi(0,1);
43   calibTask->SetNz(0,2);
44   calibTask->SetNrphi(0,2);
45   calibTask->SetLow(0);
46   calibTask->SetHigh(30);
47   calibTask->SetFillZero(kFALSE);
48   calibTask->SetDebug(3);
49   calibTask->SetNbTimeBins(30);
50   //calibTask->SetMaxEvent(20);
51   calibTask->SetRequirePrimaryVertex(kTRUE);
52   calibTask->SetMinNbOfContributors(1);
53   calibTask->SetMaxCluster(100.0);
54   calibTask->SetNbMaxCluster(2);
55   calibTask->SetCalDetGain(caldet);
56
57   /////////////////////////////
58   // Track cuts
59   /////////////////////////////
60   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("trackcuts","trackcuts");
61   trackCuts->SetMinNClustersTPC(70);
62   trackCuts->SetMaxChi2PerClusterTPC(3.5);
63   //trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
64   trackCuts->SetRequireTPCRefit(kTRUE);
65   //trackCuts->SetRequireITSRefit(kTRUE);
66   //trackCuts->SetMinNsigmaToVertex(10);
67   //trackCuts->SetRequireSigmaToVertex(kFALSE);
68   trackCuts->SetAcceptKinkDaughters(kFALSE);
69   trackCuts->SetMaxDCAToVertexZ(10.0);
70   //trackCuts->SetMaxDCAToVertexXY(4.0);
71
72
73   calibTask->SetESDtrackCuts(trackCuts);
74
75   TRDqa->AddTask(calibTask);
76   
77   TRDqa->ConnectInput( calibTask, 0, TRDqa->GetCommonInputContainer());
78   TRDqa->ConnectOutput(calibTask, 0, TRDqa->CreateContainer(calibTask->GetName(), TList::Class(), AliAnalysisManager::kOutputContainer, Form("TRDcalibration%d.root", runnr)));
79
80   if(TRDqa->InitAnalysis()){
81     TRDqa->Print();
82     TRDqa->StartAnalysis("local", chain);
83   }
84   
85   delete calibTask;
86
87   Plot(runnr);
88 }
89
90 void Plot(Int_t run){
91   TFile *calibration=new TFile(Form("TRDcalibration%d.root",run));
92   TList *lister = (TList *) calibration->Get("AliTRDCalibTask");
93   TH2I *hCH2d = (TH2I*)lister->FindObject("CH2d");
94   TProfile2D *hPH2d = (TProfile2D*)lister->FindObject("PH2d"); // tracks/event
95   TProfile2D *hPRF2d = (TProfile2D*)lister->FindObject("PRF2d");
96   
97   calibration->Close();
98
99   TCanvas *tcalib = new TCanvas ("CalibrationMonitor", "CalibrationMonitor",50,50,600,900);
100   tcalib->Divide(3,1);
101   tcalib->cd(1);
102   if(hCH2d) hCH2d->Draw("lego2"); 
103   tcalib->cd(2);
104   if(hPH2d) hPH2d->Draw("lego2"); 
105   tcalib->cd(3);
106   if(hPRF2d) hPRF2d->Draw("lego2"); 
107
108   tcalib->SaveAs(Form("CalibrationMon_run%d.gif",run));
109
110 }