#include "AliAODJet.h"
#include "AliVVertex.h"
#include "AliAnalysisTaskJetCorePP.h"
+#include "AliHeader.h" //KF//
using std::cout;
using std::endl;
fhDphiTriggerJetAccept(0x0),
fhCentrality(0x0),
fhCentralityAccept(0x0),
+fhNofMultipleTriggers(0x0),
+fhDeltaRMultTriggers(0x0),
//fHJetPtRaw(0x0),
//fHLeadingJetPtRaw(0x0),
//fHDphiVsJetPtAll(0x0),
fhEntriesToMedianGen(0x0),
fhCellAreaToMedian(0x0),
fhCellAreaToMedianGen(0x0),
+fhNofMultipleTriggersGen(0x0),
+fhDeltaRMultTriggersGen(0x0),
fIsChargedMC(0),
fIsKine(0),
fIsFullMC(0),
fhDphiTriggerJetAccept(0x0),
fhCentrality(0x0),
fhCentralityAccept(0x0),
+fhNofMultipleTriggers(0x0),
+fhDeltaRMultTriggers(0x0),
//fHJetPtRaw(0x0),
//fHLeadingJetPtRaw(0x0),
//fHDphiVsJetPtAll(0x0),
fhEntriesToMedianGen(0x0),
fhCellAreaToMedian(0x0),
fhCellAreaToMedianGen(0x0),
+fhNofMultipleTriggersGen(0x0),
+fhDeltaRMultTriggersGen(0x0),
fIsChargedMC(0),
fIsKine(0),
fIsFullMC(0),
fhDphiTriggerJetAccept(a.fhDphiTriggerJetAccept),
fhCentrality(a.fhCentrality),
fhCentralityAccept(a.fhCentralityAccept),
+fhNofMultipleTriggers(a.fhNofMultipleTriggers),
+fhDeltaRMultTriggers(a.fhDeltaRMultTriggers),
//fHJetPtRaw(a.fHJetPtRaw),
//fHLeadingJetPtRaw(a.fHLeadingJetPtRaw),
//fHDphiVsJetPtAll(a.fHDphiVsJetPtAll),
fhEntriesToMedianGen(a.fhEntriesToMedianGen),
fhCellAreaToMedian(a.fhCellAreaToMedian),
fhCellAreaToMedianGen(a.fhCellAreaToMedianGen),
+fhNofMultipleTriggersGen(a.fhNofMultipleTriggersGen),
+fhDeltaRMultTriggersGen(a.fhDeltaRMultTriggersGen),
fIsChargedMC(a.fIsChargedMC),
fIsKine(a.fIsKine),
fIsFullMC(a.fIsFullMC),
fhEntriesToMedian = new TH1D("fhEntriesToMedian","fhEntriesToMedian",30,0,30);
fhCellAreaToMedian = new TH1D("fhCellAreaToMedian", "fhCellAreaToMedian", 75,0,1.5);
+ fhNofMultipleTriggers = new TH1D("fhNofMultipleTriggers","fhNofMultipleTriggers",100,0,100);
+ fhDeltaRMultTriggers = new TH1D("fhDeltaRMultTriggers","fhDeltaRMultTriggers", 100,0,4);
+
if(!fIsKine){
fOutputList->Add(fhJetPhi);
fOutputList->Add(fhTriggerPhi);
fOutputList->Add(fhCentralityAccept);
fOutputList->Add(fhEntriesToMedian);
fOutputList->Add(fhCellAreaToMedian);
+ fOutputList->Add(fhNofMultipleTriggers);
+ fOutputList->Add(fhDeltaRMultTriggers);
}
// raw spectra of INCLUSIVE jets
//Centrality, pTjet, A
fhCellAreaToMedianGen = (TH1D*) fhCellAreaToMedian->Clone("fhCellAreaToMedianGen");
fhCellAreaToMedianGen->SetTitle(Form("%s Gen MC", fhCellAreaToMedian->GetTitle()));
fOutputList->Add(fhCellAreaToMedianGen);
+
+ fhNofMultipleTriggersGen = (TH1D*) fhNofMultipleTriggers->Clone("fhNofMultipleTriggersGen");
+ fOutputList->Add(fhNofMultipleTriggersGen);
+
+ fhDeltaRMultTriggersGen = (TH1D*) fhDeltaRMultTriggers->Clone("fhDeltaRMultTriggersGen");
+ fOutputList->Add(fhDeltaRMultTriggersGen);
+
}
//-------------------------------------
// pythia histograms
{
//User Exec
- if(fIsKine){ //Fill Xsection and number of trials
- Float_t xsection = 0;
- Float_t trials = 0;
-
- AliMCEvent *mcEvent = MCEvent();
- AliGenPythiaEventHeader *genPH = dynamic_cast<AliGenPythiaEventHeader*>(mcEvent->GenEventHeader());
- if(genPH){
- xsection = genPH->GetXsection();
- trials = genPH->Trials();
- }
- fh1Xsec->Fill("<#sigma>",xsection);
- fh1Trials->Fill("#sum{ntrials}",trials);
- }//KF//
-
//Event loop
Double_t eventW = 1.0;
PostData(1, fOutputList);
return;
}
+
+ Float_t xsection = 0;
+ Float_t trials = 0;
+
+ AliGenPythiaEventHeader *genPH =
+ dynamic_cast<AliGenPythiaEventHeader*> (fMcEvent->GenEventHeader());
+ if(genPH){
+ xsection = genPH->GetXsection();
+ trials = genPH->Trials();
+ ptHard = genPH->GetPtHard();
+ }
+ fh1Xsec->Fill("<#sigma>",xsection);
+ fh1Trials->Fill("#sum{ntrials}",trials);
+ fh1PtHard->Fill(ptHard,eventW);
+ fh1PtHardNoW->Fill(ptHard,1);
+ fh1PtHardTrials->Fill(ptHard,trials);
}
+
fESD = dynamic_cast<AliESDEvent*>(InputEvent());
if(!fESD){
if(fDebug>1) AliError("ESD not available");
cent = fESD->GetCentrality();
if(cent) centValue = cent->GetCentralityPercentile("V0M");
}else{
- centValue = aod->GetHeader()->GetCentrality();
+ centValue = ((AliVAODHeader*)aod->GetHeader())->GetCentrality();
}
if(fDebug) printf("centrality: %f\n", centValue);
//Input events
//-----------------select disjunct event subsamples ----------------
if(!fIsKine){ //reconstructed data
- Int_t eventnum = aod->GetHeader()->GetEventNumberESDFile();
+ AliAODHeader * header = dynamic_cast<AliAODHeader*>(aod->GetHeader());
+ if(!header) AliFatal("Not a standard AOD");
+
+ Int_t eventnum = header->GetEventNumberESDFile();
Int_t lastdigit = eventnum % 10;
if(!(fEventNumberRangeLow<=lastdigit && lastdigit<=fEventNumberRangeHigh)){
fHistEvtSelection->Fill(5);
//============== analyze generator level MC ================
TList particleListGen; //list of tracks in MC
-
if(fIsChargedMC || fIsKine){
if(fIsKine){ //pure kine
if(ntriggersMC>0){ //there is at least one trigger
Int_t rnd = fRandom->Integer(ntriggersMC); //0 to ntriggers-1
indexTriggGen = triggersMC[rnd];
+
+ fhNofMultipleTriggersGen->Fill(ntriggersMC-1);
+ if(ntriggersMC>1){
+ Double_t deltaPhi, deltaEta, deltaR;
+ for(Int_t ia=0; ia<ntriggersMC-1; ia++){
+ AliVParticle* tGenI = (AliVParticle*) particleListGen.At(ia);
+ if(!tGenI) continue;
+ for(Int_t ib=ia+1; ib<ntriggersMC; ib++){
+ AliVParticle* tGenII = (AliVParticle*) particleListGen.At(ib);
+ if(!tGenII) continue;
+
+ deltaPhi = RelativePhi(tGenI->Phi(),tGenII->Phi());
+ deltaEta = tGenI->Eta()-tGenII->Eta();
+ deltaR = sqrt(deltaPhi*deltaPhi + deltaEta*deltaEta);
+ fhDeltaRMultTriggersGen->Fill(deltaR);
+ }
+ }
+ }
+
}else{
indexTriggGen = -1; //trigger not found
}
Double_t ptmax = -10;
Int_t triggers[200];
Int_t ntriggers = 0; //index in triggers array
+
for(Int_t it = 0; it < aodevt->GetNumberOfTracks(); it++){
AliAODTrack *tr = aodevt->GetTrack(it);
if(fHardest==0 && ntriggers>0){ //select random inclusive trigger
Int_t rnd = fRandom->Integer(ntriggers); //0 to ntriggers-1
index = triggers[rnd];
+
+ fhNofMultipleTriggers->Fill(ntriggers-1);
+ if(ntriggers>1){
+ Double_t deltaPhi, deltaEta, deltaR;
+ for(Int_t ia=0; ia<ntriggers-1; ia++){
+ AliVParticle* tGeni = (AliVParticle*) list->At(ia);
+ if(!tGeni) continue;
+ for(Int_t ib=ia+1; ib<ntriggers; ib++){
+ AliVParticle* tGenii = (AliVParticle*) list->At(ib);
+ if(!tGenii) continue;
+ deltaPhi = RelativePhi(tGeni->Phi(),tGenii->Phi());
+ deltaEta = tGeni->Eta()-tGenii->Eta();
+ deltaR = sqrt(deltaPhi*deltaPhi + deltaEta*deltaEta);
+ fhDeltaRMultTriggers->Fill(deltaR);
+ }
+ }
+ }
}
return index;