2 void AliTRDrunCalib(const char*filename,Int_t runnr)
6 gSystem->Load("libANALYSIS");
7 gSystem->Load("libANALYSISalice");
8 gSystem->Load("libTRDcalib");
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);
19 chain->GetListOfFiles()->Print();
20 printf("\n ----> CHAIN HAS %d ENTRIES <----\n\n", (Int_t)chain->GetEntries());
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);
29 AliTRDcalibDB *calib = AliTRDcalibDB::Instance();
30 const AliTRDCalDet* caldet = calib->GetGainFactorDet();
32 AliAnalysisManager *TRDqa = new AliAnalysisManager("TRD QA/Calibration");
33 TRDqa->SetInputEventHandler(new AliESDInputHandler);
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);
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);
57 /////////////////////////////
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);
73 calibTask->SetESDtrackCuts(trackCuts);
75 TRDqa->AddTask(calibTask);
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)));
80 if(TRDqa->InitAnalysis()){
82 TRDqa->StartAnalysis("local", chain);
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");
99 TCanvas *tcalib = new TCanvas ("CalibrationMonitor", "CalibrationMonitor",50,50,600,900);
102 if(hCH2d) hCH2d->Draw("lego2");
104 if(hPH2d) hPH2d->Draw("lego2");
106 if(hPRF2d) hPRF2d->Draw("lego2");
108 tcalib->SaveAs(Form("CalibrationMon_run%d.gif",run));