1 void FitSpectrum(const char* filename, const char * listName = "clambdak0Histo_00", const char* suffix = "test",Int_t ihist = 0, Int_t iparticle) {
3 // load basic libs, needed to
4 //gROOT->LoadMacro("run.C");
5 gROOT->LoadMacro("runQA.C");
9 gROOT->LoadMacro("AliMassFitControl.h+g");
10 gROOT->LoadMacro("PtMassAna2.C");
11 gROOT->LoadMacro("MultYields2QA.C");
18 histName = "h2PtVsMassK0";
21 histName = "h2DcaPosToPrimVertexK0vsMassK0";
24 histName = "h2DcaNegToPrimVertexK0vsMassK0";
27 histName = "h2RadiusV0K0vsMassK0";
30 histName = "h2DecayLengthV0K0vsMassK0";
33 histName = "h2DcaV0DaughtersK0vsMassK0";
36 histName = "h2CosPointAngleK0vsMassK0";
39 cout << "FitSpectrum - unrecognised histogram, default is standard pt" << endl;
40 histName = "h2PtVsMassK0";
46 histName = "h2PtVsMassLambda";
49 histName = "h2DcaPosToPrimVertexLvsMassL";
52 histName = "h2DcaNegToPrimVertexLvsMassL";
55 histName = "h2RadiusV0LvsMassL";
58 histName = "h2DecayLengthV0LvsMassL";
61 histName = "h2DcaV0DaughtersLvsMassL";
64 histName = "h2CosPointAngleLvsMassL";
67 cout << "FitSpectrum - unrecognised histogram, default is standard pt" << endl;
68 histName = "h2PtVsMassLambda";
72 histName = "h2PtVsMassAntiLambda";
75 // This is special case because we have to find two histograms and add them.
76 // It is dealt with separately below but we still set histname because it is appended
77 // to file names for control plots
78 histName = "h2PtVsMassLLbarSummed";
81 cout << "Particle "<< iparticle << " yet to be implemented" << endl;
84 cout << "FitSpectrum - histogram " << histName << " used" << endl;
87 TFile *file = new TFile(filename);
88 TList *list = file->Get(listName);
90 if (iparticle == 3) { // Special case of combined Lambda + anti-Lambda
91 TH2F* hLam = (TH2F*)list->FindObject("h2PtVsMassLambda");
92 h2= (TH2F*)list->FindObject("h2PtVsMassAntiLambda");
95 h2 = (TH2F*) list->FindObject(histName);
100 ///// iNorm is used by MultYields2QA to normalize the distributions
101 TH1F * h1 = (TH1F*) list->FindObject("h1PrimaryVertexZ");
102 Int_t iNorm = h1->GetEntries();
103 cout << "number of entries with Zvertex < |10cm|: " << iNorm;
105 TString suffixFull = histName;
106 if(strlen(suffix)) suffixFull = suffixFull + "_" + suffix;
107 //MultYields3((TH3F*)h2,iparticle,0,suffixFull); // FIXME: modify MultYields2 to handle 1D histos
108 MultYields2QA(h2,iparticle,ihist,iNorm,0,suffixFull); // FIXME: modify MultYields2 to handle 1D histos