1 void hbtcorrections(Int_t first = -1,Int_t last = -1)
4 const char* basedir=".";
6 const char* field = "";
8 AliHBTReader* reader = new AliHBTReaderInternal("ESD.old.root");
10 if ( (first >= 0) && (last>=0) && ( (last-first)>=0 ) )
11 {//read from many dirs dirs
13 dirs = new TObjArray(last-first+1);
14 for (Int_t i = first; i<=last; i++)
16 sprintf(buff,"%s/%s/%s/%d",basedir,field,serie,i);
17 TObjString *odir= new TObjString(buff);
21 reader->SetDirs(dirs);
23 AliHBTParticleCut* readerpartcut= new AliHBTParticleCut();
24 readerpartcut->SetPtRange(0.0,1.0);
25 readerpartcut->SetPID(kPiPlus);
26 reader->AddParticleCut(readerpartcut);//read this particle type with this cut
28 AliHBTAnalysis* analysis = new AliHBTAnalysis();
29 analysis->SetReader(reader);
30 analysis->SetDisplayInfo(100000);
31 AliHBTPairCut *paircut = new AliHBTPairCut();
32 paircut->SetQInvRange(0.0,0.15);
33 analysis->SetGlobalPairCut(paircut);
37 AliHBTCorrectQInvCorrelFctn* correctqinvCF = new AliHBTCorrectQInvCorrelFctn();
39 analysis->AddTrackFunction(correctqinvCF);
41 TFile* outf = TFile::Open("hbtcorrected.root","recreate");
44 cout<<"\n\nERROR: can not open file"<<endl;
49 TString ietration("Iteration");
50 correctqinvCF->SetInitialValues(0.8,12.0);
51 correctqinvCF->SetRadiusConvergenceTreshold(0.005);
52 correctqinvCF->SetLambdaConvergenceTreshold(0.01);
56 dirname = ietration+iter;
57 TDirectory* dir = outf->mkdir(dirname,"results after "+dirname);
62 cout<<"\n\nERROR: can not make an directory in file named"<<dirname<<endl;
66 analysis->Process("Tracks");
68 /*****************************************/
70 correctqinvCF->WriteAll();
71 /*****************************************/
72 if (correctqinvCF->IsConverged()) break;
75 correctqinvCF->SetInitialValues(correctqinvCF->GetFittedLambda(),correctqinvCF->GetFittedRadius());