#include "AliHeader.h"
#include "AliLoader.h"
#include "AliStack.h"
+#include "AliMagF.h"
#include "AliESD.h"
// MUON includes
//Reset ROOT and connect tree file
gROOT->Reset();
-
// File for histograms and histogram booking
TFile *histoFile = new TFile("MUONmassPlot.root", "RECREATE");
TH1F *hPtMuon = new TH1F("hPtMuon", "Muon Pt (GeV/c)", 100, 0., 20.);
// 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;
TLorentzVector fV1, fV2, fVtot;
-
+
+ // set off mag field
+ AliMagF::SetReadField(kFALSE);
+
// open run loader and load gAlice, kinematics and header
AliRunLoader* runLoader = AliRunLoader::Open(filename);
if (!runLoader) {
return kFALSE;
}
- runLoader->LoadgAlice();
- gAlice = runLoader->GetAliRun();
if (!gAlice) {
Error("MUONmass_ESD", "no galice object found");
return kFALSE;
thetaY = muonTrack->GetThetaY();
pYZ = 1./TMath::Abs(muonTrack->GetInverseBendingMomentum());
- fPzRec1 = - pYZ / TMath::Sqrt(1.0 + TMath::Tan(thetaY)*TMath::Tan(thetaX));
+ fPzRec1 = - pYZ / TMath::Sqrt(1.0 + TMath::Tan(thetaY)*TMath::Tan(thetaY));
fPxRec1 = fPzRec1 * TMath::Tan(thetaX);
fPyRec1 = fPzRec1 * TMath::Tan(thetaY);
fCharge = Int_t(TMath::Sign(1.,muonTrack->GetInverseBendingMomentum()));
thetaY = muonTrack->GetThetaY();
pYZ = 1./TMath::Abs(muonTrack->GetInverseBendingMomentum());
- fPzRec2 = - pYZ / TMath::Sqrt(1.0 + TMath::Tan(thetaY)*TMath::Tan(thetaX));
+ fPzRec2 = - pYZ / TMath::Sqrt(1.0 + TMath::Tan(thetaY)*TMath::Tan(thetaY));
fPxRec2 = fPzRec2 * TMath::Tan(thetaX);
fPyRec2 = fPzRec2 * TMath::Tan(thetaY);
fCharge2 = Int_t(TMath::Sign(1.,muonTrack->GetInverseBendingMomentum()));
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->GetTrigger() & ptTrig) NbTrigger++;
if (invMass > massMin && invMass < massMax) {
EventInMass++;
+ if (muonTrack->GetMatchTrigger() && (esd->GetTrigger() & 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;
}