#include "AliAnalysisTaskJetCore.h"
+using std::cout;
+using std::endl;
+
ClassImp(AliAnalysisTaskJetCore)
AliAnalysisTaskJetCore::AliAnalysisTaskJetCore() :
fAngStructCloseTracks(0),
fCheckMethods(0),
fDoEventMixing(0),
+fFlagPhiBkg(0),
+fFlagEtaBkg(0),
+fFlagJetHadron(0),
+fFlagRandom(0),
+fRPAngle(0),
+fNRPBins(3),
fJetEtaMin(-.5),
fJetEtaMax(.5),
-fNevents(0x0),
-fTindex(0x0),
-fTrigBufferIndex(0x0),
+fNevents(0),
+fTindex(0),
+fTrigBufferIndex(0),
+fCountAgain(0),
fJetPtMin(20.),
fJetTriggerExcludeMask(AliAODJet::kHighTrackPtTriggered),
fJetPtFractionMin(0.5),
fh2JetCoreMethod2C30(0x0),
fh2JetCoreMethod1C60(0x0),
fh2JetCoreMethod2C60(0x0),
+fh3JetTrackC3060(0x0),
+fh3JetTrackC20(0x0),
+fh3JetTrackC4080(0x0),
fh2AngStructpt1C10(0x0),
fh2AngStructpt2C10(0x0),
fh2AngStructpt3C10(0x0),
fh2AngStructpt2C60(0x0),
fh2AngStructpt3C60(0x0),
fh2AngStructpt4C60(0x0),
-fh2JetsumHT3R2(0x0),
-fh2JetsumHT3R2gap(0x0),
-fh2JetsumHT3R4(0x0),
-fh2JetsumHT3R4gap(0x0),
-fh2JetsumHT3R6(0x0),
-fh2JetsumHT3R6gap(0x0),
-fh2JetsumHT3R8(0x0),
-fh2JetsumHT3R8gap(0x0),
-fh2JetsumHT3R10(0x0),
-fh2JetsumHT3R10gap(0x0),
-fh3spectriggered(0x0),
-fh3specbiased(0x0),
-fh3spectot(0x0),
-fh3spectotb(0x0)
+fh2Ntriggers(0x0),
+fh2Ntriggers2(0x0),
+fh2JetDensity(0x0),
+fh2JetDensityA4(0x0),
+fh2RPJets(0x0),
+fh3spectriggeredC4080(0x0),
+fh3spectriggeredC20(0x0),
+fh3spectriggeredC3060(0x0)
+
{
// default Constructor
// Trigger buffer.
for(Int_t i=0; i<10; i++) {
- for(Int_t j=0; j<7; j++) {
+ for(Int_t j=0; j<6; j++) {
fTrigBuffer[i][j]=0;
}
}
fAngStructCloseTracks(0),
fCheckMethods(0),
fDoEventMixing(0),
+fFlagPhiBkg(0),
+fFlagEtaBkg(0),
+fFlagJetHadron(0),
+fFlagRandom(0),
+fRPAngle(0),
+fNRPBins(3),
fJetEtaMin(-.5),
fJetEtaMax(.5),
-fNevents(0x0),
-fTindex(0x0),
-fTrigBufferIndex(0x0),
+fNevents(0),
+fTindex(0),
+fTrigBufferIndex(0),
+fCountAgain(0),
fJetPtMin(20.),
fJetTriggerExcludeMask(AliAODJet::kHighTrackPtTriggered),
fJetPtFractionMin(0.5),
fh2JetCoreMethod2C30(0x0),
fh2JetCoreMethod1C60(0x0),
fh2JetCoreMethod2C60(0x0),
+fh3JetTrackC3060(0x0),
+fh3JetTrackC20(0x0),
+fh3JetTrackC4080(0x0),
fh2AngStructpt1C10(0x0),
fh2AngStructpt2C10(0x0),
fh2AngStructpt3C10(0x0),
fh2AngStructpt2C60(0x0),
fh2AngStructpt3C60(0x0),
fh2AngStructpt4C60(0x0),
-fh2JetsumHT3R2(0x0),
-fh2JetsumHT3R2gap(0x0),
-fh2JetsumHT3R4(0x0),
-fh2JetsumHT3R4gap(0x0),
-fh2JetsumHT3R6(0x0),
-fh2JetsumHT3R6gap(0x0),
-fh2JetsumHT3R8(0x0),
-fh2JetsumHT3R8gap(0x0),
-fh2JetsumHT3R10(0x0),
-fh2JetsumHT3R10gap(0x0),
-fh3spectriggered(0x0),
-fh3specbiased(0x0),
-fh3spectot(0x0),
-fh3spectotb(0x0)
+fh2Ntriggers(0x0),
+fh2Ntriggers2(0x0),
+fh2JetDensity(0x0),
+fh2JetDensityA4(0x0),
+fh2RPJets(0x0),
+fh3spectriggeredC4080(0x0),
+fh3spectriggeredC20(0x0),
+fh3spectriggeredC3060(0x0)
+
{
// Constructor
for(Int_t i=0; i<10; i++) {
- for(Int_t j=0; j<7; j++) {
+ for(Int_t j=0; j<6; j++) {
fTrigBuffer[i][j]=0;
}
}
Double_t *xPt3 = new Double_t[10];
xPt3[0] = 0.;
for(int i = 1; i<=9;i++){
- if(xPt3[i-1]<1)xPt3[i] = xPt3[i-1] + 0.2; // 1 - 5
- else if(xPt3[i-1]<10)xPt3[i] = xPt3[i-1] + 3; // 5 - 12
+ if(xPt3[i-1]<2)xPt3[i] = xPt3[i-1] + 0.4; // 1 - 5
+ else if(xPt3[i-1]<11)xPt3[i] = xPt3[i-1] + 3; // 5 - 12
else xPt3[i] = xPt3[i-1] + 150.; // 18
}
fhnDeltaR->SetBinEdges(2,xPt3);
if(fDoEventMixing){
UInt_t cifras = 0; // bit coded, see GetDimParams() below
- cifras = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<6 |1<<7;
+ cifras = 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<5 | 1<<7;
fhnMixedEvents = NewTHnSparseF("fhnMixedEvents", cifras);}
if(fCheckMethods){
-
fh2JetCoreMethod1C10 = new TH2F("JetCoreMethod1C10","",150, 0., 150.,100, 0., 1.5);
fh2JetCoreMethod2C10 = new TH2F("JetCoreMethod2C10","",150, 0., 150.,100, 0., 1.5);
fh2JetCoreMethod1C20 = new TH2F("JetCoreMethod1C20","",150, 0., 150.,100, 0., 1.5);
fh2JetCoreMethod1C60 = new TH2F("JetCoreMethod1C60","",150, 0., 150.,100, 0., 1.5);
fh2JetCoreMethod2C60 = new TH2F("JetCoreMethod2C60","",150, 0., 150.,100, 0., 1.5);}
-
+ fh3JetTrackC3060=new TH3F("JetTrackC3060","",50,0,50,150,0.,150.,34,0,3.4);
+ fh3JetTrackC20=new TH3F("JetTrackC20","",50,0,50,150,0.,150.,34,0,3.4);
+ fh3JetTrackC4080=new TH3F("JetTrackC4080","",50,0,50,150,0.,150.,34,0,3.4);
if(fAngStructCloseTracks>0){
fh2AngStructpt1C10 = new TH2F("Ang struct pt1 C10","",15,0.,1.5,150,0.,10.);
fh2AngStructpt2C10 = new TH2F("Ang struct pt2 C10","",15,0.,1.5,150,0.,10.);
fh2AngStructpt3C60 = new TH2F("Ang struct pt3 C60","",15,0.,1.5,150,0.,10.);
fh2AngStructpt4C60 = new TH2F("Ang struct pt4 C60","",15,0.,1.5,150,0.,10.); }
- fh2JetsumHT3R2 = new TH2F("Pt sum R02 HT3","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R2gap = new TH2F("Pt sum R02 HT3 gap","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R4 = new TH2F("Pt sum R04 HT3","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R4gap = new TH2F("Pt sum R04 HT3 gap","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R6 = new TH2F("Pt sum R06 HT3","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R6gap = new TH2F("Pt sum R06 HT3 gap","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R8 = new TH2F("Pt sum R08 HT3","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R8gap = new TH2F("Pt sum R08 HT3 gap","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R10 = new TH2F("Pt sum R10 HT3","",20,0.,200.,100,0.,10.);
- fh2JetsumHT3R10gap = new TH2F("Pt sum R10 HT3 gap","",20,0.,200.,100,0.,10.);
- fh3spectriggered = new TH3F("Triggered spectrum","",10,0,100,50,0.,200,50,0.,50.);
- fh3specbiased = new TH3F("Biased spectrum","",10,0,100,50,0.,200.,50,0.,50.);
- fh3spectot = new TH3F("Total spectrum 0-10","",50,0.,200.,50,0.,50.,50,0.,50.);
- fh3spectotb = new TH3F("Total spectrum 0-20","",50,0.,200.,50,0.,50.,50,0.,50.);
+
+
+ fh2Ntriggers=new TH2F("# of triggers","",10,0.,100.,50,0.,50.);
+ fh2Ntriggers2=new TH2F("# of triggers2","",100,0.,4000.,50,0.,50.);
+
+ fh2JetDensity=new TH2F("Jet density vs centrality A>0.4","",100,0.,4000.,100,0.,5.);
+ fh2JetDensityA4=new TH2F("Jet density vs multiplicity A>0.4","",100,0.,4000.,100,0.,5.);
+ fh2RPJets=new TH2F("RPJet","",3,0.,3.,150,0.,150.);
+ fh3spectriggeredC4080 = new TH3F("Triggered spectrumC4080","",5,0.,1.,140,-80.,200.,50,0.,50.);
+ fh3spectriggeredC20 = new TH3F("Triggered spectrumC20","",5,0.,1.,140,-80.,200.,50,0.,50.);
+ fh3spectriggeredC3060 = new TH3F("Triggered spectrumC3060","",5,0.,1.,140,-80.,200.,50,0.,50.);
+
+
+
fOutputList->Add(fHistEvtSelection);
fOutputList->Add(fhnDeltaR);
fOutputList->Add(fh2JetCoreMethod1C60);
fOutputList->Add(fh2JetCoreMethod2C60);}
-
+ fOutputList->Add(fh3JetTrackC3060);
+ fOutputList->Add(fh3JetTrackC20);
+ fOutputList->Add(fh3JetTrackC4080);
+
fOutputList->Add(fh2AngStructpt4C60);}
- fOutputList->Add(fh2JetsumHT3R2);
- fOutputList->Add(fh2JetsumHT3R2gap);
-
-
- fOutputList->Add(fh2JetsumHT3R4);
- fOutputList->Add(fh2JetsumHT3R4gap);
-
- fOutputList->Add(fh2JetsumHT3R6);
- fOutputList->Add(fh2JetsumHT3R6gap);
-
-
- fOutputList->Add(fh2JetsumHT3R8);
- fOutputList->Add(fh2JetsumHT3R8gap);
-
-
- fOutputList->Add(fh2JetsumHT3R10);
- fOutputList->Add(fh2JetsumHT3R10gap);
+
+ fOutputList->Add(fh2Ntriggers);
+ fOutputList->Add(fh2Ntriggers2);
+ fOutputList->Add(fh2JetDensity);
+ fOutputList->Add(fh2JetDensityA4);
+ fOutputList->Add(fh2RPJets);
+ fOutputList->Add(fh3spectriggeredC4080);
+ fOutputList->Add(fh3spectriggeredC20);
+ fOutputList->Add(fh3spectriggeredC3060);
- fOutputList->Add(fh3spectriggered);
- fOutputList->Add(fh3specbiased);
- fOutputList->Add(fh3spectot);
- fOutputList->Add(fh3spectotb);
+
// =========== Switch on Sumw2 for all histos ===========
for (Int_t i=0; i<fOutputList->GetEntries(); ++i) {
TH1 *h1 = dynamic_cast<TH1*>(fOutputList->At(i));
// centrality selection
AliCentrality *cent = 0x0;
Double_t centValue = 0.;
+ if(fIsPbPb){
if(fESD) {cent = fESD->GetCentrality();
if(cent) centValue = cent->GetCentralityPercentile("V0M");}
else centValue=aod->GetHeader()->GetCentrality();
if(fDebug) printf("centrality: %f\n", centValue);
- if (centValue < fCentMin || centValue > fCentMax){
+ if (centValue < fCentMin || centValue > fCentMax){
fHistEvtSelection->Fill(4);
PostData(1, fOutputList);
return;
- }
+ }}
fHistEvtSelection->Fill(0);
}
Float_t rho = 0;
- if(externalBackground)rho = externalBackground->GetBackground(0);
+ if(fFlagRandom==0){
+ if(externalBackground)rho = externalBackground->GetBackground(0);}
+ if(fFlagRandom==1){
+ if(externalBackground)rho = externalBackground->GetBackground(2);}
// fetch jets
TClonesArray *aodJets[2];
Double_t etasmall=0;
Double_t ptsmall=0;
Double_t areasmall=0;
- //Double_t distr=0.;
Double_t phismall=0.;
- // Double_t up1[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
- // Double_t up2[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
- // Double_t up3[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
- // Double_t up4[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
- // Double_t down1[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
- // Double_t down2[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
- // Double_t down3[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
- // Double_t down4[15]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
+
Int_t iCount=0;
Int_t trigJet=-1;
Int_t trigBBTrack=-1;
Int_t trigInTrack=-1;
-
+ fRPAngle = aod->GetHeader()->GetEventplane();
+
+
+ AliVParticle *partback = (AliVParticle*)ParticleList.At(nT);
+ if(!partback){
+ PostData(1, fOutputList);
+ return;}
+ fh2Ntriggers->Fill(centValue,partback->Pt());
+ fh2Ntriggers2->Fill(ParticleList.GetEntries(),partback->Pt());
+
+ Double_t accep=2.*TMath::Pi()*1.8;
+ Int_t injet4=0;
+ Int_t injet=0;
for(Int_t i=0; i<fListJets[0]->GetEntries(); ++i){
AliAODJet* jetbig = (AliAODJet*)(fListJets[0]->At(i));
etabig = jetbig->Eta();
phibig = jetbig->Phi();
ptbig = jetbig->Pt();
if(ptbig==0) continue;
+ Int_t phiBin = GetPhiBin(phibig-fRPAngle);
areabig = jetbig->EffectiveAreaCharged();
Double_t ptcorr=ptbig-rho*areabig;
- if(ptcorr<=0) continue;
if((etabig<fJetEtaMin)||(etabig>fJetEtaMax)) continue;
+ if(areabig>=0.2) injet=injet+1;
+ if(areabig>=0.4) injet4=injet4+1;
+ Double_t dphi=RelativePhi(partback->Phi(),phibig);
+
+ if(fFlagEtaBkg!=0){
+ Double_t etadif= partback->Eta()-etabig;
+ if(TMath::Abs(etadif)<=0.5){
+ if(centValue>40. && centValue<80.) fh3JetTrackC4080->Fill(partback->Pt(),ptcorr,TMath::Abs(dphi));
+ if(centValue<20.) fh3JetTrackC20->Fill(partback->Pt(),ptcorr,TMath::Abs(dphi));
+ if(centValue>30. && centValue<60.) fh3JetTrackC3060->Fill(partback->Pt(),ptcorr,TMath::Abs(dphi));}}
+ if(fFlagEtaBkg==0){
+ if(centValue>40. && centValue<80.) fh3JetTrackC4080->Fill(partback->Pt(),ptcorr,TMath::Abs(dphi));
+ if(centValue<20.) fh3JetTrackC20->Fill(partback->Pt(),ptcorr,TMath::Abs(dphi));
+ if(centValue>30. && centValue<60.) fh3JetTrackC3060->Fill(partback->Pt(),ptcorr,TMath::Abs(dphi));}
+
+
+
+ if(fFlagJetHadron==0){
+ if(fFlagPhiBkg!=0) if((TMath::Abs(dphi)<TMath::Pi()/2.-0.1)||(TMath::Abs(dphi)>TMath::Pi()/2.+0.1)) continue;
+ if(fFlagPhiBkg==0) if(TMath::Abs(dphi)<TMath::Pi()-0.6) continue;}
+
+ if(fFlagJetHadron!=0) if(TMath::Abs(dphi)>0.4) continue;
+
+
+ if(centValue<20.) fh2RPJets->Fill(phiBin, ptcorr);
Double_t dismin=100.;
Double_t ptmax=-10.;
Int_t index1=-1;
Int_t index2=-1;
-
- Int_t point=GetHardestTrackBackToJet(jetbig);
- AliVParticle *partback = (AliVParticle*)ParticleList.At(point);
- if(!partback) continue;
- fh3spectriggered->Fill(centValue,ptcorr,partback->Pt());
- //if(partback->Pt()<6.) continue;
- AliAODTrack* leadtrack;
+ if(centValue>40. && centValue<80.) fh3spectriggeredC4080->Fill(jetbig->EffectiveAreaCharged(),ptcorr,partback->Pt());
+ if(centValue<20.) fh3spectriggeredC20->Fill(jetbig->EffectiveAreaCharged(),ptcorr,partback->Pt());
+ if(centValue>30. && centValue<60.) fh3spectriggeredC3060->Fill(jetbig->EffectiveAreaCharged(),ptcorr,partback->Pt());
+
+ if(ptcorr<=0) continue;
+
+
+ AliAODTrack* leadtrack=0;
Int_t ippt=0;
- Double_t ppt=-10;
+ Double_t ppt=-10;
+ if(fFlagJetHadron==0){
TRefArray *genTrackList = jetbig->GetRefTracks();
Int_t nTracksGenJet = genTrackList->GetEntriesFast();
AliAODTrack* genTrack;
genTrack = (AliAODTrack*)(genTrackList->At(ir));
if(genTrack->Pt()>ppt){ppt=genTrack->Pt();
ippt=ir;}}
- leadtrack=(AliAODTrack*)(genTrackList->At(ippt));
- if(!leadtrack) continue;
- fh3specbiased->Fill(centValue,ptcorr,leadtrack->Pt());
- if(centValue<10)fh3spectot->Fill(ptcorr,leadtrack->Pt(),partback->Pt());
- if(centValue<20)fh3spectotb->Fill(ptcorr,leadtrack->Pt(),partback->Pt());
+ leadtrack=(AliAODTrack*)(genTrackList->At(ippt));
+ if(!leadtrack) continue;}
+
+ AliVParticle* leadtrackb=0;
+ if(fFlagJetHadron!=0){
+ Int_t nTb = GetHardestTrackBackToJet(jetbig);
+ leadtrackb = (AliVParticle*)ParticleList.At(nTb);
+ if(!leadtrackb) continue;
+ }
+
+
+
+
+
//store one trigger info
- if((partback->Pt()>10.)&&(iCount==0)){
+ if(iCount==0){
trigJet=i;
- trigBBTrack=point;
+ trigBBTrack=nT;
trigInTrack=ippt;
iCount=iCount+1;}
-
+
if(fCheckMethods){
for(Int_t j=0; j<fListJets[1]->GetEntries(); ++j){
AliAODJet* jetsmall = (AliAODJet*)(fListJets[1]->At(j));
if((centValue>20)&&(centValue<40)) fh2JetCoreMethod2C20->Fill(ptcorr,jetmethod2->Pt()/ptbig);
if((centValue>30)&&(centValue<60)) fh2JetCoreMethod2C30->Fill(ptcorr,jetmethod2->Pt()/ptbig);
if(centValue>60) fh2JetCoreMethod2C60->Fill(ptcorr,jetmethod2->Pt()/ptbig); }}
- Double_t sumpt2a=0.;
- Double_t sumpt2b=0.;
-
- Double_t sumpt4a=0.;
- Double_t sumpt4b=0.;
-
- Double_t sumpt6a=0.;
- Double_t sumpt6b=0.;
-
- Double_t sumpt8a=0.;
- Double_t sumpt8b=0.;
+
- Double_t sumpt10a=0.;
- Double_t sumpt10b=0.;
-
-
- for(int it = 0;it<nT;++it){
+ if(fDoEventMixing==0){
+ for(int it = 0;it<ParticleList.GetEntries();++it){
AliVParticle *part = (AliVParticle*)ParticleList.At(it);
Double_t deltaR = jetbig->DeltaR(part);
- Double_t deltaEta = etabig-part->Eta();
- if(partback->Pt()>10.){
- if(centValue<10){
+ Double_t deltaEta = etabig-part->Eta();
- if(deltaR<0.2){if(leadtrack->Pt()>3.){ sumpt2a=sumpt2a+part->Pt();
- if(TMath::Abs(deltaEta)>0.8) sumpt2b=sumpt2b+part->Pt();}}
- if(deltaR>=0.2 && deltaR<0.4){if(leadtrack->Pt()>3.){ sumpt4a=sumpt4a+part->Pt();
- if(TMath::Abs(deltaEta)>0.8) sumpt4b=sumpt4b+part->Pt();}}
- if(deltaR>=0.4 && deltaR<0.6){if(leadtrack->Pt()>3.){ sumpt6a=sumpt6a+part->Pt();
- if(TMath::Abs(deltaEta)>0.8) sumpt6b=sumpt6b+part->Pt();}}
- if(deltaR>=0.6 && deltaR<0.8){if(leadtrack->Pt()>3.){ sumpt8a=sumpt8a+part->Pt();
- if(TMath::Abs(deltaEta)>0.8) sumpt8b=sumpt8b+part->Pt();}}
- if(deltaR>=0.8 && deltaR<1.2){if(leadtrack->Pt()>3.){ sumpt10a=sumpt10a+part->Pt();
- if(TMath::Abs(deltaEta)>0.8) sumpt10b=sumpt10b+part->Pt();}}}}
-
-
+
Double_t deltaPhi=phibig-part->Phi();
if(deltaPhi<-0.5*TMath::Pi()) deltaPhi+=2.*TMath::Pi();
if(deltaPhi>3./2.*TMath::Pi()) deltaPhi-=2.*TMath::Pi();
- Double_t jetEntries[8] = {centValue,ptcorr,part->Pt(),deltaR,deltaEta,deltaPhi,leadtrack->Pt(),partback->Pt()}; fhnDeltaR->Fill(jetEntries);
- }
- //end of track loop
- Double_t rhoin2=rho*TMath::Pi()*0.2*0.2;
- Double_t rhoin4=rho*TMath::Pi()*(0.4*0.4-0.2*0.2);
- Double_t rhoin6=rho*TMath::Pi()*(0.6*0.6-0.4*0.4);
- Double_t rhoin8=rho*TMath::Pi()*(0.8*0.8-0.6*0.6);
- Double_t rhoin10=rho*TMath::Pi()*(1.2*1.2-0.8*0.8);
-
-
- if(rho!=0){
- if(partback->Pt()>10.){
- fh2JetsumHT3R2->Fill(ptcorr,sumpt2a/rhoin2);
- fh2JetsumHT3R2gap->Fill(ptcorr,sumpt2b/rhoin2);
- fh2JetsumHT3R4->Fill(ptcorr,sumpt4a/rhoin4);
- fh2JetsumHT3R4gap->Fill(ptcorr,sumpt4b/rhoin4);
- fh2JetsumHT3R6->Fill(ptcorr,sumpt6a/rhoin6);
- fh2JetsumHT3R6gap->Fill(ptcorr,sumpt6b/rhoin6);
- fh2JetsumHT3R8->Fill(ptcorr,sumpt8a/rhoin8);
- fh2JetsumHT3R8gap->Fill(ptcorr,sumpt8b/rhoin8);
- fh2JetsumHT3R10->Fill(ptcorr,sumpt10a/rhoin10);
- fh2JetsumHT3R10gap->Fill(ptcorr,sumpt10b/rhoin10);
- }}
+ Double_t pTcont=0;
+ if(fFlagJetHadron==0) pTcont=leadtrack->Pt();
+ if(fFlagJetHadron!=0) pTcont=leadtrackb->Pt();
+ Double_t jetEntries[8] = {centValue,ptcorr,part->Pt(),deltaR,deltaEta,deltaPhi,pTcont,partback->Pt()};
+ fhnDeltaR->Fill(jetEntries);}
+
+ }
+ //end of track loop, we only do it if EM is switched off
+
+
+
+
+
+
+
+
}
+ if(injet>0) fh2JetDensity->Fill(ParticleList.GetEntries(),injet/accep);
+ if(injet4>0)fh2JetDensityA4->Fill(ParticleList.GetEntries(),injet4/accep);
//end of jet loop
- if(fDoEventMixing){
+ if(fDoEventMixing>0){
//check before if the trigger exists
// fTrigBuffer[i][0] = zvtx
// fTrigBuffer[i][1] = phi
// fTrigBuffer[i][2] = eta
// fTrigBuffer[i][3] = pt_jet
// fTrigBuffer[i][4] = pt_trig
- // fTrigBuffer[i][5]= pt_track_in
- // fTrigBuffer[i][6]= centrality
- if(fTindex==11) fTindex=0;
+ // fTrigBuffer[i][5]= centrality
+ if(fTindex==10) fTindex=0;
if(fTrigBuffer[fTindex][3]>0){
if (TMath::Abs(fTrigBuffer[fTindex][0]-primVtx->GetZ()<2.)){
- if (TMath::Abs(fTrigBuffer[fTindex][6]-centValue<10)){
+ if (TMath::Abs(fTrigBuffer[fTindex][5]-centValue<5)){
for(int it = 0;it<nT;++it){
AliVParticle *part = (AliVParticle*)ParticleList.At(it);
Double_t DR=TMath::Sqrt(DPhi*DPhi+DEta*DEta);
if(DPhi<-0.5*TMath::Pi()) DPhi+=2.*TMath::Pi();
if(DPhi>3./2.*TMath::Pi()) DPhi-=2.*TMath::Pi();
- Double_t triggerEntries[8] = {centValue,fTrigBuffer[fTindex][3],part->Pt(),DR,DEta,DPhi,fTrigBuffer[fTindex][4],fTrigBuffer[fTindex][5]};
+ Double_t triggerEntries[7] = {centValue,fTrigBuffer[fTindex][3],part->Pt(),DR,DEta,DPhi,fTrigBuffer[fTindex][4]};
fhnMixedEvents->Fill(triggerEntries);
}
fNevents=fNevents+1;
- if(fNevents==9) {fTindex=fTindex+1;
- fNevents=0;}
+ if(fNevents==10) fTindex=fTindex+1;
}}}
-
+ if(fTindex==10&&fNevents==10) fCountAgain=0;
// Copy the triggers from the current event into the buffer.
//again, only if the trigger exists:
+ if(fCountAgain==0){
if(trigJet>-1){
- AliAODJet* jetT = (AliAODJet*)(fListJets[0]->At(trigJet));
- AliVParticle *partL = (AliVParticle*)ParticleList.At(trigInTrack);
- AliVParticle *partT = (AliVParticle*)ParticleList.At(trigBBTrack);
+ AliAODJet* jetT = (AliAODJet*)(fListJets[0]->At(trigJet)); AliVParticle *partT = (AliVParticle*)ParticleList.At(trigBBTrack);
fTrigBuffer[fTrigBufferIndex][0] = primVtx->GetZ();
fTrigBuffer[fTrigBufferIndex][1] = jetT->Phi();
fTrigBuffer[fTrigBufferIndex][2] = jetT->Eta();
fTrigBuffer[fTrigBufferIndex][3] = jetT->Pt()-rho*jetT->EffectiveAreaCharged();
fTrigBuffer[fTrigBufferIndex][4] = partT->Pt();
- fTrigBuffer[fTrigBufferIndex][5] = partL->Pt();
- fTrigBuffer[fTrigBufferIndex][6] = centValue;
+ fTrigBuffer[fTrigBufferIndex][5] = centValue;
fTrigBufferIndex++;
- if(fTrigBufferIndex==9) fTrigBufferIndex=0;
+ if(fTrigBufferIndex==9) {fTrigBufferIndex=0;
+ fCountAgain=1;}
}
- }
+ }
-
+ }
Int_t iCount = 0;
AliAODEvent *aod = 0;
- if(!fESD){
- if(!fAODIn)return iCount;
- aod = fAODIn;
- }
+
+
+
+
+ if(!fESD)aod = fAODIn;
else aod = fAODOut;
+ if(!aod)return iCount;
+
+ Int_t index=-1;
+ Double_t ptmax=-10;
for(int it = 0;it < aod->GetNumberOfTracks();++it){
AliAODTrack *tr = aod->GetTrack(it);
if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
if(TMath::Abs(tr->Eta())>0.9)continue;
if(tr->Pt()<0.15)continue;
list->Add(tr);
- //cout<<fAOD->GetNumberOfTracks()<<" "<<tr->Pt()<<endl;
iCount++;
+ if(tr->Pt()>ptmax){ ptmax=tr->Pt();
+ index=iCount-1;}
+
}
- return iCount;
+ return index;
}
if(tr->Pt()<0.15)continue;
iCount=iCount+1;
dphi=RelativePhi(tr->Phi(),jetbig->Phi());
- if(TMath::Abs(dphi)<TMath::Pi()-0.2) continue;
+ if(TMath::Abs(dphi)<TMath::Pi()-0.6) continue;
if(tr->Pt()>ptmax){ ptmax=tr->Pt();
index=iCount-1;
dif=dphi; }}
if(!fESD)aod = fAODIn;
else aod = fAODOut;
- for(int it = 0;it < aod->GetNumberOfTracks();++it){
+ for(int it = 0;it < aod->GetNumberOfTracks();++it){
AliAODTrack *tr = aod->GetTrack(it);
if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
if(TMath::Abs(tr->Eta())>0.9)continue;
return dphi;//dphi in [-Pi, Pi]
}
+Int_t AliAnalysisTaskJetCore::GetPhiBin(Double_t phi)
+{
+ Int_t phibin=-1;
+ if(!(TMath::Abs(phi)<=2*TMath::Pi())){AliError("phi w.r.t. RP out of defined range");return -1;}
+ Double_t phiwrtrp=TMath::ACos(TMath::Abs(TMath::Cos(phi)));
+ phibin=Int_t(fNRPBins*phiwrtrp/(0.5*TMath::Pi()));
+ if(phibin<0||phibin>=fNRPBins){AliError("Phi Bin not defined");}
+ return phibin;
+}
+
+
THnSparse* AliAnalysisTaskJetCore::NewTHnSparseF(const char* name, UInt_t entries)
case 2:
label = "track pT";
- nbins = 10;
+ nbins = 9;
xmin = 0.;
xmax = 150;
break;
case 4:
label = "deltaEta";
- nbins = 15;
- xmin = -1.5;
- xmax = 1.5;
+ nbins = 8;
+ xmin = -1.6;
+ xmax = 1.6;
break;
case 6:
label = "leading track";
- nbins = 14;
+ nbins = 13;
xmin = 0;
xmax = 50;
break;
case 7:
label = "trigger track";
- nbins =5;
+ nbins =10;
xmin = 0;
xmax = 50;
break;