#include "AliAnalysisManager.h"
#include "AliJetContainer.h"
#include "AliParticleContainer.h"
-#include "AliStackPartonInfo.h"
+#include "AliPythiaInfo.h"
#include "AliAODEvent.h"
AliAnalysisTaskEmcalJet("AliAnalysisTaskEmcalQGTagging", kTRUE),
fContainer(0),
fMinFractionShared(0),
- fJetShapeType(kRaw),
+ fJetShapeType(kData),
+ fJetShapeSub(kNoSub),
fShapesVar(0),
- fIsMC(kFALSE),
- fIsEmbedding(kFALSE),
- fIsConstSub(kFALSE),
fPtThreshold(-9999.),
fRMatching(0.3),
+ fh2ResponseUW(0x0),
+ fh2ResponseW(0x0),
fPhiJetCorr6(0x0),
fPhiJetCorr7(0x0),
fEtaJetCorr6(0x0),
AliAnalysisTaskEmcalJet(name, kTRUE),
fContainer(0),
fMinFractionShared(0),
- fJetShapeType(kRaw),
+ fJetShapeType(kData),
+ fJetShapeSub(kNoSub),
fShapesVar(0),
- fIsMC(kFALSE),
- fIsEmbedding(kFALSE),
- fIsConstSub(kFALSE),
fPtThreshold(-9999.),
fRMatching(0.3),
+ fh2ResponseUW(0x0),
+ fh2ResponseW(0x0),
fPhiJetCorr6(0x0),
fPhiJetCorr7(0x0),
fEtaJetCorr6(0x0),
TH1::AddDirectory(kFALSE);
fTreeObservableTagging = new TTree("fTreeJetShape", "fTreeJetShape");
- Int_t nVar = 9;
+ Int_t nVar = 18;
fShapesVar = new Float_t [nVar];
TString *fShapesVarNames = new TString [nVar];
fShapesVarNames[6] = "circularity";
fShapesVarNames[7] = "lesub";
fShapesVarNames[8] = "sigma2";
-
+
+ fShapesVarNames[9] = "ptJetMatch";
+ fShapesVarNames[10] = "ptDJetMatch";
+ fShapesVarNames[11] = "mJetMatch";
+ fShapesVarNames[12] = "nbOfConstMatch";
+ fShapesVarNames[13] = "angularityMatch";
+ fShapesVarNames[14] = "circularityMatch";
+ fShapesVarNames[15] = "lesubMatch";
+ fShapesVarNames[16] = "sigma2Match";
+ fShapesVarNames[17]="weightPythia";
+
for(Int_t ivar=0; ivar < nVar; ivar++){
cout<<"looping over variables"<<endl;
fTreeObservableTagging->Branch(fShapesVarNames[ivar].Data(), &fShapesVar[ivar], Form("%s/F", fShapesVarNames[ivar].Data()));
//if( ivar == 4 ) fTreeObservableTagging->Branch(fShapesVarNames[ivar].Data(), &fShapesVar[ivar], Form("%s/I", fShapesVarNames[ivar].Data()));
}
-
+
+ fh2ResponseUW= new TH2F("fh2ResponseUW", "fh2ResponseUW", 100, 0, 200, 100, 0, 200);
+ fOutput->Add(fh2ResponseUW);
+ fh2ResponseW= new TH2F("fh2ResponseW", "fh2ResponseW", 100, 0, 200, 100, 0, 200);
+ fOutput->Add(fh2ResponseW);
fPhiJetCorr6= new TH2F("fPhiJetCorr6", "fPhiJetCorr6", 50, 0, 2*TMath::Pi(), 50, 0, 2*TMath::Pi());
fOutput->Add(fPhiJetCorr6);
fEtaJetCorr6= new TH2F("fEtaJetCorr6", "fEtaJetCorr6", 50, -1.5, 1.5, 50, -1.5, 1.5);
//cout<<"base container"<<endl;
AliEmcalJet* jet1 = NULL;
AliJetContainer *jetCont = GetJetContainer(0);
-
+ Float_t kWeight=1;
+ if(fCent>10) return 0;
if(jetCont) {
jetCont->ResetCurrentID();
while((jet1 = jetCont->GetNextAcceptJet())) {
if (!jet1) continue;
+ AliEmcalJet* jet2 = 0x0;
fPtJet->Fill(jet1->Pt());
- if (fIsMC) {
- AliStackPartonInfo *partonsInfo = 0x0;
- AliEmcalJet* jet2 = 0x0;
- if (fIsEmbedding){
+
+ if (!(fJetShapeType == kData)) {
+ AliPythiaInfo *partonsInfo = 0x0;
+ if((fJetShapeType == kTrueDet) || (fJetShapeType == kDetEmb)){
AliJetContainer *jetContTrue = GetJetContainer(1);
jet2 = jet1->ClosestJet();
if (!jet2) {
Printf("jet2 not exists, returning");
continue;
}
-
+ fh2ResponseUW->Fill(jet1->Pt(),jet2->Pt());
+
+
Double_t fraction = jetCont->GetFractionSharedPt(jet1);
+ cout<<"hey a jet"<<fraction<<" "<<jet1->Pt()<<" "<<jet2->Pt()<<" "<<fCent<<endl;
+
if(fraction<fMinFractionShared) continue;
- partonsInfo = (AliStackPartonInfo*) jetContTrue->GetStackPartonInfo();
+ partonsInfo = (AliPythiaInfo*) jetContTrue->GetPythiaInfo();
if(!partonsInfo) return 0;
+
}
else {
- partonsInfo = (AliStackPartonInfo*) jetCont->GetStackPartonInfo();
+ partonsInfo = (AliPythiaInfo*) jetCont->GetPythiaInfo();
jet2=jet1;
if(!partonsInfo) return 0;
}
Double_t jp1=(jet2->Phi())-(partonsInfo->GetPartonPhi6());
Double_t detap1=(jet2->Eta())-(partonsInfo->GetPartonEta6());
-
+ kWeight=partonsInfo->GetPythiaEventWeight();
+ fh2ResponseW->Fill(jet1->Pt(),jet2->Pt(),kWeight);
if (jp1< -1*TMath::Pi()) jp1 = (-2*TMath::Pi())-jp1;
else if (jp1 > TMath::Pi()) jp1 = (2*TMath::Pi())-jp1;
Float_t dRp1 = TMath::Sqrt(jp1 * jp1 + detap1 * detap1);
Double_t ptSubtracted = 0;
- if ((fJetShapeType==AliAnalysisTaskEmcalQGTagging::kRaw && fIsConstSub==kFALSE) || (fJetShapeType==AliAnalysisTaskEmcalQGTagging::kDeriv)) ptSubtracted = jet1->Pt() - GetRhoVal(0)*jet1->Area();
- else ptSubtracted = jet1->Pt();
-
- if ((fJetShapeType==AliAnalysisTaskEmcalQGTagging::kRaw || fJetShapeType==AliAnalysisTaskEmcalQGTagging::kDeriv))
- if ( ptSubtracted < fPtThreshold) continue;
-
+ if (((fJetShapeType == kData) || (fJetShapeType == kDetEmb)) && (fJetShapeSub == kConstSub))
+ ptSubtracted = jet1->Pt();
+ else ptSubtracted = jet1->Pt() - GetRhoVal(0)*jet1->Area();
+
+ if ((fJetShapeType == kData || fJetShapeType== kDetEmb))
+ if ( ptSubtracted < fPtThreshold) continue;
+
fShapesVar[1] = ptSubtracted;
- fShapesVar[2] = GetJetpTD(jet1);
- fShapesVar[3] = GetJetMass(jet1);
- fShapesVar[4] = 1.*GetJetNumberOfConstituents(jet1);
- fShapesVar[5] = GetJetAngularity(jet1);
- fShapesVar[6] = GetJetCircularity(jet1);
- fShapesVar[7] = GetJetLeSub(jet1);
- fShapesVar[8] = GetSigma2(jet1);
+ fShapesVar[2] = GetJetpTD(jet1,0);
+ fShapesVar[3] = GetJetMass(jet1,0);
+ fShapesVar[4] = 1.*GetJetNumberOfConstituents(jet1,0);
+ fShapesVar[5] = GetJetAngularity(jet1,0);
+ fShapesVar[6] = GetJetCircularity(jet1,0);
+ fShapesVar[7] = GetJetLeSub(jet1,0);
+ fShapesVar[8] = GetSigma2(jet1,0);
+
+ Float_t ptMatch=0., ptDMatch=0., massMatch=0., constMatch=0.,angulMatch=0.,circMatch=0., lesubMatch=0., sigma2Match=0.;
+ Int_t kMatched = 0;
+ if (fJetShapeType == kTrueDet || fJetShapeType == kDetEmb) {
+ kMatched = 1;
+ ptMatch=jet2->Pt();
+ ptDMatch=GetJetpTD(jet2, kMatched);
+ massMatch=GetJetMass(jet2,kMatched);
+ constMatch=1.*GetJetNumberOfConstituents(jet2,kMatched);
+ angulMatch=GetJetAngularity(jet2, kMatched);
+ circMatch=GetJetCircularity(jet2, kMatched);
+ lesubMatch=GetJetLeSub(jet2, kMatched);
+ sigma2Match = GetSigma2(jet2, kMatched);
+
+ }
+
+ if (fJetShapeType == kTrue || fJetShapeType == kData) {
+ kMatched = 0;
+ ptMatch=0.;
+ ptDMatch=0.;
+ massMatch=0.;
+ constMatch=0.;
+ angulMatch=0.;
+ circMatch=0.;
+ lesubMatch=0.;
+ sigma2Match =0.;
+
+ }
+
+ fShapesVar[9] = ptMatch;
+ fShapesVar[10] = ptDMatch;
+ fShapesVar[11] = massMatch;
+ fShapesVar[12] = constMatch;
+ fShapesVar[13] = angulMatch;
+ fShapesVar[14] = circMatch;
+ fShapesVar[15] = lesubMatch;
+ fShapesVar[16] = sigma2Match;
+ fShapesVar[17] = kWeight;
fTreeObservableTagging->Fill();
}
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::GetJetMass(AliEmcalJet *jet) {
+Float_t AliAnalysisTaskEmcalQGTagging::GetJetMass(AliEmcalJet *jet,Int_t jetContNb=0) {
//calc subtracted jet mass
- if(fJetShapeType==kDeriv)
+ if((fJetShapeSub==kDerivSub)&&(jetContNb==0))
return jet->GetSecondOrderSubtracted();
else
return jet->M();
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::Angularity(AliEmcalJet *jet){
+Float_t AliAnalysisTaskEmcalQGTagging::Angularity(AliEmcalJet *jet, Int_t jetContNb = 0){
- AliJetContainer *jetCont = GetJetContainer(0);
+ AliJetContainer *jetCont = GetJetContainer(jetContNb);
if (!jet->GetNumberOfTracks())
return 0;
Double_t den=0.;
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::GetJetAngularity(AliEmcalJet *jet) {
+Float_t AliAnalysisTaskEmcalQGTagging::GetJetAngularity(AliEmcalJet *jet, Int_t jetContNb = 0) {
- if(fJetShapeType==kDeriv)
+ if((fJetShapeSub==kDerivSub) && (jetContNb==0))
return jet->GetSecondOrderSubtractedAngularity();
else
- return Angularity(jet);
+ return Angularity(jet, jetContNb);
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::PTD(AliEmcalJet *jet){
+Float_t AliAnalysisTaskEmcalQGTagging::PTD(AliEmcalJet *jet, Int_t jetContNb = 0){
- AliJetContainer *jetCont = GetJetContainer(0);
+ AliJetContainer *jetCont = GetJetContainer(jetContNb);
if (!jet->GetNumberOfTracks())
return 0;
Double_t den=0.;
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::GetJetpTD(AliEmcalJet *jet) {
+Float_t AliAnalysisTaskEmcalQGTagging::GetJetpTD(AliEmcalJet *jet, Int_t jetContNb = 0) {
//calc subtracted jet mass
- if(fJetShapeType==kDeriv)
+ if((fJetShapeSub==kDerivSub)&&(jetContNb==0))
return jet->GetSecondOrderSubtractedpTD();
else
- return PTD(jet);
+ return PTD(jet, jetContNb);
}
//_____________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::Circularity(AliEmcalJet *jet){
+Float_t AliAnalysisTaskEmcalQGTagging::Circularity(AliEmcalJet *jet, Int_t jetContNb = 0){
- AliJetContainer *jetCont = GetJetContainer(0);
+ AliJetContainer *jetCont = GetJetContainer(jetContNb);
if (!jet->GetNumberOfTracks())
return 0;
Double_t mxx = 0.;
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::GetJetCircularity(AliEmcalJet *jet) {
+Float_t AliAnalysisTaskEmcalQGTagging::GetJetCircularity(AliEmcalJet *jet, Int_t jetContNb =0 ) {
//calc subtracted jet mass
- if(fJetShapeType==kDeriv)
+ if((fJetShapeSub==kDerivSub)&&(jetContNb==0))
return jet->GetSecondOrderSubtractedCircularity();
else
- return Circularity(jet);
+ return Circularity(jet, jetContNb);
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::LeSub(AliEmcalJet *jet){
+Float_t AliAnalysisTaskEmcalQGTagging::LeSub(AliEmcalJet *jet, Int_t jetContNb =0 ){
- AliJetContainer *jetCont = GetJetContainer(0);
+ AliJetContainer *jetCont = GetJetContainer(jetContNb);
if (!jet->GetNumberOfTracks())
return 0;
Double_t den=0.;
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::GetJetLeSub(AliEmcalJet *jet) {
+Float_t AliAnalysisTaskEmcalQGTagging::GetJetLeSub(AliEmcalJet *jet, Int_t jetContNb =0) {
//calc subtracted jet mass
- if(fJetShapeType==kDeriv)
+ if((fJetShapeSub==kDerivSub)&&(jetContNb==0))
return jet->GetSecondOrderSubtractedLeSub();
else
- return LeSub(jet);
+ return LeSub(jet, jetContNb);
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::GetJetNumberOfConstituents(AliEmcalJet *jet) {
+Float_t AliAnalysisTaskEmcalQGTagging::GetJetNumberOfConstituents(AliEmcalJet *jet,Int_t jetContNb=0) {
//calc subtracted jet mass
- if(fJetShapeType==kDeriv)
+ if((fJetShapeSub==kDerivSub)&&(jetContNb==0))
return jet->GetSecondOrderSubtractedConstituent();
else
return jet->GetNumberOfTracks();
//______________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::Sigma2(AliEmcalJet *jet){
+Float_t AliAnalysisTaskEmcalQGTagging::Sigma2(AliEmcalJet *jet, Int_t jetContNb=0){
- AliJetContainer *jetCont = GetJetContainer(0);
+ AliJetContainer *jetCont = GetJetContainer(jetContNb);
if (!jet->GetNumberOfTracks())
return 0;
Double_t mxx = 0.;
}
//________________________________________________________________________
-Float_t AliAnalysisTaskEmcalQGTagging::GetSigma2(AliEmcalJet *jet) {
+Float_t AliAnalysisTaskEmcalQGTagging::GetSigma2(AliEmcalJet *jet, Int_t jetContNb=0) {
//calc subtracted jet mass
- if(fJetShapeType==kDeriv)
+ if((fJetShapeSub==kDerivSub)&&(jetContNb==0))
return jet->GetSecondOrderSubtractedSigma2();
else
- return Sigma2(jet);
+ return Sigma2(jet, jetContNb);
}