fUseExternalWeightOnly(kFALSE),
fLimitGenJetEta(kFALSE),
fNMatchJets(5),
+ fNRPBins(3),
fFilterMask(0),
fEventSelectionMask(0),
fAnalysisType(0),
fMinJetPt(0),
fMinTrackPt(0.15),
fDeltaPhiWindow(90./180.*TMath::Pi()),
+ fRPAngle(0),
fMultRec(0),
fMultGen(0),
fh1Xsec(0x0),
fh1PtHardNoW(0x0),
fh1PtHardTrials(0x0),
fh1ZVtx(0x0),
+ fh1RP(0x0),
fh1TmpRho(0x0),
fh2MultRec(0x0),
fh2MultGen(0x0),
fh1PtTracksIn[ij] = 0;
fh1PtTracksInLow[ij] = 0;
fh1PtTracksLeadingIn[ij] = 0;
- fh2MultJetPt[ij] = 0;
fh2NJetsPt[ij] = 0;
fh2NTracksPt[ij] = 0;
+ fh3MultTrackPtRP[ij] = 0;
fh2LeadingTrackPtTrackPhi[ij] = 0;
for(int i = 0;i <= kMaxJets;++i){
+ fh3MultPtRP[ij][i] = 0;
fh2PhiPt[ij][i] = 0;
fh2EtaPt[ij][i] = 0;
fh2AreaPt[ij][i] = 0;
fUseExternalWeightOnly(kFALSE),
fLimitGenJetEta(kFALSE),
fNMatchJets(5),
+ fNRPBins(3),
fFilterMask(0),
fEventSelectionMask(0),
fAnalysisType(0),
fMinJetPt(0),
fMinTrackPt(0.15),
fDeltaPhiWindow(90./180.*TMath::Pi()),
+ fRPAngle(0),
fMultRec(0),
fMultGen(0),
fh1Xsec(0x0),
fh1PtHardNoW(0x0),
fh1PtHardTrials(0x0),
fh1ZVtx(0x0),
+ fh1RP(0x0),
fh1TmpRho(0x0),
fh2MultRec(0x0),
fh2MultGen(0x0),
fh1PtTracksIn[ij] = 0;
fh1PtTracksInLow[ij] = 0;
fh1PtTracksLeadingIn[ij] = 0;
- fh2MultJetPt[ij] = 0;
fh2NJetsPt[ij] = 0;
fh2NTracksPt[ij] = 0;
+ fh3MultTrackPtRP[ij] = 0;
fh2LeadingTrackPtTrackPhi[ij] = 0;
for(int i = 0;i <= kMaxJets;++i){
+ fh3MultPtRP[ij][i] = 0;
fh2PhiPt[ij][i] = 0;
fh2EtaPt[ij][i] = 0;
fh2AreaPt[ij][i] = 0;
fh1ZVtx = new TH1F("fh1ZVtx","z vtx;z_{vtx} (cm)",400,-20,20);
fHistList->Add(fh1ZVtx);
+
+ fh1RP = new TH1F("fh1RP","RP;#Psi",480,-180,360);
+ fHistList->Add(fh1RP);
+
fh2MultRec = new TH2F("fh2MultRec","multiplicity rec;# tracks;# jetrefs",400,-0.5,4000,400,0.,4000);
fHistList->Add(fh2MultRec);
fh2MultGen = new TH2F("fh2MultGen","multiplicity gen;# tracks;# jetrefs",400,-0.5,4000,400,0.,4000);
fh1SumPtTrack[ij] = new TH1F(Form("fh1SumPtTrack%s",cAdd.Data()),Form("Sum %s track p_T;p_{T} (GeV/c)",cAdd.Data()),900,0.,900.);
fHistList->Add(fh1SumPtTrack[ij]);
- fh2MultJetPt[ij] = new TH2F(Form("fh2MultJetPt%s",cAdd.Data()),Form("%s jets p_T;# tracks;;p_{T} (GeV/c)",cAdd.Data()),400,0,4000,nBinPt,binLimitsPt);
- fHistList->Add(fh2MultJetPt[ij]);
-
fh2NJetsPt[ij] = new TH2F(Form("fh2N%sJetsPt",cAdd.Data()),Form("Number of %s jets above threshhold;p_{T,cut} (GeV/c);N_{jets}",cAdd.Data()),nBinPt,binLimitsPt,50,-0.5,49.5);
fHistList->Add(fh2NJetsPt[ij]);
fh2NTracksPt[ij] = new TH2F(Form("fh2N%sTracksPt",cAdd.Data()),Form("Number of %s tracks above threshhold;p_{T,cut} (GeV/c);N_{tracks}",cAdd.Data()),nBinPt,binLimitsPt,1000,0.,4000);
fHistList->Add(fh2NTracksPt[ij]);
+ fh3MultTrackPtRP[ij] = new TH3F(Form("fh3MultTrackPtRP%s",
+ cAdd.Data()),Form("%s track p_T;# tracks;;p_{T} (GeV/c)",cAdd.Data()),400,0,4000,nBinPt,0,300,(Int_t)fNRPBins,-0.5,fNRPBins-0.5);
+ fHistList->Add(fh3MultTrackPtRP[ij]);
+
fh2LeadingTrackPtTrackPhi[ij] = new TH2F(Form("fh2Leading%sTrackPtTrackPhi",cAdd.Data()),Form("phi of leading %s track;p_{T};#phi;",cAdd.Data()),
nBinPt,binLimitsPt,nBinPhi,binLimitsPhi);
fHistList->Add(fh2LeadingTrackPtTrackPhi[ij]);
fHistList->Add(fh2PsiPt[ij][i]);
fh2PhiPt[ij][i] = new TH2F(Form("fh2PhiPt%s_j%d",cAdd.Data(),i),Form("pt vs phi %s;#phi;p_{T};",cAdd.Data()),
nBinPhi,binLimitsPhi,nBinPt,binLimitsPt);
+
+ fh3MultPtRP[ij][i] = new TH3F(Form("fh3MultPtRP%s_j%d",cAdd.Data(),i),Form("%s jets p_T;# tracks;;p_{T} (GeV/c)",cAdd.Data()),400,0,4000,nBinPt,0,300,(Int_t)fNRPBins,-0.5,fNRPBins-0.5);
+ fHistList->Add(fh3MultPtRP[ij][i]);
+
+
+
fHistList->Add(fh2PhiPt[ij][i]);
fh2EtaPt[ij][i] = new TH2F(Form("fh2EtaPt%s_j%d",cAdd.Data(),i),Form("pt vs eta %s;#eta;p_{T};",cAdd.Data()),
50,-1.,1.,nBinPt,binLimitsPt);
AliAODJet *jet = (AliAODJet*)jetsList.At(ij);
Float_t ptJet = jet->Pt();
fh1PtJetsIn[iType]->Fill(ptJet);
- fh2MultJetPt[iType]->Fill(refMult,ptJet);
if(ptJet>ptOld){
Printf("%s:%d Jets Type %d Not Sorted !! %d:%.3E %d:%.3E",(char*)__FILE__,__LINE__,iType,ij,ptJet,ij-1,ptOld);
}
fh2EtaArea[iType][kMaxJets]->Fill(etaJet,jet->EffectiveAreaCharged());
}
if(ij<kMaxJets){
+ fh3MultPtRP[iType][ij]->Fill(refMult,ptJet,0);
fh2PhiPt[iType][ij]->Fill(phiJet,ptJet);
fh2EtaPt[iType][ij]->Fill(etaJet,ptJet);
if(leadTrack)fh2LTrackPtJetPt[iType][ij]->Fill(leadTrack->Pt(),ptJet);
}
+ fh3MultPtRP[iType][kMaxJets]->Fill(refMult,ptJet,0);
fh2PhiPt[iType][kMaxJets]->Fill(phiJet,ptJet);
fh2EtaPt[iType][kMaxJets]->Fill(etaJet,ptJet);
if(leadTrack)fh2LTrackPtJetPt[iType][kMaxJets]->Fill(leadTrack->Pt(),ptJet);
void AliAnalysisTaskJetSpectrum2::FillTrackHistos(TList &particlesList,int iType){
+ Int_t refMult = fMultRec;
+ if(iType==kJetGen||iType==kJetGenFull){
+ refMult = fMultGen;
+ }
+
Int_t nTrackOver = particlesList.GetSize();
// do the same for tracks and jets
if(nTrackOver>0){
Float_t tmpPt = tmpTrack->Pt();
fh1PtTracksIn[iType]->Fill(tmpPt);
fh1PtTracksInLow[iType]->Fill(tmpPt);
+ fh3MultTrackPtRP[iType]->Fill(refMult,tmpPt,0);
sumPt += tmpPt;
Float_t tmpPhi = tmpTrack->Phi();
if(tmpPhi<0)tmpPhi+=TMath::Pi()*2.;
virtual void SetTrackEtaWindow(Float_t f){fTrackRecEtaWindow = f;}
virtual void SetNMatchJets(Short_t f){fNMatchJets = f;}
virtual void SetMinJetPt(Float_t f){fMinJetPt = f;}
+ virtual void SetNRPBins(Short_t i){fNRPBins = i;}
virtual void SetMinTrackPt(Float_t f){fMinTrackPt = f;}
virtual void SetDeltaPhiWindow(Float_t f){fDeltaPhiWindow = f;}
virtual void SetAnalysisType(Int_t i){fAnalysisType = i;}
Bool_t fUseExternalWeightOnly; // use only external weight
Bool_t fLimitGenJetEta; // Limit the eta of the generated jets
Short_t fNMatchJets; // number of leading jets considered from the list
+ Short_t fNRPBins; // number of bins with respect to RP
UInt_t fFilterMask; // filter bit for slecected tracks
UInt_t fEventSelectionMask; // Selection information used to filter events
Int_t fAnalysisType; // Analysis type
Float_t fMinJetPt; // limits the jet p_T in addition to what already is done in the jet finder, this is important for jet matching for JF with lo threshold
Float_t fMinTrackPt; // limits the track p_T
Float_t fDeltaPhiWindow; // minium angle between dijets
+ Float_t fRPAngle; // ! angle of the reaction plane
Int_t fMultRec; // ! reconstructed track multiplicity
Int_t fMultGen; // ! generated track multiplicity
+
TProfile* fh1Xsec; //! pythia cross section and trials
TH1F* fh1Trials; //! trials are added
TH1F* fh1PtHardNoW; //! Pt har of the event without weigt
TH1F* fh1PtHardTrials; //! Number of trials
TH1F* fh1ZVtx; //! z-vtx distribution
+ TH1F* fh1RP; //! RP distribution
TH1F* fh1TmpRho; //! just temporary histo for calculation
TH2F* fh2MultRec; //! reconstructed track multiplicity
TH2F* fh2MultGen; //! generated track multiplicity
TH1F* fh1PtTracksInLow[kJetTypes]; //! track pt for all tracks
TH1F* fh1PtTracksLeadingIn[kJetTypes]; //! track pt for all tracks
- TH2F* fh2MultJetPt[kJetTypes]; //! jet pt vs. mult
TH2F* fh2NJetsPt[kJetTypes]; //! Number of found jets above threshold
TH2F* fh2NTracksPt[kJetTypes]; //! Number of tracks above threshold
TH2F* fh2LeadingTrackPtTrackPhi[kJetTypes]; //! phi distribution of accepted leading tracks
TH2F* fh2RhoPt[kJetTypes][kMaxJets+1]; //! jet shape variable rho
TH2F* fh2PsiPt[kJetTypes][kMaxJets+1]; //! jet shape variable psi
+
TH2F* fh2PhiPt[kJetTypes][kMaxJets+1]; //! phi of jets
TH2F* fh2EtaPt[kJetTypes][kMaxJets+1]; //! eta of jets
TH2F* fh2AreaPt[kJetTypes][kMaxJets+1]; //! area distribution
TH2F* fh2PhiEta[kJetTypes][kMaxJets+1]; //! eta phi distribution of jet
TH2F* fh2LTrackPtJetPt[kJetTypes][kMaxJets+1]; //! leading track within the jet vs jet pt
+
+ TH3F* fh3MultPtRP[kJetTypes][kMaxJets+1]; //! RP vs. mult of jets
+ TH3F* fh3MultTrackPtRP[kJetTypes]; //! mult vs pt
+
+
TH1F* fh1DijetMinv[kJetTypes]; //! dijet inv mass
TH2F* fh2DijetDeltaPhiPt[kJetTypes]; //! dijet delta phi vs pt
TH2F* fh2DijetAsymPt[kJetTypes]; //! dijet asym vs pt after delta phi cut
TH2F* fh2DijetPt2vsPt1[kJetTypes]; //! dijet pt2 vs pt1
TH2F* fh2DijetDifvsSum[kJetTypes]; //! dijet dif vs sum
+
TList *fHistList; //! Output list