fh2PtJet1VsPtJet2(0),
fh3PtJetDEtaDPhiConst(0),
fh2PtJetDRConst(0),
- fh3PtJetAreaDRConst(0)
+ fh3PtJetAreaDRConst(0),
+ fh3PtJet1VsMassJet1MassJet2(0),
+ fh3PtJet2VsMassJet1MassJet2(0)
{
// Default constructor.
fh2PtJet1VsLeadPtAllSel = new TH2F*[fNcentBins];
fh2PtJet1VsLeadPtTagged = new TH2F*[fNcentBins];
fh2PtJet1VsPtJet2 = new TH2F*[fNcentBins];
+ fh3PtJet1VsMassJet1MassJet2 = new TH3F*[fNcentBins];
+ fh3PtJet2VsMassJet1MassJet2 = new TH3F*[fNcentBins];
for (Int_t i = 0; i < fNcentBins; i++) {
fh3PtJet1VsDeltaEtaDeltaPhi[i] = 0;
fh2PtJet1VsLeadPtAllSel[i] = 0;
fh2PtJet1VsLeadPtTagged[i] = 0;
fh2PtJet1VsPtJet2[i] = 0;
+ fh3PtJet1VsMassJet1MassJet2[i] = 0;
+ fh3PtJet2VsMassJet1MassJet2[i] = 0;
}
SetMakeGeneralHistograms(kTRUE);
fh2PtJet1VsPtJet2(0),
fh3PtJetDEtaDPhiConst(0),
fh2PtJetDRConst(0),
- fh3PtJetAreaDRConst(0)
+ fh3PtJetAreaDRConst(0),
+ fh3PtJet1VsMassJet1MassJet2(0),
+ fh3PtJet2VsMassJet1MassJet2(0)
{
// Standard constructor.
fh2PtJet1VsLeadPtAllSel = new TH2F*[fNcentBins];
fh2PtJet1VsLeadPtTagged = new TH2F*[fNcentBins];
fh2PtJet1VsPtJet2 = new TH2F*[fNcentBins];
+ fh3PtJet1VsMassJet1MassJet2 = new TH3F*[fNcentBins];
+ fh3PtJet2VsMassJet1MassJet2 = new TH3F*[fNcentBins];
for (Int_t i = 0; i < fNcentBins; i++) {
fh3PtJet1VsDeltaEtaDeltaPhi[i] = 0;
fh2PtJet1VsLeadPtAllSel[i] = 0;
fh2PtJet1VsLeadPtTagged[i] = 0;
fh2PtJet1VsPtJet2[i] = 0;
+ fh3PtJet1VsMassJet1MassJet2[i] = 0;
+ fh3PtJet2VsMassJet1MassJet2[i] = 0;
}
SetMakeGeneralHistograms(kTRUE);
const Int_t nBinsDEta = 100;
const Int_t nBinsDR = 50;
const Int_t nBinsFraction = 101;
+ const Int_t nBinsM = 150;
const Double_t minPt = -50.;
const Double_t maxPt = 200.;
const Double_t maxDR = 0.5;
const Double_t minFraction = -0.005;
const Double_t maxFraction = 1.005;
+ const Double_t minM = -20.;
+ const Double_t maxM = 130.;
TString histName = "";
TString histTitle = "";
fh2PtJet1VsPtJet2[i] = new TH2F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt);
fOutput->Add(fh2PtJet1VsPtJet2[i]);
+ histName = TString::Format("fh3PtJet1VsMassJet1MassJet2_%d",i);
+ histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#it{M}_{jet2}",histName.Data());
+ fh3PtJet1VsMassJet1MassJet2[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,nBinsM,minM,maxM);
+ fOutput->Add(fh3PtJet1VsMassJet1MassJet2[i]);
+
+ histName = TString::Format("fh3PtJet2VsMassJet1MassJet2_%d",i);
+ histTitle = TString::Format("%s;#it{p}_{T,jet1};#it{M}_{jet1};#it{M}_{jet2}",histName.Data());
+ fh3PtJet2VsMassJet1MassJet2[i] = new TH3F(histName.Data(),histTitle.Data(),nBinsPt,minPt,maxPt,nBinsM,minM,maxM,nBinsM,minM,maxM);
+ fOutput->Add(fh3PtJet2VsMassJet1MassJet2[i]);
}
fh3PtJetDEtaDPhiConst = new TH3F("fh3PtJetDEtaDPhiConst","fh3PtJetDEtaDPhiConst;pT;#Delta #eta;#Delta #varphi",nBinsPt,minPt,maxPt,nBinsDEta,-1.,1.,nBinsDPhi,-1.,1.);
fh3PtJet1VsDeltaEtaDeltaPhi[fCentBin]->Fill(ptJet1,jet1->Eta()-jet2->Eta(),dPhi);
fh2PtJet1VsDeltaR[fCentBin]->Fill(ptJet1,GetDeltaR(jet1,jet2));
+ //fill histo with pt jet 1 vs mass jet 1 vs mass jet 2
+ fh3PtJet1VsMassJet1MassJet2[fCentBin]->Fill(ptJet1,jet1->M(),jet2->M());
+ fh3PtJet2VsMassJet1MassJet2[fCentBin]->Fill(ptJet2,jet1->M(),jet2->M());
}
return kTRUE;
}
TH2F *fh2PtJetDRConst; //!pt jet vs delta R of constituents
TH3F *fh3PtJetAreaDRConst; //!pt jet vs Area vs delta R of constituents
+ TH3F **fh3PtJet1VsMassJet1MassJet2; //!pt jet 1 vs mass jet1 vs mass jet2
+ TH3F **fh3PtJet2VsMassJet1MassJet2; //!pt jet 2 vs mass jet1 vs mass jet2
+
AliAnalysisTaskEmcalJetTagger(const AliAnalysisTaskEmcalJetTagger&); // not implemented
AliAnalysisTaskEmcalJetTagger &operator=(const AliAnalysisTaskEmcalJetTagger&); // not implemented
- ClassDef(AliAnalysisTaskEmcalJetTagger, 3)
+ ClassDef(AliAnalysisTaskEmcalJetTagger, 4)
};
#endif
const Double_t minM = -50.;
const Double_t maxM = 100.;
+ const Int_t nBinsMT = 50;
+ const Double_t minMT = 0.;
+ const Double_t maxMT = 50.;
+
//Binning for THnSparse
- const Int_t nBinsSparse0 = 4;
- const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt};
- const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt};
- const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt};
+ const Int_t nBinsSparse0 = 5;
+ const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt,nBinsMT};
+ const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt, minMT};
+ const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt, maxMT};
TString histName = "";
TString histTitle = "";
fOutput->Add(fh2PtTrueDeltaMRel[i]);
histName = Form("fhnMassResponse_%d",i);
- histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true}",i);
+ histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true};#it{M}_{sub}^{tagged}",i);
fhnMassResponse[i] = new THnSparseF(histName.Data(),histTitle.Data(),nBinsSparse0,nBins0,xmin0,xmax0);
fOutput->Add(fhnMassResponse[i]);
}
{
// Fill histograms.
- AliEmcalJet* jet1 = NULL;
- AliEmcalJet *jet2 = NULL;
- AliEmcalJet *jetS = NULL;
+ AliEmcalJet* jet1 = NULL; //AA jet
+ AliEmcalJet *jet2 = NULL; //Embedded Pythia jet
+ AliEmcalJet *jet1T = NULL; //tagged AA jet
+ // AliEmcalJet *jet2T = NULL; //tagged Pythia jet
+ AliEmcalJet *jetS = NULL; //subtracted jet
AliJetContainer *jetCont = GetJetContainer(fContainerBase);
AliJetContainer *jetContS = GetJetContainer(fContainerSub);
AliDebug(11,Form("NJets Incl: %d Csub: %d",jetCont->GetNJets(),jetContS->GetNJets()));
if(jetCont) {
jetCont->ResetCurrentID();
while((jet1 = jetCont->GetNextAcceptJet())) {
-
+ jet2 = NULL;
+ jet1T = NULL;
+ // jet2T = NULL;
+ jetS = NULL;
+ if(jet1->GetTagStatus()>0) jet1T = jet1->GetTaggedJet();
+
//Get constituent subtacted version of jet
Int_t ifound = 0;
Int_t ilab = -1;
}
}
+ // if(fMatch==1 && jet2->GetTagStatus()>0) jet2T = jet2->GetTaggedJet();
+
//Fill histograms for matched jets
fh2MSubMatch[fCentBin]->Fill(jetS->M(),fMatch);
if(fMatch==1) {
fh2MTruePtTrue[fCentBin]->Fill(jet2->M(),jet2->Pt());
fh2PtTrueDeltaM[fCentBin]->Fill(jet2->Pt(),jetS->M()-jet2->M());
if(jet2->M()>0.) fh2PtTrueDeltaMRel[fCentBin]->Fill(jet2->Pt(),(jetS->M()-jet2->M())/jet2->M());
- Double_t var[4] = {jetS->M(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt()};
+ Double_t mJet1Tagged = -1.;
+ if(jet1T) mJet1Tagged = jet1T->M();
+ Double_t var[5] = {jetS->M(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt(),mJet1Tagged};
fhnMassResponse[fCentBin]->Fill(var);
}
}
const Double_t minM = -50.;
const Double_t maxM = 100.;
+ const Int_t nBinsMT = 50;
+ const Double_t minMT = 0.;
+ const Double_t maxMT = 50.;
+
const Int_t nBinsV1 = 60;
const Double_t minV1 = -60.;
const Double_t maxV1 = 0.;
const Double_t maxV2 = 0.;
//Binning for THnSparse
- const Int_t nBinsSparse0 = 4;
- const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt};
- const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt};
- const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt};
+ const Int_t nBinsSparse0 = 5;
+ const Int_t nBins0[nBinsSparse0] = {nBinsM,nBinsM,nBinsPt,nBinsPt,nBinsMT};
+ const Double_t xmin0[nBinsSparse0] = { minM, minM, minPt, minPt, minMT};
+ const Double_t xmax0[nBinsSparse0] = { maxM, maxM, maxPt, maxPt, maxMT};
TString histName = "";
TString histTitle = "";
fOutput->Add(fh2PtTrueDeltaMRel[i]);
histName = Form("fhnMassResponse_%d",i);
- histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true}",i);
+ histTitle = Form("fhnMassResponse_%d;#it{M}_{sub};#it{M}_{true};#it{p}_{T,sub};#it{p}_{T,true};#it{M}_{sub}^{tagged}",i);
fhnMassResponse[i] = new THnSparseF(histName.Data(),histTitle.Data(),nBinsSparse0,nBins0,xmin0,xmax0);
fOutput->Add(fhnMassResponse[i]);
{
// Fill histograms.
- AliEmcalJet* jet1 = NULL;
- AliEmcalJet *jet2 = NULL;
+ AliEmcalJet* jet1 = NULL; //AA jet
+ AliEmcalJet *jet2 = NULL; //Embedded Pythia jet
+ AliEmcalJet *jet1T = NULL; //tagged AA jet
+ // AliEmcalJet *jet2T = NULL; //tagged Pythia jet
AliJetContainer *jetCont = GetJetContainer(fContainerBase);
fRho = (Float_t)jetCont->GetRhoVal();
fRhoM = (Float_t)jetCont->GetRhoMassVal();
if(jetCont) {
jetCont->ResetCurrentID();
while((jet1 = jetCont->GetNextAcceptJet())) {
+ jet2 = NULL;
+ jet1T = NULL;
+ // jet2T = NULL;
+ if(jet1->GetTagStatus()>0) jet1T = jet1->GetTaggedJet();
//Fill histograms for all AA jets
fh2MSubPtRawAll[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area());
fh2PtRawSubFacV1[fCentBin]->Fill(jet1->Pt(),-1.*(fRho+fRhoM)*jet1->GetFirstDerivative());
}
}
+ // if(fMatch==1 && jet2->GetTagStatus()>0) jet2T = jet2->GetTaggedJet();
+
//Fill histograms for matched jets
fh2MSubMatch[fCentBin]->Fill(jet1->GetSecondOrderSubtracted(),fMatch);
if(fMatch==1) {
fh2MTruePtTrue[fCentBin]->Fill(jet2->M(),jet2->Pt());
fh2PtTrueDeltaM[fCentBin]->Fill(jet2->Pt(),jet1->GetSecondOrderSubtracted()-jet2->M());
if(jet2->M()>0.) fh2PtTrueDeltaMRel[fCentBin]->Fill(jet2->Pt(),(jet1->GetSecondOrderSubtracted()-jet2->M())/jet2->M());
- Double_t var[4] = {jet1->GetSecondOrderSubtracted(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt()};
+ Double_t mJet1Tagged = -1.;
+ if(jet1T) mJet1Tagged = jet1T->M();
+ Double_t var[5] = {jet1->GetSecondOrderSubtracted(),jet2->M(),jet1->Pt()-jetCont->GetRhoVal()*jet1->Area(),jet2->Pt(),mJet1Tagged};
fhnMassResponse[fCentBin]->Fill(var);
}
}
while((jet1 = jetCont->GetNextAcceptJet())) {
fh1PtTrue[fCentBin]->Fill(jet1->Pt());
- Double_t dev = CalcDeltaGR(jet1,fContainerTrue,fNum,fDen);//num,den);
+ //Double_t dev = CalcDeltaGR(jet1,fContainerTrue,fNum,fDen);//num,den);
for(Int_t i = 0; i<nr; i++) {
Double_t r = i*fDRStep + 0.5*fDRStep;
fh3DeltaGRNumRPtTrue[fCentBin]->Fill(fNum->At(i),r,jet1->Pt());