fHistEvtSelection(0x0),
fh2JetEntries(0x0),
fh2Circularity(0x0),
+fh2JetAxisPhi(0x0),
fhnJetTM(0x0)
{
// default Constructor
fHistEvtSelection(0x0),
fh2JetEntries(0x0),
fh2Circularity(0x0),
+fh2JetAxisPhi(0x0),
fhnJetTM(0x0)
{
// Constructor
fOutputList->Add(fh2JetEntries);
fh2Circularity=new TH2F("Circcularity","",10,0,1,150,0,150);
fOutputList->Add(fh2Circularity);
- Int_t nbinsJet[9]={10,9,7,9,36,10,2,10,10};
- Double_t binlowJet[9]= {0,0, 0, 0,-0.5*TMath::Pi(),0,0,-0.5,0};
- Double_t binupJet[9]= {100,0.9, 150,150,1.5*TMath::Pi(),1,200,9.5,20};
- fhnJetTM = new THnSparseF("fhnJetTM", "fhnJetTM; cent;dr;pt_jet;pt_track;phi;circ;nc;pthard",9,nbinsJet,binlowJet,binupJet);
- Double_t *xPt3=new Double_t[10];
+ fh2JetAxisPhi=new TH2F("JetAxisSmearPhi","",9,0,TMath::Pi(),10,-0.5,9.5);
+ fOutputList->Add(fh2JetAxisPhi);
+
+
+ Int_t nbinsJet[10]={3,9,75,9,36,5,7,10,50,2};
+ Double_t binlowJet[10]= {0,0, 0, 0,-0.5*TMath::Pi(),0,0,-0.5,0,0};
+ Double_t binupJet[10]= {100,0.9, 150,150,1.5*TMath::Pi(),1,150,9.5,200,2};
+ fhnJetTM = new THnSparseF("fhnJetTM", "fhnJetTM; cent;dr;pt_jet;pt_track;phi;circ;ptrue;pthard;ptlead;isemebed",10,nbinsJet,binlowJet,binupJet);
+
+ Double_t *xPt3=new Double_t[10];
xPt3[0] = 0.;
for(Int_t i = 1;i<=9;i++){
if(xPt3[i-1]<2)xPt3[i] = xPt3[i-1] + 0.4; // 1 - 5
}
fhnJetTM->SetBinEdges(3,xPt3);
- Double_t *xPt2=new Double_t[10];
- xPt2[0] = 0.;
- xPt2[1]=20;
- xPt2[2]=40;
- xPt2[3]=60;
- xPt2[4]=80;
- xPt2[5]=100;
- xPt2[6]=120;
- xPt2[7]=150;
+ // Double_t *xPt2=new Double_t[10];
+ // xPt2[0] = 0.;
+ // xPt2[1]=20;
+ // xPt2[2]=40;
+ // xPt2[3]=60;
+ // xPt2[4]=80;
+ // xPt2[5]=100;
+ // xPt2[6]=120;
+ // xPt2[7]=150;
+
+ //fhnJetTM->SetBinEdges(2,xPt2);
+
+
+ Double_t *xPt4=new Double_t[4];
+ xPt4[0] = 0.;
+ xPt4[1]=10;
+ xPt4[2]=30;
+ xPt4[3]=50;
+
+
+ fhnJetTM->SetBinEdges(0,xPt4);
+
+ Double_t *xPt5=new Double_t[10];
+ xPt5[0] = 0.;
+ xPt5[1]=20;
+ xPt5[2]=40;
+ xPt5[3]=60;
+ xPt5[4]=80;
+ xPt5[5]=100;
+ xPt5[6]=120;
+ xPt5[7]=150;
- fhnJetTM->SetBinEdges(2,xPt2);
- fOutputList->Add(fhnJetTM);
+ fhnJetTM->SetBinEdges(6,xPt5);
+
+
+ fOutputList->Add(fhnJetTM);
delete [] xPt3;
- delete [] xPt2;
+ // delete [] xPt2;
+ delete [] xPt4;
+ delete [] xPt5;
// =========== Switch on Sumw2 for all histos ===========
for (Int_t i=0; i<fOutputList->GetEntries(); ++i) {
TH1 *h1 = dynamic_cast<TH1*>(fOutputList->At(i));
Double_t areabig=0;
Double_t phibig=0.;
Double_t pxbig,pybig,pzbig;
-
-
+ Double_t phitrue=0;
+ Double_t etatrue=0;
+ Double_t smearphi=0;
+ Double_t ptrue=0;
AliAODJet* jetbig = (AliAODJet*)(fListJets[0]->At(i));
etabig = jetbig->Eta();
phibig = jetbig->Phi();
+ phitrue=phibig;
+ etatrue=etabig;
ptbig = jetbig->Pt();
if(ptbig==0) continue;
areabig = jetbig->EffectiveAreaCharged();
if(jetmatched->Eta()>fJetEtaMax || jetmatched->Eta()<fJetEtaMin) jetAccepted = kFALSE;
}
+ ptrue=ptbig;
if(!jetAccepted) continue;
+
+ etabig=jetmatched->Eta();
+ phibig=jetmatched->Phi();
pxbig=jetmatched->Px();
pybig=jetmatched->Py();
pzbig=jetmatched->Pz();
- ptbig=jetmatched->Pt()-rho*jetmatched->EffectiveAreaCharged();}
+ ptbig=jetmatched->Pt()-rho*jetmatched->EffectiveAreaCharged();
+
+
+
+
+
+ smearphi=RelativePhi(phitrue,jetmatched->Phi());
+ smearphi=TMath::Abs(smearphi);
+
+
+}
fh2Circularity->Fill(circ,ptbig);
fh2JetEntries->Fill(ptbig,pthardbin);
+
+ if(fDoMatching) fh2JetAxisPhi->Fill(smearphi,pthardbin);
+
+
for (Int_t ip = 0; ip < ParticleList.GetEntries(); ip++) {
AliVParticle *track = (AliVParticle*)ParticleList.At(ip);
-
+ Float_t isembed=0.5;
+ if(fDoMatching) if(ip<nT) isembed=1.5;
TVector3 pp(track->Px(), track->Py(), track->Pz());
Float_t phi = track->Phi();
Float_t eta = track->Eta();
if(phistr<-0.5*TMath::Pi()) phistr += 2*TMath::Pi();
if(phistr>1.5*TMath::Pi()) phistr -= 2*TMath::Pi();
- double jetEntries[9] = {centValue,dRR,ptbig,pt,phistr,circ,static_cast<double>(nc),pthardbin,ptmax};
+ double jetEntries[10] = {centValue,dRR,ptbig,pt,phistr,circ,ptrue,pthardbin,ptmax,isembed};
fhnJetTM->Fill(jetEntries);
} // 2nd Track loop
Int_t AliAnalysisTaskJetAntenna::GetListOfTracksExtra(TList *list){
Int_t iCount = 0;
+ Int_t nEmbed=0;
AliAODEvent *aod = 0;
if(!fESD)aod = fAODIn;
else aod = fAODOut;
if(!aod)return 0;
- for(int it = 0;it < aod->GetNumberOfTracks();++it){
- AliAODTrack *tr = aod->GetTrack(it);
- Bool_t bGood = false;
- if(fFilterType == 0)bGood = true;
- else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
- else if(fFilterType == 2)bGood = tr->IsHybridGlobalConstrainedGlobal();
- if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
- if(fRequireITSRefit==1){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
- if(bGood==false) continue;
- if (fApplySharedClusterCut) {
- Double_t frac = Double_t(tr->GetTPCnclsS()) /Double_t(tr->GetTPCncls());
- if (frac > 0.4) continue;
- }
- if(TMath::Abs(tr->Eta())>0.9)continue;
- if(tr->Pt()<0.15)continue;
- list->Add(tr);
- iCount++;
- }
-
-
-
-
- TClonesArray *aodExtraTracks = dynamic_cast<TClonesArray*>(aod->FindListObject("aodExtraTracks"));
+ TClonesArray *aodExtraTracks = dynamic_cast<TClonesArray*>(aod->FindListObject("aodExtraTracks"));
if(!aodExtraTracks)return iCount;
for(int it =0; it<aodExtraTracks->GetEntries(); it++) {
AliVParticle *track = dynamic_cast<AliVParticle*> ((*aodExtraTracks)[it]);
if (frac > 0.4) continue;
}
-
if(TMath::Abs(trackAOD->Eta())>0.9) continue;
if(trackAOD->Pt()<0.15) continue;
if(fDebug) printf("pt extra track %.2f \n", trackAOD->Pt());
list->Add(trackAOD);
iCount++;
- }
-
- list->Sort();
- return iCount;
+ }
+
+ nEmbed=iCount-1;
+
+
+
+
+ for(int it = 0;it < aod->GetNumberOfTracks();++it){
+ AliAODTrack *tr = aod->GetTrack(it);
+ Bool_t bGood = false;
+ if(fFilterType == 0)bGood = true;
+ else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
+ else if(fFilterType == 2)bGood = tr->IsHybridGlobalConstrainedGlobal();
+ if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
+ if(fRequireITSRefit==1){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
+ if(bGood==false) continue;
+ if (fApplySharedClusterCut) {
+ Double_t frac = Double_t(tr->GetTPCnclsS()) /Double_t(tr->GetTPCncls());
+ if (frac > 0.4) continue;
+ }
+ if(TMath::Abs(tr->Eta())>0.9)continue;
+ if(tr->Pt()<0.15)continue;
+ list->Add(tr);
+ iCount++;
+ }
+
+ return nEmbed;
}
Double_t AliAnalysisTaskJetAntenna::RelativePhi(Double_t mphi,Double_t vphi){