From f052ef6f6080ad45ae77ba6c68062902d26bed20 Mon Sep 17 00:00:00 2001 From: mbroz Date: Thu, 21 Nov 2013 13:34:37 +0000 Subject: [PATCH] Updating ESD side of the QA part --- PWGUD/UPC/AddTaskUpcPsi2s.C | 2 +- PWGUD/UPC/AliAnalysisTaskUpcPsi2s.cxx | 367 +++++++++++++++++++------- PWGUD/UPC/AliAnalysisTaskUpcPsi2s.h | 16 +- 3 files changed, 276 insertions(+), 109 deletions(-) diff --git a/PWGUD/UPC/AddTaskUpcPsi2s.C b/PWGUD/UPC/AddTaskUpcPsi2s.C index 7bb58a45f14..a577d5177cb 100644 --- a/PWGUD/UPC/AddTaskUpcPsi2s.C +++ b/PWGUD/UPC/AddTaskUpcPsi2s.C @@ -28,7 +28,7 @@ AliAnalysisTaskUpcPsi2s *AddTaskUpcPsi2s(Bool_t runTree = kTRUE,Bool_t runHist = AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); AliAnalysisDataContainer *coutput = mgr->CreateContainer("JPsiTree", TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName())); AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("Psi2sTree", TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName())); - AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("Counter", TH1I::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName())); + AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("ListTrig", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName())); AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("ListHist", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName())); // Connect input/output diff --git a/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.cxx b/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.cxx index 0c4b8cefbc7..4975d7922e7 100644 --- a/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.cxx +++ b/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.cxx @@ -61,14 +61,14 @@ using std::endl; //_____________________________________________________________________________ AliAnalysisTaskUpcPsi2s::AliAnalysisTaskUpcPsi2s() - : AliAnalysisTaskSE(),fType(0),fRunTree(kTRUE),fRunHist(kTRUE),hCounter(0),fJPsiTree(0),fPsi2sTree(0), + : AliAnalysisTaskSE(),fType(0),fRunTree(kTRUE),fRunHist(kTRUE),fJPsiTree(0),fPsi2sTree(0), fRunNum(0),fPerNum(0),fOrbNum(0),fL0inputs(0),fL1inputs(0),fVtxContrib(0),fBCrossNum(0),fNtracklets(0), fZDCAenergy(0),fZDCCenergy(0),fV0Adecision(0),fV0Cdecision(0), fDataFilnam(0),fRecoPass(0),fEvtNum(0), fJPsiAODTracks(0),fJPsiESDTracks(0),fPsi2sAODTracks(0),fPsi2sESDTracks(0), - fListHist(0),fHistTriggersPerRun(0),fHistNeventsJPsi(0),fHistTPCsignalJPsi(0),fHistDiLeptonPtJPsi(0),fHistDiElectronMass(0),fHistDiMuonMass(0), - fHistNeventsPsi2s(0),fHistPsi2sMassVsPt(0),fHistPsi2sMassCoherent(0), - fHistK0sMass(0) + fListTrig(0),fHistUpcTriggersPerRun(0),fHistZedTriggersPerRun(0),fHistCvlnTriggersPerRun(0), + fListHist(0),fHistNeventsJPsi(0),fHistTPCsignalJPsi(0),fHistDiLeptonPtJPsi(0),fHistDiElectronMass(0),fHistDiMuonMass(0), + fHistNeventsPsi2s(0),fHistPsi2sMassVsPt(0),fHistPsi2sMassCoherent(0) { @@ -79,14 +79,14 @@ AliAnalysisTaskUpcPsi2s::AliAnalysisTaskUpcPsi2s() //_____________________________________________________________________________ AliAnalysisTaskUpcPsi2s::AliAnalysisTaskUpcPsi2s(const char *name) - : AliAnalysisTaskSE(name),fType(0),fRunTree(kTRUE),fRunHist(kTRUE),hCounter(0),fJPsiTree(0),fPsi2sTree(0), + : AliAnalysisTaskSE(name),fType(0),fRunTree(kTRUE),fRunHist(kTRUE),fJPsiTree(0),fPsi2sTree(0), fRunNum(0),fPerNum(0),fOrbNum(0),fL0inputs(0),fL1inputs(0),fVtxContrib(0),fBCrossNum(0),fNtracklets(0), fZDCAenergy(0),fZDCCenergy(0),fV0Adecision(0),fV0Cdecision(0), fDataFilnam(0),fRecoPass(0),fEvtNum(0), fJPsiAODTracks(0),fJPsiESDTracks(0),fPsi2sAODTracks(0),fPsi2sESDTracks(0), - fListHist(0),fHistTriggersPerRun(0),fHistNeventsJPsi(0),fHistTPCsignalJPsi(0),fHistDiLeptonPtJPsi(0),fHistDiElectronMass(0),fHistDiMuonMass(0), - fHistNeventsPsi2s(0),fHistPsi2sMassVsPt(0),fHistPsi2sMassCoherent(0), - fHistK0sMass(0) + fListTrig(0),fHistUpcTriggersPerRun(0),fHistZedTriggersPerRun(0),fHistCvlnTriggersPerRun(0), + fListHist(0),fHistNeventsJPsi(0),fHistTPCsignalJPsi(0),fHistDiLeptonPtJPsi(0),fHistDiElectronMass(0),fHistDiMuonMass(0), + fHistNeventsPsi2s(0),fHistPsi2sMassVsPt(0),fHistPsi2sMassCoherent(0) { @@ -98,7 +98,7 @@ AliAnalysisTaskUpcPsi2s::AliAnalysisTaskUpcPsi2s(const char *name) DefineOutput(1, TTree::Class()); DefineOutput(2, TTree::Class()); - DefineOutput(3, TH1I::Class()); + DefineOutput(3, TList::Class()); DefineOutput(4, TList::Class()); }//AliAnalysisTaskUpcPsi2s @@ -123,9 +123,9 @@ AliAnalysisTaskUpcPsi2s::~AliAnalysisTaskUpcPsi2s() delete fPsi2sTree; fPsi2sTree = 0x0; } - if(hCounter){ - delete hCounter; - hCounter = 0x0; + if(fListTrig){ + delete fListTrig; + fListTrig = 0x0; } if(fListHist){ delete fListHist; @@ -138,8 +138,6 @@ AliAnalysisTaskUpcPsi2s::~AliAnalysisTaskUpcPsi2s() //_____________________________________________________________________________ void AliAnalysisTaskUpcPsi2s::UserCreateOutputObjects() { - hCounter = new TH1I("hCounter", "hCounter", 34000, 1., 34001.); - //input file fDataFilnam = new TObjString(); fDataFilnam->SetString(""); @@ -202,12 +200,21 @@ void AliAnalysisTaskUpcPsi2s::UserCreateOutputObjects() fPsi2sTree ->Branch("fPsi2sAODTracks", &fPsi2sAODTracks); } + fListTrig = new TList(); + fListTrig ->SetOwner(); + + fHistUpcTriggersPerRun = new TH1D("fHistUpcTriggersPerRun", "fHistUpcTriggersPerRun", 3000, 167000.5, 170000.5); + fListTrig->Add(fHistUpcTriggersPerRun); + + fHistZedTriggersPerRun = new TH1D("fHistZedTriggersPerRun", "fHistZedTriggersPerRun", 3000, 167000.5, 170000.5); + fListTrig->Add(fHistZedTriggersPerRun); + + fHistCvlnTriggersPerRun = new TH1D("fHistCvlnTriggersPerRun", "fHistCvlnTriggersPerRun", 3000, 167000.5, 170000.5); + fListTrig->Add(fHistCvlnTriggersPerRun); + fListHist = new TList(); fListHist ->SetOwner(); - fHistTriggersPerRun = new TH1D("fHistTriggersPerRun", "fHistTriggersPerRun", 3000, 167000.5, 170000.5); - fListHist->Add(fHistTriggersPerRun); - TString CutNameJPsi[12] = {"Analyzed","Triggered","Vertex cut","V0 decision","Two good tracks", "Like sign","Oposite sign","One p_{T}>1", "Both p_{T}>1","PID","Dimuom","Dielectron"}; fHistNeventsJPsi = new TH1D("fHistNeventsJPsi","fHistNeventsPsi2s",12,0.5,12.5); @@ -244,12 +251,9 @@ void AliAnalysisTaskUpcPsi2s::UserCreateOutputObjects() fHistPsi2sMassCoherent->GetXaxis()->SetTitle("Invariant mass(l^{+}l^{-}#pi^{+}#pi^{-}) (GeV/c)"); fListHist->Add(fHistPsi2sMassCoherent); - fHistK0sMass = new TH1D("fHistK0sMass","fHistK0sMass",200,0.4,0.6); - fListHist->Add(fHistK0sMass); - PostData(1, fJPsiTree); PostData(2, fPsi2sTree); - PostData(3, hCounter); + PostData(3, fListTrig); PostData(4, fListHist); }//UserCreateOutputObjects @@ -260,14 +264,44 @@ void AliAnalysisTaskUpcPsi2s::UserExec(Option_t *) //cout<<"#################### Next event ##################"<GetRunNumber(); + //Trigger + TString trigger = aod->GetFiredTriggerClasses(); + + if(trigger.Contains("CCUP4-B")) fHistUpcTriggersPerRun->Fill(fRunNum); //Upc triggers + + if(trigger.Contains("CVLN-B")) {fHistCvlnTriggersPerRun->Fill(fRunNum); cout<<"!!! CLVN-B CLASS FIRED !!!"<GetHeader()->IsTriggerInputFired("1ZED")) fHistZedTriggersPerRun->Fill(fRunNum); //1ZED trigger inputs + + fL1inputs = aod->GetHeader()->GetL1TriggerInputs(); + if(fL1inputs & (1 << 18)) fHistZedTriggersPerRun->Fill(fRunNum); //1ZED trigger inputs + +PostData(3, fListTrig); + +} +//_____________________________________________________________________________ void AliAnalysisTaskUpcPsi2s::RunAODhist() { @@ -294,9 +328,6 @@ void AliAnalysisTaskUpcPsi2s::RunAODhist() if( !trigger.Contains("CCUP4-B") ) return; - fRunNum = aod ->GetRunNumber(); - fHistTriggersPerRun->Fill(fRunNum); - fHistNeventsJPsi->Fill(2); fHistNeventsPsi2s->Fill(2); @@ -308,15 +339,19 @@ void AliAnalysisTaskUpcPsi2s::RunAODhist() fHistNeventsJPsi->Fill(3); fHistNeventsPsi2s->Fill(3); - //VZERO, ZDC AliAODVZERO *fV0data = aod ->GetVZEROData(); - //AliAODZDC *fZDCdata = aod->GetZDCData(); + AliAODZDC *fZDCdata = aod->GetZDCData(); fV0Adecision = fV0data->GetV0ADecision(); fV0Cdecision = fV0data->GetV0CDecision(); if(fV0Adecision != AliAODVZERO::kV0Empty || fV0Cdecision != AliAODVZERO::kV0Empty) return; + fZDCAenergy = fZDCdata->GetZNATowerEnergy()[0]; + fZDCCenergy = fZDCdata->GetZNCTowerEnergy()[0]; + + if( fZDCAenergy > 12000 || fZDCCenergy > 12000) return; + fHistNeventsJPsi->Fill(4); fHistNeventsPsi2s->Fill(4); @@ -440,46 +475,6 @@ void AliAnalysisTaskUpcPsi2s::RunAODhist() } } - - //---------------------------------K0s + K0s loop - very experimental-------------------- - nGoodTracks = 0; - //V0s loop - for(Int_t iV0=0; iV0GetNumberOfV0s(); iV0++) { - AliAODv0 *v0 = aod->GetV0(iV0); - if( !v0 ) continue; - Bool_t lOnFlyStatus = v0->GetOnFlyStatus(); - if (lOnFlyStatus) continue; - - AliAODTrack *pTrack=(AliAODTrack *)v0->GetDaughter(0); //0->Positive Daughter - AliAODTrack *nTrack=(AliAODTrack *)v0->GetDaughter(1); //1->Negative Daughter - if (!pTrack || !nTrack) continue; - - if ( pTrack->Charge() == nTrack->Charge())continue; - - if(!(pTrack->GetStatus() & AliESDtrack::kTPCrefit) ) continue; - if(!(nTrack->GetStatus() & AliESDtrack::kTPCrefit) ) continue; - if(pTrack->GetTPCNcls() < 50)continue; - if(nTrack->GetTPCNcls() < 50)continue; - if(pTrack->Chi2perNDF() > 4)continue; - if(nTrack->Chi2perNDF() > 4)continue; - - Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0}; - if(!pTrack->PropagateToDCA(fAODVertex,aod->GetMagneticField(),300.,dca,cov)) continue; - if(TMath::Abs(dca[1]) > 2) continue; - if(!nTrack->PropagateToDCA(fAODVertex,aod->GetMagneticField(),300.,dca,cov)) continue; - if(TMath::Abs(dca[1]) > 2) continue; - - TrackIndex[nGoodTracks] = iV0; - nGoodTracks++; - if(nGoodTracks > 2) break; - }//V0s loop - if(nGoodTracks == 2){ - for(Int_t i=0; i<2; i++){ - AliAODv0 *v0 = aod->GetV0(TrackIndex[i]); - fHistK0sMass->Fill(v0->MassK0Short()); - } - } - PostData(4, fListHist); } @@ -498,22 +493,10 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree() fEvtNum = ((TTree*) GetInputData(0))->GetTree()->GetReadEntry(); fRunNum = aod ->GetRunNumber(); - hCounter->Fill( 1 ); - //Trigger TString trigger = aod->GetFiredTriggerClasses(); - fTrigger[0] = trigger.Contains("CINT7-B"); - fTrigger[1] = trigger.Contains("CCUP4-B"); // CE - fTrigger[2] = trigger.Contains("CCUP4-E"); // CE - - Bool_t isTRG = kFALSE; - for(Int_t i=1; iFill( fRunNum - 167806 + 1 + i*2000 );} - } - if( !isTRG ) {PostData(3, hCounter); return;} - - hCounter->Fill( 2 ); + if( !trigger.Contains("CCUP4-B") ) return; //trigger inputs fL0inputs = aod->GetHeader()->GetL0TriggerInputs(); @@ -569,7 +552,7 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree() Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0}; trk->PropagateToDCA(fAODVertex,aod->GetMagneticField(),300.,dca,cov); - trk->SetDCA(dca[0],dca[1]); //to get DCAxy trk->DCA(); to get DCAz trk->ZatDCA(); + trk->SetDCA(dca[0],dca[1]); //to get DCAxy trk->DCA(); to get DCAz trk->ZAtDCA(); new((*fJPsiAODTracks)[i]) AliAODTrack(*trk); } @@ -584,20 +567,216 @@ void AliAnalysisTaskUpcPsi2s::RunAODtree() Double_t dca[2] = {0.0,0.0}, cov[3] = {0.0,0.0,0.0}; trk->PropagateToDCA(fAODVertex,aod->GetMagneticField(),300.,dca,cov); - trk->SetDCA(dca[0],dca[1]); //to get DCAxy trk->DCA(); to get DCAz trk->ZatDCA(); + trk->SetDCA(dca[0],dca[1]); //to get DCAxy trk->DCA(); to get DCAz trk->ZAtDCA(); new((*fPsi2sAODTracks)[i]) AliAODTrack(*trk); } fPsi2sTree ->Fill(); PostData(2, fPsi2sTree); } - - PostData(3, hCounter); }//RunAOD //_____________________________________________________________________________ -void AliAnalysisTaskUpcPsi2s::RunESD() +void AliAnalysisTaskUpcPsi2s::RunESDtrig() +{ + + //input event + AliESDEvent *esd = (AliESDEvent*) InputEvent(); + if(!esd) return; + + fRunNum = esd ->GetRunNumber(); + //Trigger + TString trigger = esd->GetFiredTriggerClasses(); + + if(trigger.Contains("CCUP4-B")) fHistUpcTriggersPerRun->Fill(fRunNum); //Upc triggers + + if(trigger.Contains("CVLN-B")) fHistCvlnTriggersPerRun->Fill(fRunNum); //CVLN-B triggers + + if(esd->GetHeader()->IsTriggerInputFired("1ZED")) fHistZedTriggersPerRun->Fill(fRunNum); //1ZED trigger inputs + +PostData(3, fListTrig); + +} +//_____________________________________________________________________________ +void AliAnalysisTaskUpcPsi2s::RunESDhist() +{ + + TDatabasePDG *pdgdat = TDatabasePDG::Instance(); + + TParticlePDG *partMuon = pdgdat->GetParticle( 13 ); + Double_t muonMass = partMuon->Mass(); + + TParticlePDG *partElectron = pdgdat->GetParticle( 11 ); + Double_t electronMass = partElectron->Mass(); + + TParticlePDG *partPion = pdgdat->GetParticle( 211 ); + Double_t pionMass = partPion->Mass(); + + //input event + AliESDEvent *esd = (AliESDEvent*) InputEvent(); + if(!esd) return; + + fHistNeventsJPsi->Fill(1); + fHistNeventsPsi2s->Fill(1); + + //Trigger + TString trigger = esd->GetFiredTriggerClasses(); + + if( !trigger.Contains("CCUP4-B") ) return; + + fHistNeventsJPsi->Fill(2); + fHistNeventsPsi2s->Fill(2); + + //primary vertex + AliESDVertex *fESDVertex = (AliESDVertex*) esd->GetPrimaryVertex(); + fVtxContrib = fESDVertex->GetNContributors(); + if(fVtxContrib < 2) return; + + fHistNeventsJPsi->Fill(3); + fHistNeventsPsi2s->Fill(3); + + //VZERO, ZDC + AliESDVZERO *fV0data = esd->GetVZEROData(); + AliESDZDC *fZDCdata = esd->GetESDZDC(); + + fV0Adecision = fV0data->GetV0ADecision(); + fV0Cdecision = fV0data->GetV0CDecision(); + if(fV0Adecision != AliESDVZERO::kV0Empty || fV0Cdecision != AliESDVZERO::kV0Empty) return; + + fZDCAenergy = fZDCdata->GetZN2TowerEnergy()[0]; + fZDCCenergy = fZDCdata->GetZN1TowerEnergy()[0]; + if( fZDCAenergy > 12000 || fZDCCenergy > 12000) return; + + fHistNeventsJPsi->Fill(4); + fHistNeventsPsi2s->Fill(4); + + Int_t nGoodTracks=0; + //Two tracks loop + Int_t TrackIndex[5] = {-1,-1,-1,-1,-1}; + + TLorentzVector vLepton[4], vPion[4], vCandidate, vDilepton; + Short_t qLepton[4], qPion[4]; + UInt_t nLepton=0, nPion=0, nHighPt=0; + Double_t jRecTPCsignal[5]; + Int_t mass[3]={-1,-1,-1}; + + //Track loop + for(Int_t itr=0; itrGetNumberOfTracks(); itr++) { + AliESDtrack *trk = esd->GetTrack(itr); + if( !trk ) continue; + + if(!(trk->GetStatus() & AliESDtrack::kTPCrefit) ) continue; + if(!(trk->GetStatus() & AliESDtrack::kITSrefit) ) continue; + if(trk->GetTPCNcls() < 50)continue; + if(trk->GetTPCchi2()/trk->GetTPCNcls() > 4)continue; + Float_t dca[2] = {0.0,0.0}; AliExternalTrackParam cParam; + if(!trk->RelateToVertex(fESDVertex, esd->GetMagneticField(),300.,&cParam)) continue; + trk->GetImpactParameters(dca[0],dca[1]); + if(TMath::Abs(dca[1]) > 2) continue; + + TrackIndex[nGoodTracks] = itr; + nGoodTracks++; + if(nGoodTracks > 4) break; + }//Track loop + + if(nGoodTracks == 2){ + fHistNeventsJPsi->Fill(5); + for(Int_t i=0; i<2; i++){ + AliESDtrack *trk = esd->GetTrack(TrackIndex[i]); + if(trk->Pt() > 1) nHighPt++; + jRecTPCsignal[nLepton] = trk->GetTPCsignal(); + qLepton[nLepton] = trk->Charge(); + if(jRecTPCsignal[nLepton] > 40 && jRecTPCsignal[nLepton] < 70){ + vLepton[nLepton].SetPtEtaPhiM(trk->Pt(), trk->Eta(), trk->Phi(), muonMass); + mass[nLepton] = 0; + } + if(jRecTPCsignal[nLepton] > 70 && jRecTPCsignal[nLepton] < 100){ + vLepton[nLepton].SetPtEtaPhiM(trk->Pt(), trk->Eta(), trk->Phi(), electronMass); + mass[nLepton] = 1; + } + nLepton++; + } + if(nLepton == 2){ + if(qLepton[0]*qLepton[1] > 0) fHistNeventsJPsi->Fill(6); + if(qLepton[0]*qLepton[1] < 0){ + fHistNeventsJPsi->Fill(7); + if(nHighPt > 0){ + fHistNeventsJPsi->Fill(8); + fHistTPCsignalJPsi->Fill(jRecTPCsignal[0],jRecTPCsignal[1]); + if(nHighPt == 2) fHistNeventsJPsi->Fill(9); + if(mass[0] == mass[1] && mass[0] != -1) { + fHistNeventsJPsi->Fill(10); + vCandidate = vLepton[0]+vLepton[1]; + if( vCandidate.M() > 2.8 && vCandidate.M() < 3.2) fHistDiLeptonPtJPsi->Fill(vLepton[0].Pt(),vLepton[1].Pt()); + if(mass[0] == 0) { + fHistDiMuonMass->Fill(vCandidate.M()); + fHistNeventsJPsi->Fill(11); + } + if(mass[0] == 1) { + fHistDiElectronMass->Fill(vCandidate.M()); + fHistNeventsJPsi->Fill(12); + } + } + } + } + } + } + nLepton=0; nPion=0; nHighPt=0; + mass[0]= -1; mass[1]= -1, mass[2]= -1; + + if(nGoodTracks == 4){ + fHistNeventsPsi2s->Fill(5); + for(Int_t i=0; i<4; i++){ + AliESDtrack *trk = esd->GetTrack(TrackIndex[i]); + + if(trk->Pt() > 1){ + jRecTPCsignal[nLepton] = trk->GetTPCsignal(); + qLepton[nLepton] = trk->Charge(); + if(jRecTPCsignal[nLepton] > 40 && jRecTPCsignal[nLepton] < 70){ + vLepton[nLepton].SetPtEtaPhiM(trk->Pt(), trk->Eta(), trk->Phi(), muonMass); + mass[nLepton] = 0; + } + if(jRecTPCsignal[nLepton] > 70 && jRecTPCsignal[nLepton] < 100){ + vLepton[nLepton].SetPtEtaPhiM(trk->Pt(), trk->Eta(), trk->Phi(), electronMass); + mass[nLepton] = 1; + } + nLepton++; + } + else{ + qPion[nPion] = trk->Charge(); + vPion[nPion].SetPtEtaPhiM(trk->Pt(), trk->Eta(), trk->Phi(), pionMass); + nPion++; + } + + if(nLepton > 2 || nPion > 2) break; + } + if((nLepton == 2) && (nPion == 2)){ + fHistNeventsPsi2s->Fill(6); + if(qLepton[0]*qLepton[1] > 0) fHistNeventsPsi2s->Fill(7); + if(qPion[0]*qPion[1] > 0) fHistNeventsPsi2s->Fill(8); + if((qLepton[0]*qLepton[1] > 0) && (qPion[0]*qPion[1] > 0)) fHistNeventsPsi2s->Fill(9); + if((qLepton[0]*qLepton[1] < 0) && (qPion[0]*qPion[1] < 0)){ + fHistNeventsPsi2s->Fill(10); + if(mass[0] == mass[1]) { + fHistNeventsPsi2s->Fill(11); + vCandidate = vLepton[0]+vLepton[1]+vPion[0]+vPion[1]; + vDilepton = vLepton[0]+vLepton[1]; + fHistPsi2sMassVsPt->Fill(vCandidate.M(),vCandidate.Pt()); + if(vCandidate.Pt() < 0.15) fHistPsi2sMassCoherent->Fill(vCandidate.M()); + if(mass[0] == 0) fHistNeventsPsi2s->Fill(12); + if(mass[0] == 1) fHistNeventsPsi2s->Fill(13); + } + } + } + } + + PostData(4, fListHist); + +} + +//_____________________________________________________________________________ +void AliAnalysisTaskUpcPsi2s::RunESDtree() { //input event @@ -611,22 +790,10 @@ void AliAnalysisTaskUpcPsi2s::RunESD() fEvtNum = ((TTree*) GetInputData(0))->GetTree()->GetReadEntry(); fRunNum = esd->GetRunNumber(); - hCounter->Fill( 1 ); - //Trigger TString trigger = esd->GetFiredTriggerClasses(); - fTrigger[0] = trigger.Contains("CINT7-B"); - fTrigger[1] = trigger.Contains("CCUP4-B"); // CE - fTrigger[2] = trigger.Contains("CCUP4-E"); // CE - - Bool_t isTRG = kFALSE; - for(Int_t i=1; iFill( fRunNum - 167806 + 1 + i*2000 );} - } - if( !isTRG ) {PostData(3, hCounter); return;} - - hCounter->Fill( 2 ); + if( !trigger.Contains("CCUP4-B") ) return; //trigger inputs fL0inputs = esd->GetHeader()->GetL0TriggerInputs(); @@ -702,8 +869,6 @@ void AliAnalysisTaskUpcPsi2s::RunESD() fPsi2sTree ->Fill(); PostData(2, fPsi2sTree); } - - PostData(3, hCounter); }//RunESD diff --git a/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.h b/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.h index f8d5519b424..e542b6d0e9a 100644 --- a/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.h +++ b/PWGUD/UPC/AliAnalysisTaskUpcPsi2s.h @@ -23,9 +23,12 @@ class AliAnalysisTaskUpcPsi2s : public AliAnalysisTaskSE { virtual void Init(); virtual void UserCreateOutputObjects(); virtual void UserExec(Option_t *option); + virtual void RunAODtrig(); virtual void RunAODhist(); virtual void RunAODtree(); - virtual void RunESD(); + virtual void RunESDtrig(); + virtual void RunESDhist(); + virtual void RunESDtree(); virtual void Terminate(Option_t *); void SetRunTree(Bool_t runTree){fRunTree = runTree;} void SetRunHist(Bool_t runHist){fRunHist = runHist;} @@ -35,9 +38,6 @@ class AliAnalysisTaskUpcPsi2s : public AliAnalysisTaskSE { Bool_t fRunTree; Bool_t fRunHist; - //counter - TH1I *hCounter; //! - //event tree TTree *fJPsiTree; TTree *fPsi2sTree; @@ -62,8 +62,12 @@ class AliAnalysisTaskUpcPsi2s : public AliAnalysisTaskSE { TClonesArray *fPsi2sAODTracks; TClonesArray *fPsi2sESDTracks; + TList *fListTrig; + TH1D *fHistUpcTriggersPerRun; + TH1D *fHistZedTriggersPerRun; + TH1D *fHistCvlnTriggersPerRun; + TList *fListHist; - TH1D *fHistTriggersPerRun; TH1D *fHistNeventsJPsi; TH2D *fHistTPCsignalJPsi; TH2D *fHistDiLeptonPtJPsi; @@ -74,8 +78,6 @@ class AliAnalysisTaskUpcPsi2s : public AliAnalysisTaskSE { TH2D *fHistPsi2sMassVsPt; TH1D *fHistPsi2sMassCoherent; - TH1D *fHistK0sMass; - AliAnalysisTaskUpcPsi2s(const AliAnalysisTaskUpcPsi2s&); //not implemented AliAnalysisTaskUpcPsi2s& operator =(const AliAnalysisTaskUpcPsi2s&); //not implemented -- 2.43.0