TH1F *hChi2PerDof = new TH1F("hChi2PerDof", "Muon track chi2/d.o.f.", 100, 0., 20.);
TH1F *hInvMassAll = new TH1F("hInvMassAll", "Mu+Mu- invariant mass (GeV/c2)", 480, 0., 12.);
TH1F *hInvMassBg = new TH1F("hInvMassBg", "Mu+Mu- invariant mass BG(GeV/c2)", 480, 0., 12.);
-TH2F *hInvMassAll_vs_Pt = new TH2F("hInvMassAll_vs_Pt","hInvMassAll_vs_Pt",480,0.,12.,80,0.,20.);
-TH2F *hInvMassBgk_vs_Pt = new TH2F("hInvMassBgk_vs_Pt","hInvMassBgk_vs_Pt",480,0.,12.,80,0.,20.);
-TH1F *hInvMassRes;
+ TH2F *hInvMassAll_vs_Pt = new TH2F("hInvMassAll_vs_Pt","hInvMassAll_vs_Pt",480,0.,12.,80,0.,20.);
+ TH2F *hInvMassBgk_vs_Pt = new TH2F("hInvMassBgk_vs_Pt","hInvMassBgk_vs_Pt",480,0.,12.,80,0.,20.);
+ TH1F *hInvMassRes;
+ TH1F *hPrimaryVertex = new TH1F("hPrimaryVertex","SPD reconstructed Z vertex",120,-12,12);
if (ResType == 553) {
hInvMassRes = new TH1F("hInvMassRes", "Mu+Mu- invariant mass (GeV/c2) around Upsilon", 60, 8., 11.);
// settings
Int_t EventInMass = 0;
+ Int_t EventInMassMatch = 0;
+ Int_t NbTrigger = 0;
+
Float_t muonMass = 0.105658389;
// Float_t UpsilonMass = 9.46037;
// Float_t JPsiMass = 3.097;
Int_t ntrackhits, nevents;
Double_t fitfmin;
+ Double_t fZVertex;
TLorentzVector fV1, fV2, fVtot;
return kFALSE;
}
tree->SetBranchAddress("ESD", &esd);
+
+
+ AliESDVertex* Vertex = (AliESDVertex*) esd->AliESD::GetVertex();
runLoader->LoadHeader();
nevents = runLoader->GetNumberOfEvents();
return kFALSE;
}
+ // get the SPD reconstructed vertex (vertexer) and fill the histogram
+ fZVertex = Vertex->GetZv();
+ hPrimaryVertex->Fill(fZVertex);
+
Int_t nTracks = (Int_t)esd->GetNumberOfMuonTracks() ;
// printf("\n Nb of events analysed: %d\r",iEvent);
hInvMassAll->Fill(invMass);
hInvMassRes->Fill(invMass);
hInvMassAll_vs_Pt->Fill(invMass,fVtot.Pt());
+ Int_t ptTrig;
+ if (ResType == 553)
+ ptTrig = 0x400;// mask for Hpt unlike sign pair
+ else
+ ptTrig = 0x200;// mask for Lpt unlike sign pair
+
+ if (esd->GetTriggerMask() & ptTrig) NbTrigger++;
if (invMass > massMin && invMass < massMax) {
EventInMass++;
+ if (muonTrack->GetMatchTrigger() && (esd->GetTriggerMask() & ptTrig))// match with trigger
+ EventInMassMatch++;
+
hRapResonance->Fill(fVtot.Rapidity());
hPtResonance->Fill(fVtot.Pt());
}
histoFile->Write();
histoFile->Close();
- cout << "MUONmassPlot " << endl;
- cout << "FirstEvent " << FirstEvent << endl;
- cout << "LastEvent " << LastEvent << endl;
- cout << "ResType " << ResType << endl;
- cout << "Chi2Cut " << Chi2Cut << endl;
- cout << "PtCutMin " << PtCutMin << endl;
- cout << "PtCutMax " << PtCutMax << endl;
- cout << "massMin " << massMin << endl;
- cout << "massMax " << massMax << endl;
+ cout << endl;
cout << "EventInMass " << EventInMass << endl;
+ cout << "NbTrigger " << NbTrigger << endl;
+ cout << "EventInMass match with trigger " << EventInMassMatch << endl;
return kTRUE;
}