counter += 1;
}//grid result loop
- AliInfo(Form("ESD chain created......."));
- AliInfo(Form("Chain entries: %d",fChain->GetEntries()));
+ if (fChain->GetEntries() > 0) {
+ AliInfo(Form("ESD chain created......."));
+ AliInfo(Form("Chain entries: %d",fChain->GetEntries()));
+ } else {
+ AliWarning(Form("No ESD files found !"));
+ return kFALSE;
+ }
+
// Switch of branches on user request
SwitchOffBranches();
CreateTag(fChain,"grid");
Int_t fCharge;
TLorentzVector fEPvector;
- Float_t fZVertexCut = 40.0;
- Float_t fRhoVertexCut = 600.0;
-
Float_t fLowPtCut = 1.0;
Float_t fHighPtCut = 3.0;
Float_t fVeryHighPtCut = 10.0;
// Creates the tags for all the events in a given ESD file
Bool_t fIsSim = kTRUE;
Int_t ntrack;
- Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons;
+ Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons, nFWMatchedMuons;
Int_t nPos, nNeg, nNeutr;
Int_t nK0s, nNeutrons, nPi0s, nGamas;
Int_t nCh1GeV, nCh3GeV, nCh10GeV;
ntrack = 0; nPos = 0; nNeg = 0; nNeutr =0;
nK0s = 0; nNeutrons = 0; nPi0s = 0;
nGamas = 0; nProtons = 0; nKaons = 0;
- nPions = 0; nMuons = 0; nElectrons = 0; nFWMuons = 0;
+ nPions = 0; nMuons = 0; nElectrons = 0; nFWMuons = 0; nFWMatchedMuons = 0;
nCh1GeV = 0; nCh3GeV = 0; nCh10GeV = 0;
nMu1GeV = 0; nMu3GeV = 0; nMu10GeV = 0;
nEl1GeV = 0; nEl3GeV = 0; nEl10GeV = 0;
fEnergy = TMath::Sqrt(fMUONMASS * fMUONMASS + fPxRec * fPxRec + fPyRec * fPyRec + fPzRec * fPzRec);
fEPvector.SetPxPyPzE(fPxRec, fPyRec, fPzRec, fEnergy);
- // total number of muons inside a vertex cut
- if((TMath::Abs(fZ)<fZVertexCut) && (TMath::Sqrt(fY*fY+fX*fX)<fRhoVertexCut)) {
- nMuons++;
- nFWMuons++;
- if(fEPvector.Pt() > fLowPtCut) {
- nMu1GeV++;
- if(fEPvector.Pt() > fHighPtCut) {
- nMu3GeV++;
- if (fEPvector.Pt() > fVeryHighPtCut) {
- nMu10GeV++;
- }
- }
- }
+ if (muonTrack->GetMatchTrigger()>0) nFWMatchedMuons++;
+
+ nMuons++;
+ nFWMuons++;
+ if(fEPvector.Pt() > fLowPtCut) {
+ nMu1GeV++;
+ if(fEPvector.Pt() > fHighPtCut) {
+ nMu3GeV++;
+ if (fEPvector.Pt() > fVeryHighPtCut) {
+ nMu10GeV++;
+ }
+ }
}
}//muon track loop
evTag->SetTriggerMask(esd->GetTriggerMask());
evTag->SetTriggerCluster(esd->GetTriggerCluster());
+ evTag->SetEventType(esd->GetEventType());
+ evTag->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
+
evTag->SetZDCNeutron1Energy(esd->GetZDCN1Energy());
evTag->SetZDCProton1Energy(esd->GetZDCP1Energy());
evTag->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1));
evTag->SetNumOfPions(nPions);
evTag->SetNumOfMuons(nMuons);
evTag->SetNumOfFWMuons(nFWMuons);
+ evTag->SetNumOfFWMatchedMuons(nFWMatchedMuons);
evTag->SetNumOfElectrons(nElectrons);
evTag->SetNumOfPhotons(nGamas);
evTag->SetNumOfPi0s(nPi0s);
Int_t fCharge;
TLorentzVector fEPvector;
- Float_t fZVertexCut = 40.0;
- Float_t fRhoVertexCut = 600.0;
-
Float_t fLowPtCut = 1.0;
Float_t fHighPtCut = 3.0;
Float_t fVeryHighPtCut = 10.0;
// Creates the tags for all the events in a given ESD file
Bool_t fIsSim = kTRUE;
Int_t ntrack;
- Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons;
+ Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons, nFWMatchedMuons;
Int_t nPos, nNeg, nNeutr;
Int_t nK0s, nNeutrons, nPi0s, nGamas;
Int_t nCh1GeV, nCh3GeV, nCh10GeV;
nPions = 0;
nMuons = 0;
nFWMuons = 0;
+ nFWMatchedMuons = 0;
nElectrons = 0;
nCh1GeV = 0;
nCh3GeV = 0;
fEnergy = TMath::Sqrt(fMUONMASS * fMUONMASS + fPxRec * fPxRec + fPyRec * fPyRec + fPzRec * fPzRec);
fEPvector.SetPxPyPzE(fPxRec, fPyRec, fPzRec, fEnergy);
- // total number of muons inside a vertex cut
- if((TMath::Abs(fZ)<fZVertexCut) && (TMath::Sqrt(fY*fY+fX*fX)<fRhoVertexCut)) {
- nMuons++;
- nFWMuons++;
- if(fEPvector.Pt() > fLowPtCut) {
- nMu1GeV++;
- if(fEPvector.Pt() > fHighPtCut) {
- nMu3GeV++;
- if (fEPvector.Pt() > fVeryHighPtCut) {
- nMu10GeV++;
- }
- }
- }
+ if (muonTrack->GetMatchTrigger()>0) nFWMatchedMuons++;
+
+ nMuons++;
+ nFWMuons++;
+ if(fEPvector.Pt() > fLowPtCut) {
+ nMu1GeV++;
+ if(fEPvector.Pt() > fHighPtCut) {
+ nMu3GeV++;
+ if (fEPvector.Pt() > fVeryHighPtCut) {
+ nMu10GeV++;
+ }
+ }
}
}//muon track loop
evTag->SetTriggerMask(esd->GetTriggerMask());
evTag->SetTriggerCluster(esd->GetTriggerCluster());
+ evTag->SetEventType(esd->GetEventType());
+ evTag->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
+
evTag->SetZDCNeutron1Energy(esd->GetZDCN1Energy());
evTag->SetZDCProton1Energy(esd->GetZDCP1Energy());
evTag->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1));
evTag->SetNumOfPions(nPions);
evTag->SetNumOfMuons(nMuons);
evTag->SetNumOfFWMuons(nFWMuons);
+ evTag->SetNumOfFWMatchedMuons(nFWMatchedMuons);
evTag->SetNumOfElectrons(nElectrons);
evTag->SetNumOfPhotons(nGamas);
evTag->SetNumOfPi0s(nPi0s);
Int_t fCharge;
TLorentzVector fEPvector;
- Float_t fZVertexCut = 40.0;
- Float_t fRhoVertexCut = 600.0;
-
Float_t fLowPtCut = 1.0;
Float_t fHighPtCut = 3.0;
Float_t fVeryHighPtCut = 10.0;
// Creates the tags for all the events in a given ESD file
Bool_t fIsSim = kTRUE;
Int_t ntrack;
- Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons;
+ Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons, nFWMatchedMuons;
Int_t nPos, nNeg, nNeutr;
Int_t nK0s, nNeutrons, nPi0s, nGamas;
Int_t nCh1GeV, nCh3GeV, nCh10GeV;
nPions = 0;
nMuons = 0;
nFWMuons = 0;
+ nFWMatchedMuons = 0;
nElectrons = 0;
nCh1GeV = 0;
nCh3GeV = 0;
fEnergy = TMath::Sqrt(fMUONMASS * fMUONMASS + fPxRec * fPxRec + fPyRec * fPyRec + fPzRec * fPzRec);
fEPvector.SetPxPyPzE(fPxRec, fPyRec, fPzRec, fEnergy);
- // total number of muons inside a vertex cut
- if((TMath::Abs(fZ)<fZVertexCut) && (TMath::Sqrt(fY*fY+fX*fX)<fRhoVertexCut)) {
- nMuons++;
- nFWMuons++;
- if(fEPvector.Pt() > fLowPtCut) {
- nMu1GeV++;
- if(fEPvector.Pt() > fHighPtCut) {
- nMu3GeV++;
- if (fEPvector.Pt() > fVeryHighPtCut) {
- nMu10GeV++;
- }
- }
- }
+ if (muonTrack->GetMatchTrigger()>0) nFWMatchedMuons++;
+
+ nMuons++;
+ nFWMuons++;
+ if(fEPvector.Pt() > fLowPtCut) {
+ nMu1GeV++;
+ if(fEPvector.Pt() > fHighPtCut) {
+ nMu3GeV++;
+ if (fEPvector.Pt() > fVeryHighPtCut) {
+ nMu10GeV++;
+ }
+ }
}
}//muon track loop
evTag->SetTriggerMask(esd->GetTriggerMask());
evTag->SetTriggerCluster(esd->GetTriggerCluster());
+ evTag->SetEventType(esd->GetEventType());
+ evTag->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
+
evTag->SetZDCNeutron1Energy(esd->GetZDCN1Energy());
evTag->SetZDCProton1Energy(esd->GetZDCP1Energy());
evTag->SetZDCEMEnergy(esd->GetZDCEMEnergy(0),esd->GetZDCEMEnergy(1));
evTag->SetNumOfPions(nPions);
evTag->SetNumOfMuons(nMuons);
evTag->SetNumOfFWMuons(nFWMuons);
+ evTag->SetNumOfFWMatchedMuons(nFWMatchedMuons);
evTag->SetNumOfElectrons(nElectrons);
evTag->SetNumOfPhotons(nGamas);
evTag->SetNumOfPi0s(nPi0s);
detectorMask = grpData->GetDetectorMask();
time_t startTime = grpData->GetTimeStart();
- TTimeStamp *t1 = new TTimeStamp(startTime);
+ TTimeStamp t1(startTime);
time_t endTime = grpData->GetTimeEnd();
- TTimeStamp *t2 = new TTimeStamp(endTime);
+ TTimeStamp t2(endTime);
const char* beamtype = grpData->GetBeamType();
Float_t beamenergy = grpData->GetBeamEnergy();
Int_t fCharge;
TLorentzVector fEPvector;
- Float_t fZVertexCut = 40.0;
- Float_t fRhoVertexCut = 600.0;
-
Float_t fLowPtCut = 1.0;
Float_t fHighPtCut = 3.0;
Float_t fVeryHighPtCut = 10.0;
// Creates the tags for all the events in a given ESD file
Int_t ntrack;
- Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons;
+ Int_t nProtons, nKaons, nPions, nMuons, nElectrons, nFWMuons, nFWMatchedMuons;
Int_t nPos, nNeg, nNeutr;
Int_t nK0s, nNeutrons, nPi0s, nGamas;
Int_t nCh1GeV, nCh3GeV, nCh10GeV;
Int_t iInitRunNumber = esd->GetRunNumber();
Int_t iNumberOfEvents = (Int_t)b->GetEntries();
- if(fLastEvent == -1) lastEvent = (Int_t)b->GetEntries();
+ if ((fLastEvent == -1) || ((Int_t) b->GetEntries() < fLastEvent))
+ lastEvent = (Int_t)b->GetEntries();
else lastEvent = fLastEvent;
char fileName[256];
TBranch * btag = ttag->Branch("AliTAG", &tag);
btag->SetCompressionLevel(9);
- if(fLastEvent != -1) iNumberOfEvents = fLastEvent + 1;
+ if ((fLastEvent != -1) && ((Int_t) b->GetEntries() > fLastEvent))
+ iNumberOfEvents = fLastEvent + 1;
for (Int_t iEventNumber = fFirstEvent; iEventNumber < iNumberOfEvents; iEventNumber++) {
ntrack = 0;
nPos = 0;
nPions = 0;
nMuons = 0;
nFWMuons = 0;
+ nFWMatchedMuons = 0;
nElectrons = 0;
nCh1GeV = 0;
nCh3GeV = 0;
fEnergy = TMath::Sqrt(fMUONMASS * fMUONMASS + fPxRec * fPxRec + fPyRec * fPyRec + fPzRec * fPzRec);
fEPvector.SetPxPyPzE(fPxRec, fPyRec, fPzRec, fEnergy);
- // total number of muons inside a vertex cut
- if((TMath::Abs(fZ)<fZVertexCut) && (TMath::Sqrt(fY*fY+fX*fX)<fRhoVertexCut)) {
- nMuons++;
- nFWMuons++;
- if(fEPvector.Pt() > fLowPtCut) {
- nMu1GeV++;
- if(fEPvector.Pt() > fHighPtCut) {
- nMu3GeV++;
- if (fEPvector.Pt() > fVeryHighPtCut) {
- nMu10GeV++;
- }
- }
- }
+ if (muonTrack->GetMatchTrigger()>0) nFWMatchedMuons++;
+
+ nMuons++;
+ nFWMuons++;
+ if(fEPvector.Pt() > fLowPtCut) {
+ nMu1GeV++;
+ if(fEPvector.Pt() > fHighPtCut) {
+ nMu3GeV++;
+ if (fEPvector.Pt() > fVeryHighPtCut) {
+ nMu10GeV++;
+ }
+ }
}
}//muon track loop
evTag->SetTriggerMask(esd->GetTriggerMask());
evTag->SetTriggerCluster(esd->GetTriggerCluster());
+ evTag->SetEventType(esd->GetEventType());
+ evTag->SetFiredTriggerClasses(esd->GetFiredTriggerClasses());
+
evTag->SetZDCNeutron1Energy(esd->GetZDCN1Energy());
evTag->SetZDCProton1Energy(esd->GetZDCP1Energy());
evTag->SetZDCNeutron2Energy(esd->GetZDCN2Energy());
evTag->SetNumOfPions(nPions);
evTag->SetNumOfMuons(nMuons);
evTag->SetNumOfFWMuons(nFWMuons);
+ evTag->SetNumOfFWMatchedMuons(nFWMatchedMuons);
evTag->SetNumOfElectrons(nElectrons);
evTag->SetNumOfPhotons(nGamas);
evTag->SetNumOfPi0s(nPi0s);
tag->SetDetectorTag(detectorMask);
tag->SetRunId(iInitRunNumber);
- tag->SetRunStartTime(t1->GetDate());
- tag->SetRunStopTime(t2->GetDate());
+ tag->SetRunStartTime(t1.GetDate());
+ tag->SetRunStopTime(t2.GetDate());
tag->SetBeamEnergy(beamenergy);
tag->SetBeamType(beamtype);
ftag->Close();
file->cd();
delete file;
+ delete ftag;
delete esd;
delete tag;
delete evTag;