From: mvl Date: Mon, 21 Oct 2013 13:03:20 +0000 (+0000) Subject: Updates from Marta X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=584095b1606e4605e92da6800803a2e3597e1d9e;p=u%2Fmrichter%2FAliRoot.git Updates from Marta --- diff --git a/PWGJE/AliPWG4HighPtTrackQA.cxx b/PWGJE/AliPWG4HighPtTrackQA.cxx index fef056523d9..0dbda2eaa17 100644 --- a/PWGJE/AliPWG4HighPtTrackQA.cxx +++ b/PWGJE/AliPWG4HighPtTrackQA.cxx @@ -69,6 +69,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA() fTrackCutsTPConly(0x0), fTrackType(0), fFilterMask(0), + fIncludeNoITS(kFALSE), fSigmaConstrainedMax(-1.), fPtMax(100.), fIsPbPb(0), @@ -92,6 +93,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA() fPtSel(0), fPtPhi(0x0), fPtEta(0x0), + fPtEtaPhi(0x0), fPtDCA2D(0x0), fPtDCAZ(0x0), fPtNClustersTPC(0x0), @@ -170,6 +172,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name): fTrackCutsTPConly(0x0), fTrackType(0), fFilterMask(0), + fIncludeNoITS(kFALSE), fSigmaConstrainedMax(-1.), fPtMax(100.), fIsPbPb(0), @@ -193,6 +196,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name): fPtSel(0), fPtPhi(0x0), fPtEta(0x0), + fPtEtaPhi(0x0), fPtDCA2D(0x0), fPtDCAZ(0x0), fPtNClustersTPC(0x0), @@ -509,6 +513,7 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() { fh1NTracksReject = new TH1F("fh1NTracksReject","fh1NTracksReject",1,-0.5,0.5); fh1NTracksReject->Fill("noHybridTrack",0); + fh1NTracksReject->Fill("noITSrefit",0); fh1NTracksReject->Fill("noESDtrack",0); fh1NTracksReject->Fill("noTPCInner",0); fh1NTracksReject->Fill("FillTPC",0); @@ -532,6 +537,9 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() { fPtEta = new TH2F("fPtEta","fPtEta",fgkNPtBins,binsPt,fgkNEtaBins,binsEta); fHistList->Add(fPtEta); + + fPtEtaPhi = new TH3F("fPtEtaPhi","fPtEtaPhi",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi); + fHistList->Add(fPtEtaPhi); fPtDCA2D = new TH2F("fPtDCA2D","fPtDCA2D",fgkNPtBins,binsPt,fgkNDCA2DBins,binsDCA2D); fHistList->Add(fPtDCA2D); @@ -1232,6 +1240,13 @@ void AliPWG4HighPtTrackQA::DoAnalysisAOD() { continue; } + if(!fIncludeNoITS) { + if ((aodtrack->GetStatus()&AliESDtrack::kITSrefit)==0) { + fh1NTracksReject->Fill("noITSrefit",1); + continue; + } + } + fVariables->Reset(0.); fVariables->SetAt(aodtrack->Pt(),0); @@ -1303,6 +1318,7 @@ void AliPWG4HighPtTrackQA::FillHistograms() { fPtSel->Fill(fVariables->At(0)); fPtPhi->Fill(fVariables->At(0),fVariables->At(1)); fPtEta->Fill(fVariables->At(0),fVariables->At(2)); + fPtEtaPhi->Fill(fVariables->At(0),fVariables->At(2),fVariables->At(1)); fPtDCA2D->Fill(fVariables->At(0),fVariables->At(3)); fPtDCAZ->Fill(fVariables->At(0),fVariables->At(4)); fPtNClustersTPC->Fill(fVariables->At(0),fVariables->At(5)); diff --git a/PWGJE/AliPWG4HighPtTrackQA.h b/PWGJE/AliPWG4HighPtTrackQA.h index f7ee2877bda..a132150bc0f 100644 --- a/PWGJE/AliPWG4HighPtTrackQA.h +++ b/PWGJE/AliPWG4HighPtTrackQA.h @@ -71,11 +71,12 @@ class AliPWG4HighPtTrackQA: public AliAnalysisTaskSE { void SetDataType(DataType d) {fDataType = d;} void SetIsPbPb(Bool_t cs) {fIsPbPb = cs;} void SetCentralityClass(int cent) {fCentClass=cent;} - void SetCuts(AliESDtrackCuts* trackCuts) {fTrackCuts = trackCuts;} + void SetCuts(AliESDtrackCuts* trackCuts) {fTrackCuts = trackCuts;} void SetCutsITSLoose(AliESDtrackCuts* trackCuts) {fTrackCutsITSLoose = trackCuts;} - void SetCutsTPConly(AliESDtrackCuts* trackCuts) {fTrackCutsTPConly = trackCuts;} + void SetCutsTPConly(AliESDtrackCuts* trackCuts) {fTrackCutsTPConly = trackCuts;} void SetTrackType(Int_t trackType) {fTrackType = trackType;} - void SetFilterMask(UInt_t filterMask) {fFilterMask = filterMask;} + void SetFilterMask(UInt_t filterMask) {fFilterMask = filterMask ;} + void SetIncludeNoITS(Bool_t f) {fIncludeNoITS = f ; } void SetSigmaConstrainedMax(Double_t sigma) {fSigmaConstrainedMax=sigma;} void SetPtMax(Float_t ptmax) {fPtMax = ptmax;} @@ -110,6 +111,7 @@ class AliPWG4HighPtTrackQA: public AliAnalysisTaskSE { AliESDtrackCuts *fTrackCutsTPConly; // TPC track cuts Int_t fTrackType; // 0: global track; 1:TPConly track 2: TPConly constrained track 3: global ITSrefit 4: TPConly constrained track with QA selection based on global track UInt_t fFilterMask; // Select tracks from specific track cuts belonging to certain filter mask for AOD analysis + Bool_t fIncludeNoITS; // includes tracks with failed ITS refit Double_t fSigmaConstrainedMax; // max sigma on constrained fit Float_t fPtMax; // Maximum pT for histograms @@ -117,6 +119,7 @@ class AliPWG4HighPtTrackQA: public AliAnalysisTaskSE { Bool_t fIsPbPb; // kTRUE if PbPb Int_t fCentClass; // Select only events from predefined centrality class + /* QA variables stored in TArrayF *fVariables @@ -173,6 +176,7 @@ class AliPWG4HighPtTrackQA: public AliAnalysisTaskSE { TH1F *fPtSel; //! Pt spectrum all selected charged particles by fTrackCuts TH2F *fPtPhi; //! Pt vs Phi TH2F *fPtEta; //! Pt vs Eta + TH3F *fPtEtaPhi; //! Pt vs Eta vs Phi TH2F *fPtDCA2D; //! Pt vs DCA2D TH2F *fPtDCAZ; //! Pt vs DCAZ TH2F *fPtNClustersTPC; //! Pt vs nClustersTPC diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx index 1de5ef69874..a305602877c 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.cxx @@ -23,6 +23,8 @@ #include "AliVCaloCells.h" #include "AliJetContainer.h" #include "AliClusterContainer.h" +#include "AliEmcalTriggerPatchInfo.h" +#include "AliAODHeader.h" #include "AliAnalysisTaskEmcalJetTriggerQA.h" @@ -63,7 +65,8 @@ AliAnalysisTaskEmcalJetTriggerQA::AliAnalysisTaskEmcalJetTriggerQA() : fh3EEtaPhiCluster(0), fh3PtLeadJet1VsPatchEnergy(0), fh3PtLeadJet2VsPatchEnergy(0), - fh3PatchEnergyEtaPhiCenter(0), + fh3PatchEnergyEtaPhiCenterJ1(0), + fh3PatchEnergyEtaPhiCenterJ2(0), fh2CellEnergyVsTime(0), fh3EClusELeadingCellVsTime(0) { @@ -107,7 +110,8 @@ AliAnalysisTaskEmcalJetTriggerQA::AliAnalysisTaskEmcalJetTriggerQA(const char *n fh3EEtaPhiCluster(0), fh3PtLeadJet1VsPatchEnergy(0), fh3PtLeadJet2VsPatchEnergy(0), - fh3PatchEnergyEtaPhiCenter(0), + fh3PatchEnergyEtaPhiCenterJ1(0), + fh3PatchEnergyEtaPhiCenterJ2(0), fh2CellEnergyVsTime(0), fh3EClusELeadingCellVsTime(0) { @@ -162,9 +166,28 @@ Bool_t AliAnalysisTaskEmcalJetTriggerQA::SelectEvent() { fhNEvents->Fill(3.5); + Bool_t check = kFALSE; if(!fTriggerClass.IsNull()) { //Check if requested trigger was fired TString firedTrigClass = InputEvent()->GetFiredTriggerClasses(); + AliEmcalTriggerPatchInfo *patch = GetMainTriggerPatch(); + + // AliAODHeader *aodH = dynamic_cast(InputEvent()->GetHeader()); + // Printf("event nr in ESD: %d ntracks: %d",aodH->GetEventNumberESDFile(), InputEvent()->GetNumberOfTracks()); + // Printf("IsJetLow(): %d IsJetHigh(): %d %s",patch->IsJetLow(),patch->IsJetHigh(),firedTrigClass.Data()); + // Printf("patch E: %f eta: %f phi: %f", patch->GetPatchE(),patch->GetEtaGeo(),patch->GetPhiGeo()); + if(fTriggerClass.Contains("J1")) { //asking for high threshold trigger + if(patch->IsJetHigh()) + check = kTRUE; + } + if(fTriggerClass.Contains("J2")) { //asking for low threshold trigger + if(patch->IsJetLow() && !patch->IsJetHigh()) + check = kTRUE; + } + + if(!check) + return kFALSE; + if(!firedTrigClass.Contains(fTriggerClass)) return kFALSE; } @@ -180,117 +203,14 @@ void AliAnalysisTaskEmcalJetTriggerQA::FindTriggerPatch() { //Code to get position of trigger - if(!fGeom) - fGeom = AliEMCALGeometry::GetInstance(); - - - TString firedTrigClass = InputEvent()->GetFiredTriggerClasses(); - - AliAODCaloTrigger *trg = dynamic_cast(InputEvent()->GetCaloTrigger("EMCAL")); - trg->Reset(); - - int col, row; //FASTOR position - - Int_t nPatchNotEmpty = 0; //counter number of patches which are not empty - fMaxPatchEnergy = 0.; - while (trg->Next()) - { - - trg->GetPosition(col, row); //col (0 to 63), row (0 to 47) - - if (col > -1 && row > -1) - { - Int_t id = -1; //FASTOR index - Int_t cellIndex[4] = {-1}; - fGeom->GetAbsFastORIndexFromPositionInEMCAL(col,row,id); //phi is column, eta is row - if(id<0) continue; - - fGeom->GetCellIndexFromFastORIndex(id,cellIndex); - - Int_t ts = 0; - trg->GetL1TimeSum(ts); - - Float_t ampTrg = 0.; - trg->GetAmplitude(ampTrg); - - //L1 analysis - Int_t bit = 0; - trg->GetTriggerBits(bit); - - Bool_t bTrigJ = TestFilterBit(bit,fBitJ1|fBitJ2); - if(!bTrigJ) - continue; - - Bool_t bTrigJ1 = TestFilterBit(bit,fBitJ1); - Bool_t bTrigJ2 = TestFilterBit(bit,fBitJ2); - - if(bTrigJ1) fTriggerType = 0; - if(bTrigJ2) fTriggerType = 1; - if(!bTrigJ1 && !bTrigJ2) fTriggerType = -1; - - Double_t minPhiPatch = 10.; - Double_t maxPhiPatch = -10.; - Double_t minEtaPatch = 10.; - Double_t maxEtaPatch = -10.; - - //Get energy in trigger patch 8x8 FASTOR - Double_t patchEnergy = 0.; - Double_t sumAmp = 0.; - // const Int_t nFastOR = 8;//16; - for(Int_t fastrow = 0; fastrowGetAbsFastORIndexFromPositionInEMCAL(ncol,nrow,id); - - if(id<0) { - AliWarning(Form("%s: id smaller than 0 %d",GetName(),id)); - continue; - } - - fGeom->GetCellIndexFromFastORIndex(id,cellIndex); - for(Int_t icell=0; icell<4; icell++) { - - if(!fGeom->CheckAbsCellId(cellIndex[icell])) continue; - - Double_t amp =0., time = 0., efrac = 0; - Int_t mclabel = -1; - Short_t absId = -1; - Int_t nSupMod = -1, nModule = -1, nIphi = -1, nIeta = -1; - - fGeom->GetCellIndex(cellIndex[icell], nSupMod, nModule, nIphi, nIeta ); - - fCaloCells->GetCell(cellIndex[icell], absId, amp, time,mclabel,efrac); - - Double_t eta, phi; - fGeom->EtaPhiFromIndex(cellIndex[icell], eta, phi); - - if(phimaxPhiPatch) maxPhiPatch = phi; - if(etamaxEtaPatch) maxEtaPatch = eta; - - sumAmp+=fCaloCells->GetAmplitude(cellIndex[icell]); - patchEnergy+=amp; - - }//cells in fastor loop - }//fastor col loop - }//fastor row loop - - Double_t etaCent = minEtaPatch + 0.5*(maxEtaPatch-minEtaPatch); - Double_t phiCent = minPhiPatch + 0.5*(maxPhiPatch-minPhiPatch); - fh3PatchEnergyEtaPhiCenter->Fill(patchEnergy,etaCent,phiCent); - - if(patchEnergy>0) - if(fDebug>2) AliInfo(Form("%s: patch edges eta: %f - %f phi: %f - %f ampTrg: %f patchEnergy: %f sumAmp: %f",GetName(),minEtaPatch,maxEtaPatch,minPhiPatch,maxPhiPatch,ampTrg,patchEnergy,sumAmp)); - - if(patchEnergy>0) nPatchNotEmpty++; - - if(patchEnergy>fMaxPatchEnergy) fMaxPatchEnergy=patchEnergy; - - } - } - + AliEmcalTriggerPatchInfo *patch = GetMainTriggerPatch(); + if(patch) { + fMaxPatchEnergy = patch->GetPatchE(); + if(patch->IsJetLow() && !patch->IsJetHigh()) + fh3PatchEnergyEtaPhiCenterJ2->Fill(patch->GetPatchE(),patch->GetEtaGeo(),patch->GetPhiGeo()); + if(patch->IsJetHigh()) + fh3PatchEnergyEtaPhiCenterJ1->Fill(patch->GetPatchE(),patch->GetEtaGeo(),patch->GetPhiGeo()); + } } //________________________________________________________________________ @@ -314,106 +234,162 @@ void AliAnalysisTaskEmcalJetTriggerQA::UserCreateOutputObjects() fhNEvents = new TH1F("fhNEvents","fhNEvents;selection;N_{evt}",5,0,5); fOutput->Add(fhNEvents); - Int_t nBinsPt = 120; - Double_t minPt = -20.; - Double_t maxPt = 100.; - Int_t nBinsEta = 100; - Double_t minEta = -1.; - Double_t maxEta = 1.; - Int_t nBinsPhi = 18*8; - Double_t minPhi = 0.; - Double_t maxPhi = TMath::TwoPi(); - Int_t nBinsArea = 100; - Double_t minArea = 0.; - Double_t maxArea = 1.; - - fh3PtEtaPhiJetFull = new TH3F("fh3PtEtaPhiJetFull","fh3PtEtaPhiJetFull;#it{p}_{T}^{jet};#eta;#varphi",nBinsPt,minPt,maxPt,nBinsEta,minEta,maxEta,nBinsPhi,minPhi,maxPhi); + Int_t fgkNPtBins = 170; + Float_t kMinPt = -20.; + Float_t kMaxPt = 150.; + Double_t *binsPt = new Double_t[fgkNPtBins+1]; + for(Int_t i=0; i<=fgkNPtBins; i++) binsPt[i]=(Double_t)kMinPt + (kMaxPt-kMinPt)/fgkNPtBins*(Double_t)i ; + + Int_t fgkNPhiBins = 18*8; + Float_t kMinPhi = 0.; + Float_t kMaxPhi = 2.*TMath::Pi(); + Double_t *binsPhi = new Double_t[fgkNPhiBins+1]; + for(Int_t i=0; i<=fgkNPhiBins; i++) binsPhi[i]=(Double_t)kMinPhi + (kMaxPhi-kMinPhi)/fgkNPhiBins*(Double_t)i ; + + Int_t fgkNEtaBins = 100; + Float_t fgkEtaMin = -1.; + Float_t fgkEtaMax = 1.; + Double_t *binsEta=new Double_t[fgkNEtaBins+1]; + for(Int_t i=0; i<=fgkNEtaBins; i++) binsEta[i]=(Double_t)fgkEtaMin + (fgkEtaMax-fgkEtaMin)/fgkNEtaBins*(Double_t)i ; + + Int_t fgkNAreaBins = 100; + Float_t kMinArea = 0.; + Float_t kMaxArea = 1.; + Double_t *binsArea = new Double_t[fgkNAreaBins+1]; + for(Int_t i=0; i<=fgkNAreaBins; i++) binsArea[i]=(Double_t)kMinArea + (kMaxArea-kMinArea)/fgkNAreaBins*(Double_t)i ; + + Int_t fgkNConstBins = 100; + Float_t kMinConst = 0.; + Float_t kMaxConst = 100.; + Double_t *binsConst = new Double_t[fgkNConstBins+1]; + for(Int_t i=0; i<=fgkNConstBins; i++) binsConst[i]=(Double_t)kMinConst + (kMaxConst-kMinConst)/fgkNConstBins*(Double_t)i ; + + Int_t fgkNMeanPtBins = 200; + Float_t kMinMeanPt = 0.; + Float_t kMaxMeanPt = 20.; + Double_t *binsMeanPt = new Double_t[fgkNMeanPtBins+1]; + for(Int_t i=0; i<=fgkNMeanPtBins; i++) binsMeanPt[i]=(Double_t)kMinMeanPt + (kMaxMeanPt-kMinMeanPt)/fgkNMeanPtBins*(Double_t)i ; + + Int_t fgkNNEFBins = 101; + Float_t kMinNEF = 0.; + Float_t kMaxNEF = 1.01; + Double_t *binsNEF = new Double_t[fgkNNEFBins+1]; + for(Int_t i=0; i<=fgkNNEFBins; i++) binsNEF[i]=(Double_t)kMinNEF + (kMaxNEF-kMinNEF)/fgkNNEFBins*(Double_t)i ; + + Int_t fgkNzBins = 101; + Float_t kMinz = 0.; + Float_t kMaxz = 1.01; + Double_t *binsz = new Double_t[fgkNzBins+1]; + for(Int_t i=0; i<=fgkNzBins; i++) binsz[i]=(Double_t)kMinz + (kMaxz-kMinz)/fgkNzBins*(Double_t)i ; + + Int_t fgkNJetTypeBins = 2; + Float_t kMinJetType = -0.5; + Float_t kMaxJetType = 1.5; + Double_t *binsJetType = new Double_t[fgkNJetTypeBins+1]; + for(Int_t i=0; i<=fgkNJetTypeBins; i++) binsJetType[i]=(Double_t)kMinJetType + (kMaxJetType-kMinJetType)/fgkNJetTypeBins*(Double_t)i ; + + Int_t fgkNTimeBins = 700; + Float_t kMinTime = -400.; + Float_t kMaxTime = 1000; + Double_t *binsTime = new Double_t[fgkNTimeBins+1]; + for(Int_t i=0; i<=fgkNTimeBins; i++) binsTime[i]=(Double_t)kMinTime + (kMaxTime-kMinTime)/fgkNTimeBins*(Double_t)i ; + + Double_t enBinEdges[3][2]; + enBinEdges[0][0] = 1.; //10 bins + enBinEdges[0][1] = 0.1; + enBinEdges[1][0] = 5.; //8 bins + enBinEdges[1][1] = 0.5; + enBinEdges[2][0] = 100.;//95 bins + enBinEdges[2][1] = 1.; + + const Float_t enmin1 = 0; + const Float_t enmax1 = enBinEdges[0][0]; + const Float_t enmin2 = enmax1 ; + const Float_t enmax2 = enBinEdges[1][0]; + const Float_t enmin3 = enmax2 ; + const Float_t enmax3 = enBinEdges[2][0];//fgkEnMax; + const Int_t nbin11 = (int)((enmax1-enmin1)/enBinEdges[0][1]); + const Int_t nbin12 = (int)((enmax2-enmin2)/enBinEdges[1][1])+nbin11; + const Int_t nbin13 = (int)((enmax3-enmin3)/enBinEdges[2][1])+nbin12; + + Int_t fgkNEnBins=nbin13; + Double_t *binsEn=new Double_t[fgkNEnBins+1]; + for(Int_t i=0; i<=fgkNEnBins; i++) { + if(i<=nbin11) binsEn[i]=(Double_t)enmin1 + (enmax1-enmin1)/nbin11*(Double_t)i ; + if(i<=nbin12 && i>nbin11) binsEn[i]=(Double_t)enmin2 + (enmax2-enmin2)/(nbin12-nbin11)*((Double_t)i-(Double_t)nbin11) ; + if(i<=nbin13 && i>nbin12) binsEn[i]=(Double_t)enmin3 + (enmax3-enmin3)/(nbin13-nbin12)*((Double_t)i-(Double_t)nbin12) ; + } + + + fh3PtEtaPhiJetFull = new TH3F("fh3PtEtaPhiJetFull","fh3PtEtaPhiJetFull;#it{p}_{T}^{jet};#eta;#varphi",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi); fOutput->Add(fh3PtEtaPhiJetFull); - fh3PtEtaPhiJetCharged = new TH3F("fh3PtEtaPhiJetCharged","fh3PtEtaPhiJetCharged;#it{p}_{T}^{jet};#eta;#varphi",nBinsPt,minPt,maxPt,nBinsEta,minEta,maxEta,nBinsPhi,minPhi,maxPhi); + fh3PtEtaPhiJetCharged = new TH3F("fh3PtEtaPhiJetCharged","fh3PtEtaPhiJetCharged;#it{p}_{T}^{jet};#eta;#varphi",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi); fOutput->Add(fh3PtEtaPhiJetCharged); - fh2NJetsPtFull = new TH2F("fh2NJetsPtFull","fh2NJetsPtFull;N_{jets};#it{p}_{T}^{jet}",20,-0.5,19.5,nBinsPt,minPt,maxPt); + fh2NJetsPtFull = new TH2F("fh2NJetsPtFull","fh2NJetsPtFull;N_{jets};#it{p}_{T}^{jet}",20,-0.5,19.5,fgkNPtBins,binsPt); fOutput->Add(fh2NJetsPtFull); - fh2NJetsPtCharged = new TH2F("fh2NJetsPtCharged","fh2NJetsPtCharged;N_{jets};#it{p}_{T}^{jet}",20,-0.5,19.5,nBinsPt,minPt,maxPt); + fh2NJetsPtCharged = new TH2F("fh2NJetsPtCharged","fh2NJetsPtCharged;N_{jets};#it{p}_{T}^{jet}",20,-0.5,19.5,fgkNPtBins,binsPt); fOutput->Add(fh2NJetsPtCharged); - fh3PtEtaAreaJetFull = new TH3F("fh3PtEtaAreaJetFull","fh3PtEtaAreaJetFull;#it{p}_{T}^{jet};#eta;A",nBinsPt,minPt,maxPt,nBinsEta,minEta,maxEta,nBinsArea,minArea,maxArea); + fh3PtEtaAreaJetFull = new TH3F("fh3PtEtaAreaJetFull","fh3PtEtaAreaJetFull;#it{p}_{T}^{jet};#eta;A",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNAreaBins,binsArea); fOutput->Add(fh3PtEtaAreaJetFull); - fh3PtEtaAreaJetCharged = new TH3F("fh3PtEtaAreaJetCharged","fh3PtEtaAreaJetCharged;#it{p}_{T}^{jet};#eta;A",nBinsPt,minPt,maxPt,nBinsEta,minEta,maxEta,nBinsArea,minArea,maxArea); + fh3PtEtaAreaJetCharged = new TH3F("fh3PtEtaAreaJetCharged","fh3PtEtaAreaJetCharged;#it{p}_{T}^{jet};#eta;A",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNAreaBins,binsArea); fOutput->Add(fh3PtEtaAreaJetCharged); - Int_t nBinsConst =100; - Double_t minConst = 0.; - Double_t maxConst = 100.; - - Int_t nBinsMeanPt = 200; - Double_t minMeanPt = 0.; - Double_t maxMeanPt = 20.; - - Int_t nBinsNEF = 101; - Double_t minNEF = 0.; - Double_t maxNEF = 1.01; - - Int_t nBinsz = 101; - Double_t minz = 0.; - Double_t maxz = 1.01; - - Int_t nBinsECluster =100; - Double_t minECluster = 0.; - Double_t maxECluster = 100.; - - - fh2PtNConstituentsCharged = new TH2F("fh2PtNConstituentsCharged","fh2PtNConstituentsCharged;#it{p}_{T}^{jet};N_{charged constituents}",nBinsPt,minPt,maxPt,nBinsConst,minConst,maxConst); + fh2PtNConstituentsCharged = new TH2F("fh2PtNConstituentsCharged","fh2PtNConstituentsCharged;#it{p}_{T}^{jet};N_{charged constituents}",fgkNPtBins,binsPt,fgkNConstBins,binsConst); fOutput->Add(fh2PtNConstituentsCharged); - fh2PtNConstituents = new TH2F("fh2PtNConstituents","fh2PtNConstituents;#it{p}_{T}^{jet};N_{constituents}",nBinsPt,minPt,maxPt,nBinsConst,minConst,maxConst); + fh2PtNConstituents = new TH2F("fh2PtNConstituents","fh2PtNConstituents;#it{p}_{T}^{jet};N_{constituents}",fgkNPtBins,binsPt,fgkNConstBins,binsConst); fOutput->Add(fh2PtNConstituents); - fh2PtMeanPtConstituentsCharged = new TH2F("fh2PtMeanPtConstituentsCharged","fh2PtMeanPtConstituentsCharged;#it{p}_{T}^{jet};charged #langle #it{p}_{T} #rangle",nBinsPt,minPt,maxPt,nBinsMeanPt,minMeanPt,maxMeanPt); + fh2PtMeanPtConstituentsCharged = new TH2F("fh2PtMeanPtConstituentsCharged","fh2PtMeanPtConstituentsCharged;#it{p}_{T}^{jet};charged #langle #it{p}_{T} #rangle",fgkNPtBins,binsPt,fgkNMeanPtBins,binsMeanPt); fOutput->Add(fh2PtMeanPtConstituentsCharged); - fh2PtMeanPtConstituentsNeutral = new TH2F("fh2PtMeanPtConstituentsNeutral","fh2PtMeanPtConstituentsNeutral;#it{p}_{T}^{jet};neutral langle #it{p}_{T} #rangle",nBinsPt,minPt,maxPt,nBinsMeanPt,minMeanPt,maxMeanPt); + fh2PtMeanPtConstituentsNeutral = new TH2F("fh2PtMeanPtConstituentsNeutral","fh2PtMeanPtConstituentsNeutral;#it{p}_{T}^{jet};neutral langle #it{p}_{T} #rangle",fgkNPtBins,binsPt,fgkNMeanPtBins,binsMeanPt); fOutput->Add(fh2PtMeanPtConstituentsNeutral); - fh2PtNEF = new TH2F("fh2PtNEF","fh2PtNEF;#it{p}_{T}^{jet};NEF",nBinsPt,minPt,maxPt,nBinsNEF,minNEF,maxNEF); + fh2PtNEF = new TH2F("fh2PtNEF","fh2PtNEF;#it{p}_{T}^{jet};NEF",fgkNPtBins,binsPt,fgkNNEFBins,binsNEF); fOutput->Add(fh2PtNEF); - fh3NEFEtaPhi = new TH3F("fh3NEFEtaPhi","fh3NEFEtaPhi;NEF;#eta;#varphi",nBinsNEF,minNEF,maxNEF,nBinsEta,minEta,maxEta,nBinsPhi,minPhi,maxPhi); + fh3NEFEtaPhi = new TH3F("fh3NEFEtaPhi","fh3NEFEtaPhi;NEF;#eta;#varphi",fgkNNEFBins,binsNEF,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi); fOutput->Add(fh3NEFEtaPhi); - fh2NEFNConstituentsCharged = new TH2F("fh2NEFNConstituentsCharged","fh2NEFNConstituentsCharged;NEF;N_{charged constituents}",nBinsNEF,minNEF,maxNEF,nBinsConst,minConst,maxConst); + fh2NEFNConstituentsCharged = new TH2F("fh2NEFNConstituentsCharged","fh2NEFNConstituentsCharged;NEF;N_{charged constituents}",fgkNNEFBins,binsNEF,fgkNConstBins,binsConst); fOutput->Add(fh2NEFNConstituentsCharged); - fh2NEFNConstituentsNeutral = new TH2F("fh2NEFNConstituentsNeutral","fh2NEFNConstituentsNeutral;NEF;N_{clusters}",nBinsNEF,minNEF,maxNEF,nBinsConst,minConst,maxConst); + fh2NEFNConstituentsNeutral = new TH2F("fh2NEFNConstituentsNeutral","fh2NEFNConstituentsNeutral;NEF;N_{clusters}",fgkNNEFBins,binsNEF,fgkNConstBins,binsConst); fOutput->Add(fh2NEFNConstituentsNeutral); - fh2Ptz = new TH2F("fh2Ptz","fh2Ptz;#it{p}_{T}^{jet};z=p_{t,trk}^{proj}/p_{jet}",nBinsPt,minPt,maxPt,nBinsz,minz,maxz); + fh2Ptz = new TH2F("fh2Ptz","fh2Ptz;#it{p}_{T}^{jet};z=p_{t,trk}^{proj}/p_{jet}",fgkNPtBins,binsPt,fgkNzBins,binsz); fOutput->Add(fh2Ptz); - fh2PtzCharged = new TH2F("fh2PtzCharged","fh2Ptz;#it{p}_{T}^{ch jet};z=p_{t,trk}^{proj}/p_{ch jet}",nBinsPt,minPt,maxPt,nBinsz,minz,maxz); + fh2PtzCharged = new TH2F("fh2PtzCharged","fh2Ptz;#it{p}_{T}^{ch jet};z=p_{t,trk}^{proj}/p_{ch jet}",fgkNPtBins,binsPt,fgkNzBins,binsz); fOutput->Add(fh2PtzCharged); - fh2PtLeadJet1VsLeadJet2 = new TH2F("fh2PtLeadJet1VsLeadJet2","fh2PtLeadJet1VsLeadJet2;#it{p}_{T}^{jet 1};#it{p}_{T}^{jet 2}",nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt); + fh2PtLeadJet1VsLeadJet2 = new TH2F("fh2PtLeadJet1VsLeadJet2","fh2PtLeadJet1VsLeadJet2;#it{p}_{T}^{jet 1};#it{p}_{T}^{jet 2}",fgkNPtBins,binsPt,fgkNPtBins,binsPt); fOutput->Add(fh2PtLeadJet1VsLeadJet2); - fh3EEtaPhiCluster = new TH3F("fh3EEtaPhiCluster","fh3EEtaPhiCluster;E_{clus};#eta;#phi",nBinsECluster,minECluster,maxECluster,nBinsEta,minEta,maxEta,nBinsPhi,minPhi,maxPhi); + fh3EEtaPhiCluster = new TH3F("fh3EEtaPhiCluster","fh3EEtaPhiCluster;E_{clus};#eta;#phi",fgkNEnBins,binsEn,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi); fOutput->Add(fh3EEtaPhiCluster); - fh3PtLeadJet1VsPatchEnergy = new TH3F("fh3PtLeadJet1VsPatchEnergy","fh3PtLeadJet1VsPatchEnergy;#it{p}_{T}^{jet 1};Amplitude_{patch};trig type",nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt,2,-0.5,1.5); + fh3PtLeadJet1VsPatchEnergy = new TH3F("fh3PtLeadJet1VsPatchEnergy","fh3PtLeadJet1VsPatchEnergy;#it{p}_{T}^{jet 1};Amplitude_{patch};trig type",fgkNPtBins,binsPt,fgkNPtBins,binsPt,fgkNJetTypeBins,binsJetType); fOutput->Add(fh3PtLeadJet1VsPatchEnergy); - fh3PtLeadJet2VsPatchEnergy = new TH3F("fh3PtLeadJet2VsPatchEnergy","fh3PtLeadJet2VsPatchEnergy;#it{p}_{T}^{jet 1};Amplitude_{patch};trig type",nBinsPt,minPt,maxPt,nBinsPt,minPt,maxPt,2,-0.5,1.5); + fh3PtLeadJet2VsPatchEnergy = new TH3F("fh3PtLeadJet2VsPatchEnergy","fh3PtLeadJet2VsPatchEnergy;#it{p}_{T}^{jet 1};Amplitude_{patch};trig type",fgkNPtBins,binsPt,fgkNPtBins,binsPt,fgkNJetTypeBins,binsJetType); fOutput->Add(fh3PtLeadJet2VsPatchEnergy); - fh3PatchEnergyEtaPhiCenter = new TH3F("fh3PatchEnergyEtaPhiCenter","fh3PatchEnergyEtaPhiCenter;E_{patch};#eta;#phi",nBinsPt,minPt,maxPt,nBinsEta,minEta,maxEta,nBinsPhi,minPhi,maxPhi); - fOutput->Add(fh3PatchEnergyEtaPhiCenter); + fh3PatchEnergyEtaPhiCenterJ1 = new TH3F("fh3PatchEnergyEtaPhiCenterJ1","fh3PatchEnergyEtaPhiCenterJ1;E_{patch};#eta;#phi",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi); + fOutput->Add(fh3PatchEnergyEtaPhiCenterJ1); - fh2CellEnergyVsTime = new TH2F("fh2CellEnergyVsTime","fh2CellEnergyVsTime;E_{cell};time",100,0.,100.,700,-400,1000); + fh3PatchEnergyEtaPhiCenterJ2 = new TH3F("fh3PatchEnergyEtaPhiCenterJ2","fh3PatchEnergyEtaPhiCenterJ2;E_{patch};#eta;#phi",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi); + fOutput->Add(fh3PatchEnergyEtaPhiCenterJ2); + + fh2CellEnergyVsTime = new TH2F("fh2CellEnergyVsTime","fh2CellEnergyVsTime;E_{cell};time",fgkNEnBins,binsEn,fgkNTimeBins,binsTime); fOutput->Add(fh2CellEnergyVsTime); - fh3EClusELeadingCellVsTime = new TH3F("fh3EClusELeadingCellVsTime","fh3EClusELeadingCellVsTime;E_{cluster};E_{leading cell};time_{leading cell}",100,0.,100.,100.,0.,100.,700,-400.,1000.); + fh3EClusELeadingCellVsTime = new TH3F("fh3EClusELeadingCellVsTime","fh3EClusELeadingCellVsTime;E_{cluster};E_{leading cell};time_{leading cell}",fgkNEnBins,binsEn,fgkNEnBins,binsEn,fgkNTimeBins,binsTime); fOutput->Add(fh3EClusELeadingCellVsTime); @@ -441,6 +417,19 @@ void AliAnalysisTaskEmcalJetTriggerQA::UserCreateOutputObjects() TH1::AddDirectory(oldStatus); PostData(1, fOutput); // Post data for ALL output slots > 0 here. + + if(binsEn) delete [] binsEn; + if(binsPt) delete [] binsPt; + if(binsPhi) delete [] binsPhi; + if(binsEta) delete [] binsEta; + if(binsArea) delete [] binsArea; + if(binsConst) delete [] binsConst; + if(binsMeanPt) delete [] binsMeanPt; + if(binsNEF) delete [] binsNEF; + if(binsz) delete [] binsz; + if(binsJetType) delete [] binsJetType; + if(binsTime) delete [] binsTime; + } //________________________________________________________________________ diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h index 5e12c9fa447..43fdb5404e9 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h @@ -85,7 +85,8 @@ class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet { TH3F *fh3EEtaPhiCluster; //! cluster E, eta, phi TH3F *fh3PtLeadJet1VsPatchEnergy; //! leading jet energy vs leading patch energy vs jet trigger (J1/J2) TH3F *fh3PtLeadJet2VsPatchEnergy; //! leading jet energy vs leading patch energy vs jet trigger (J1/J2) - TH3F *fh3PatchEnergyEtaPhiCenter; //! patch energy vs eta, phi at center of patch + TH3F *fh3PatchEnergyEtaPhiCenterJ1; //! patch energy vs eta, phi at center of patch, high threshold + TH3F *fh3PatchEnergyEtaPhiCenterJ2; //! patch energy vs eta, phi at center of patch, low threshold TH2F *fh2CellEnergyVsTime; //! emcal cell energy vs time TH3F *fh3EClusELeadingCellVsTime; //! cluster energy vs energy of leading cell in cluster vs time of the leading cell @@ -93,6 +94,6 @@ class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet { AliAnalysisTaskEmcalJetTriggerQA(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented AliAnalysisTaskEmcalJetTriggerQA &operator=(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented - ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 4) + ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 5) }; #endif diff --git a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C index 11144945a78..8371cc909f9 100644 --- a/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C +++ b/PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetTriggerQA.C @@ -112,6 +112,7 @@ AliAnalysisTaskEmcalJetTriggerQA* AddTaskEmcalJetTriggerQA(TString kTracksNa task->SetTriggerClass(trigClass.Data()); task->SetCaloCellsName(kEmcalCellsName.Data()); + task->SetCaloTriggerPatchInfoName("EmcalTriggers"); task->SetCentralityEstimator(CentEst); diff --git a/PWGJE/macros/AddTaskPWG4HighPtTrackQA.C b/PWGJE/macros/AddTaskPWG4HighPtTrackQA.C index fdbe813cb18..5d5270d4f89 100644 --- a/PWGJE/macros/AddTaskPWG4HighPtTrackQA.C +++ b/PWGJE/macros/AddTaskPWG4HighPtTrackQA.C @@ -257,6 +257,10 @@ void AddTaskPWG4HighPtTrackQAAOD(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, for(cent=0; cent<4; cent++) { AliPWG4HighPtTrackQA *taskTrackQAMB = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagMB); taskTrackQAMB->SetFilterMask(filterBit); + if(strRunPeriod.Contains("LHC10h")) + taskTrackQAMB->SetIncludeNoITS(kTRUE); + else + taskTrackQAMB->SetIncludeNoITS(kFALSE); } cent = 10; @@ -264,9 +268,11 @@ void AddTaskPWG4HighPtTrackQAAOD(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, if(strRunPeriod.Contains("LHC11h")) { AliPWG4HighPtTrackQA *taskTrackQAC = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagCentral); taskTrackQAC->SetFilterMask(filterBit); - + taskTrackQAC->SetIncludeNoITS(kFALSE); + AliPWG4HighPtTrackQA *taskTrackQASC = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagSemiCentral); taskTrackQASC->SetFilterMask(filterBit); + taskTrackQASC->SetIncludeNoITS(kFALSE); } } else { @@ -275,27 +281,34 @@ void AddTaskPWG4HighPtTrackQAAOD(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, if(strRunPeriod.Contains("LHC13")) { AliPWG4HighPtTrackQA *taskTrackQAMB = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagINT7); taskTrackQAMB->SetFilterMask(768); + taskTrackQAMB->SetIncludeNoITS(kFALSE); AliPWG4HighPtTrackQA *taskTrackQAMB1 = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,5,iPhysicsSelectionFlagINT7); taskTrackQAMB1->SetFilterMask(256); + taskTrackQAMB1->SetIncludeNoITS(kFALSE); AliPWG4HighPtTrackQA *taskTrackQAMB2 = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,5,iPhysicsSelectionFlagINT7); taskTrackQAMB2->SetFilterMask(512); + taskTrackQAMB2->SetIncludeNoITS(kFALSE); if(strRunPeriod.EqualTo("LHC13d") || strRunPeriod.EqualTo("LHC13e") || strRunPeriod.EqualTo("LHC13f") || strRunPeriod.EqualTo("LHC13g")) { AliPWG4HighPtTrackQA *taskTrackQAEMCEJE = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagEMCEJE); taskTrackQAEMCEJE->SetFilterMask(768); - + taskTrackQAEMCEJE->SetIncludeNoITS(kFALSE); + AliPWG4HighPtTrackQA *taskTrackQAEMCEJE1 = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,5,iPhysicsSelectionFlagEMCEJE); taskTrackQAEMCEJE1->SetFilterMask(256); - + taskTrackQAEMCEJE1->SetIncludeNoITS(kFALSE); + AliPWG4HighPtTrackQA *taskTrackQAEMCEJE2 = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,5,iPhysicsSelectionFlagEMCEJE); taskTrackQAEMCEJE2->SetFilterMask(512); + taskTrackQAEMCEJE2->SetIncludeNoITS(kFALSE); } } else { AliPWG4HighPtTrackQA *taskTrackQAMB = ConfigureTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0,iPhysicsSelectionFlagMB); taskTrackQAMB->SetFilterMask(filterBit); + if(strRunPeriod.Contains("LHC10h")) taskTrackQAMB->SetIncludeNoITS(kTRUE); } } }