#include "AliAODJet.h"
#include "AliAODTrack.h"
#include "AliAODMCParticle.h"
+#include "AliKFVertex.h"
#include "AliGenPythiaEventHeader.h"
#include "AliAnalysisHelperJetTasks.h"
//____________________________________________________________________
AliAnalysisTaskUE:: AliAnalysisTaskUE(const char* name):
AliAnalysisTask(name, ""),
-fDebug(kFALSE),
+fTrigger(0),
+fDebug(0),
fDeltaAOD(kFALSE),
fDeltaAODBranch(""),
- fArrayJets(0x0),
+fArrayJets(0x0),
fAOD(0x0),
fAODjets(0x0),
-//fArrayJets(0x0),
-//fDeltaAOD(kFALSE),
-//fDeltaAODBranch("jetsAOD"),
fListOfHistos(0x0),
fBinsPtInHist(30),
fMinJetPtInHist(0.),
fh1Xsec->Fill("<#sigma>",xsection);
// construct average trials
Float_t nEntries = (Float_t)tree->GetTree()->GetEntries();
- if(ftrials>=nEntries)fAvgTrials = ftrials/nEntries;
+ if(ftrials>=nEntries && nEntries>0.)fAvgTrials = ftrials/nEntries;
}
return kTRUE;
//
// Histograms
- OpenFile(0);
+ // OpenFile(0);
CreateHistos();
// fListOfHistos->SetOwner(kTRUE);
//____________________________________________________________________
void AliAnalysisTaskUE::Exec(Option_t */*option*/)
{
+ //Trigger selection ************************************************
+ AliAnalysisHelperJetTasks::Trigger trig;
+ trig = (const enum AliAnalysisHelperJetTasks::Trigger)fTrigger;
+ if (AliAnalysisHelperJetTasks::IsTriggerFired(fAOD,trig)){
+ if (fDebug > 1) AliInfo(" Trigger Selection: event ACCEPTED ... ");
+ }else{
+ if (fDebug > 1) AliInfo(" Trigger Selection: event REJECTED ... ");
+ return;
+ }
+ //Event selection (vertex) *****************************************
+ AliKFVertex primVtx(*(fAOD->GetPrimaryVertex()));
+ Int_t nTracksPrim=primVtx.GetNContributors();
+ if (fDebug > 1) AliInfo(Form(" Primary-vertex Selection: %d",nTracksPrim));
+ if(!nTracksPrim){
+ if (fDebug > 1) AliInfo(" Primary-vertex Selection: event REJECTED ...");
+ return;
+ }
+ if (fDebug > 1) AliInfo(" Primary-vertex Selection: event ACCEPTED ...");
+
+
// Execute analysis for current event
//
if ( fDebug > 3 ) AliInfo( " Processing event..." );
}else{
jet = fAODjets->GetJet(index1);
}
- jetVect[0].SetXYZ(jet->Px(), jet->Py(), jet->Pz());
+ if(jet)jetVect[0].SetXYZ(jet->Px(), jet->Py(), jet->Pz());
}
if( index2 != -1 ) {
AliAODJet* jet = 0;
}else{
jet= fAODjets->GetJet(index2);
}
- jetVect[1].SetXYZ(jet->Px(), jet->Py(), jet->Pz());
+ if(jet)jetVect[1].SetXYZ(jet->Px(), jet->Py(), jet->Pz());
}
if( index3 != -1 ) {
AliAODJet* jet = 0;
if (fDeltaAOD) {
jet= (AliAODJet*) fArrayJets->At(index3);
- }else{
+ }else{
fAODjets->GetJet(index3);
- }
- jetVect[2].SetXYZ(jet->Px(), jet->Py(), jet->Pz());
+ }
+ if(jet)jetVect[2].SetXYZ(jet->Px(), jet->Py(), jet->Pz());
}
} else {
fListOfHistos->Add( fh1Trials ); //At(22)
fSettingsTree = new TTree("UEAnalysisSettings","Analysis Settings in UE estimation");
+ fSettingsTree->Branch("fTrigger", &fTrigger,"TriggerFlag/I");
fSettingsTree->Branch("fConeRadius", &fConeRadius,"Rad/D");
fSettingsTree->Branch("fJet1EtaCut", &fJet1EtaCut, "LeadJetEtaCut/D");
fSettingsTree->Branch("fJet2DeltaPhiCut", &fJet2DeltaPhiCut, "DeltaPhi/D");
Double_t xsec = fh1Xsec->GetBinContent(1);
Double_t ntrials = fh1Trials->GetBinContent(1);
Double_t normFactor = xsec/ntrials;
- Printf("xSec %f nTrials %f Norm %f \n",xsec,ntrials,normFactor);
+ if(fDebug > 1)Printf("xSec %f nTrials %f Norm %f \n",xsec,ntrials,normFactor);
TCanvas* c2 = new TCanvas("c2","Jet Pt dist",160,160,1200,800);