including weight and inv mass axis in thnsparse
authormcosenti <mcosenti@cern.ch>
Sat, 18 Oct 2014 14:00:56 +0000 (11:00 -0300)
committermcosenti <mcosenti@cern.ch>
Sat, 18 Oct 2014 14:02:29 +0000 (11:02 -0300)
PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.cxx

index 78cabcc..0e95d16 100644 (file)
@@ -391,16 +391,17 @@ void AliAnalysisTaskEMCALIsoPhoton::UserCreateOutputObjects()
   fInConePairedClusEtVsCandEt = new TH2F("hInConePairedClusEtVsCandEt","E_{T}^{partner} vs. E_{T}^{cand} (R<0.4, 0.110<m_{#gamma#gamma}<0.165);E_{T}^{cand};E_{T}^{partner}",fNBinsPt, fPtBinLowEdge,fPtBinHighEdge,200,0,40);
   fOutputList->Add(fInConePairedClusEtVsCandEt);
 
-  Int_t nEt=fNBinsPt*5, nM02=400, nCeIso=1000, nTrIso=1000,  nAllIso=1000,  nCeIsoNoUE=1000,  nAllIsoNoUE=1000, nTrClDphi=200, nTrClDeta=100, nClEta=140, nClPhi=128, nTime=60, nMult=100, nPhoMcPt=fNBinsPt;
-  Int_t bins[] = {nEt, nM02, nCeIso, nTrIso, nAllIso, nCeIsoNoUE, nAllIsoNoUE, nTrClDphi, nTrClDeta,nClEta,nClPhi,nTime,nMult,nPhoMcPt};
+  Int_t nEt=fNBinsPt*5, nM02=400, nCeIso=1000, nTrIso=1000,  nAllIso=1000,  nCeIsoNoUE=1000,  nAllIsoNoUE=1000, nTrClDphi=200, nTrClDeta=100, nClEta=140, nClPhi=128, nTime=60, nMult=100, nPhoMcPt=fNBinsPt, nInConeMass=100;
+  Int_t bins[] = {nEt, nM02, nCeIso, nTrIso, nAllIso, nCeIsoNoUE, nAllIsoNoUE, nTrClDphi, nTrClDeta,nClEta,nClPhi,nTime,nMult,nPhoMcPt,nInConeMass};
   fNDimensions = sizeof(bins)/sizeof(Int_t);
   const Int_t ndims =   fNDimensions;
-  Double_t xmin[] = { fPtBinLowEdge,   0.,  -10.,   -10., -10., -10., -10., -0.1,-0.05, -0.7, 1.4,-0.15e-06,-0.5,fPtBinLowEdge};
-  Double_t xmax[] = { fPtBinHighEdge, 4., 190., 190., 190.,  190., 190., 0.1, 0.05, 0.7, 3.192, 0.15e-06,99.5,fPtBinHighEdge};
+  Double_t xmin[] = { fPtBinLowEdge,   0.,  -10.,   -10., -10., -10., -10., -0.1,-0.05, -0.7, 1.4,-0.15e-06,-0.5,fPtBinLowEdge,0.0};
+  Double_t xmax[] = { fPtBinHighEdge, 4., 190., 190., 190.,  190., 190., 0.1, 0.05, 0.7, 3.192, 0.15e-06,99.5,fPtBinHighEdge, 1.0};
   if(fPeriod.Contains("11h")){
     xmax[12]=3999.5;
   }
   fHnOutput =  new THnSparseF("fHnOutput","Output matrix: E_{T},M02,CeIso,TrIso,AllIso, CeIsoNoUESub, AllIsoNoUESub, d#phi_{trk},d#eta_{trk},#eta_{clus},#phi_{clus},T_{max},mult,mc-p_{T}^{#gamma}", ndims, bins, xmin, xmax);
+  fHnOutput->Sumw2();
   fOutputList->Add(fHnOutput);
 
   //QA outputs
@@ -789,19 +790,21 @@ void AliAnalysisTaskEMCALIsoPhoton::FillClusHists()
       isCPV = kTRUE;
     GetCeIso(clsVec, id, ceiso, cephiband, cecore, Et);
     GetTrIso(clsVec, triso, trphiband, trcore);
+    Int_t nInConePairs = 0;
+    Double_t onePairMass = 0;
     if(c->GetM02()>0.1 && c->GetM02()<0.3 && isCPV){
       TObjArray *inConeInvMassArr = (TObjArray*)fInConeInvMass.Tokenize(";");
-      Int_t nInConePairs = inConeInvMassArr->GetEntriesFast();
-      Double_t *inConeInvMass = new Double_t[nInConePairs];
+      nInConePairs = inConeInvMassArr->GetEntriesFast();
       for(int ipair=0;ipair<nInConePairs;ipair++){
        TObjString *obs = (TObjString*)inConeInvMassArr->At(ipair);
        TString smass = obs->GetString();
        Double_t pairmass = smass.Atof();
+       if(0==ipair && nInConePairs==1)
+         onePairMass = pairmass;
        if(fDebug)
          printf("=================+++++++++++++++Inv mass inside the cone for photon range: %1.1f,%1.1f,%1.1f+-++++-+-+-+-++-+-+-\n",Et,pairmass,ceiso+triso);
        fInvMassWithConeVsEtAndIso->Fill(Et,pairmass,ceiso+triso);
       }
-      delete [] inConeInvMass;
     }
     Double_t dr = TMath::Sqrt(c->GetTrackDx()*c->GetTrackDx() + c->GetTrackDz()*c->GetTrackDz());
     if(Et>10 && Et<15 && dr>0.025){
@@ -867,6 +870,10 @@ void AliAnalysisTaskEMCALIsoPhoton::FillClusHists()
       outputValues[11] = fAODCells->GetCellTime(id);
     outputValues[12] = fTrackMult;
     outputValues[13] = ptmc;
+    if(nInConePairs == 1)
+      outputValues[14] = onePairMass;
+    else
+      outputValues[14] = -1;
     fHnOutput->Fill(outputValues);
     if(c->E()>maxE)
       maxE = c->E();