including a histogram to compare the isolation distribution without the contribution...
authormcosenti <mcosenti@cern.ch>
Tue, 21 Oct 2014 17:45:30 +0000 (15:45 -0200)
committermcosenti <mcosenti@cern.ch>
Tue, 21 Oct 2014 17:51:40 +0000 (15:51 -0200)
PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.cxx
PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h

index 0e95d16..029150d 100644 (file)
@@ -94,6 +94,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton() :
   fPileUpRejSPD(kFALSE),
   fDistToBadChan(0),
   fInConeInvMass(""),
+  fInConePairClEt(""),
   fESD(0),
   fAOD(0),
   fVEvent(0),
@@ -127,7 +128,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton() :
   fAllIsoEtMcGamma(0),
   fAllIsoNoUeEtMcGamma(0),
   fMCDirPhotonPtEtaPhiNoClus(0),
-  fInvMassWithConeVsEtAndIso(0),
+  fEtCandIsoAndIsoWoPairEt(0),
   fInConePairedClusEtVsCandEt(0),
   fHnOutput(0),
   fQAList(0),
@@ -209,6 +210,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton(const char *name) :
   fPileUpRejSPD(kFALSE),
   fDistToBadChan(0),
   fInConeInvMass(""),
+  fInConePairClEt(""),
   fESD(0),
   fAOD(0),
   fVEvent(0),
@@ -242,7 +244,7 @@ AliAnalysisTaskEMCALIsoPhoton::AliAnalysisTaskEMCALIsoPhoton(const char *name) :
   fAllIsoEtMcGamma(0),
   fAllIsoNoUeEtMcGamma(0),
   fMCDirPhotonPtEtaPhiNoClus(0),
-  fInvMassWithConeVsEtAndIso(0),
+  fEtCandIsoAndIsoWoPairEt(0),
   fInConePairedClusEtVsCandEt(0),
   fHnOutput(0),
   fQAList(0),
@@ -385,8 +387,8 @@ void AliAnalysisTaskEMCALIsoPhoton::UserCreateOutputObjects()
   fMCDirPhotonPtEtaPhiNoClus = new TH3F("hMCDirPhotonPhiEtaNoClus","p_{T}, #eta and  #phi of prompt photons with no reco clusters;p_{T};#eta;#phi",fNBinsPt, fPtBinLowEdge,fPtBinHighEdge,154,-0.77,0.77,130,1.38,3.20);
   fOutputList->Add(fMCDirPhotonPtEtaPhiNoClus);
 
-  fInvMassWithConeVsEtAndIso = new TH3F("hInvMassWithConeVsEtAndIso","M_{cand+in_cone_clus} vs E_{T}^{cand} vs. E_{T}^{ISO} (EMC+Trk) (0.1<M02<0.3 only)",fNBinsPt, fPtBinLowEdge,fPtBinHighEdge,400,0,1,1000,0,200);
-  fOutputList->Add(fInvMassWithConeVsEtAndIso);
+  fEtCandIsoAndIsoWoPairEt = new TH3F("hEtCandIsoAndIsoWoPairEt","E_{T}^{cand} vs. E_{T}^{ISO} (EMC+Trk) (0.1<M02<0.3, 0.110<m_{#gamma#gamma}<0.165 only);E_{T}^{cand}; E_{T}^{ISO}; E_{T}^{ISO} (w/o #pi^{0} pair E_{T})",fNBinsPt, fPtBinLowEdge,fPtBinHighEdge,1000,0,200,1000,0,200);
+  fOutputList->Add(fEtCandIsoAndIsoWoPairEt);
 
   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);
@@ -794,16 +796,23 @@ void AliAnalysisTaskEMCALIsoPhoton::FillClusHists()
     Double_t onePairMass = 0;
     if(c->GetM02()>0.1 && c->GetM02()<0.3 && isCPV){
       TObjArray *inConeInvMassArr = (TObjArray*)fInConeInvMass.Tokenize(";");
+      TObjArray *inConePairClEt =  (TObjArray*)fInConePairClEt.Tokenize(";");
       nInConePairs = inConeInvMassArr->GetEntriesFast();
+      Int_t nInConePi0 = inConePairClEt->GetEntriesFast();
+      if(nInConePairs != nInConePi0)
+       printf("Inconsistent number of in cone pairs!!!\n");
       for(int ipair=0;ipair<nInConePairs;ipair++){
        TObjString *obs = (TObjString*)inConeInvMassArr->At(ipair);
+       TObjString *obet = (TObjString*)inConePairClEt->At(ipair);
        TString smass = obs->GetString();
+       TString spairEt = obet->GetString();
        Double_t pairmass = smass.Atof();
+       Double_t pairEt = spairEt.Atof();//this must be zero when inv mass outside pi0 range
        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);
+       fEtCandIsoAndIsoWoPairEt->Fill(Et,ceiso+triso,ceiso+triso-pairEt);
       }
     }
     Double_t dr = TMath::Sqrt(c->GetTrackDx()*c->GetTrackDx() + c->GetTrackDz()*c->GetTrackDz());
@@ -909,6 +918,7 @@ void AliAnalysisTaskEMCALIsoPhoton::GetCeIso(TVector3 vec, Int_t maxid, Float_t
     return;
   
   fInConeInvMass = "";
+  fInConePairClEt="";
   const Int_t nclus = clusters->GetEntries();
   //const Int_t ncells = cells->GetNumberOfCells();
   Float_t totiso=0;
@@ -982,9 +992,13 @@ void AliAnalysisTaskEMCALIsoPhoton::GetCeIso(TVector3 vec, Int_t maxid, Float_t
        lv.SetPtEtaPhiM(Et,cv.Eta(),cv.Phi(),0);
        lvec.SetPtEtaPhiM(EtCl,vec.Eta(),vec.Phi(),0);
        TLorentzVector lpair = lv + lvec;
-       fInConeInvMass += Form(";%f",lpair.M());
-       if(lpair.M()>0.11 && lpair.M()<0.165)
+       fInConeInvMass += Form("%f;",lpair.M());
+       if(lpair.M()>0.11 && lpair.M()<0.165){
          fInConePairedClusEtVsCandEt->Fill(EtCl,Et);
+         fInConePairClEt += Form("%f;",Et);
+       }
+       else 
+         fInConePairClEt += Form("%f;",0.0);
       }
       if(R<0.04)
        totcore += nEt;
index db7e2d7..109f01d 100644 (file)
@@ -128,6 +128,7 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   Bool_t                 fPileUpRejSPD;          // flag to set pile-up rejection via SPD (multiple vertices)
   Double_t               fDistToBadChan;         // distance to bad channel
   TString                fInConeInvMass;         // string to hold the array of inv. mass values of the candidate with isolation clusters
+  TString                fInConePairClEt;        // string to hold the array of Et of paired clusters in the pi0 mass (isolation clusters pairs only)
   
  private:
   AliESDEvent *fESD;      //! ESD object
@@ -165,7 +166,7 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   TH2F        *fAllIsoEtMcGamma;           //!all iso distribution vs. Et clus for clusters comming from a MC prompt photon
   TH2F        *fAllIsoNoUeEtMcGamma;       //!all iso distribution (without UE subtraction) vs. Et clus for clusters comming from a MC prompt photon
   TH3F        *fMCDirPhotonPtEtaPhiNoClus; //!pt x eta x phi for prompt photons that didn't produce clusters
-  TH3F        *fInvMassWithConeVsEtAndIso; //!Candidate Et vs. Inv Mass with in cone cluster vs. Iso(EMC+trk), only for 0.1<M02<0.3 clusters
+  TH3F        *fEtCandIsoAndIsoWoPairEt;   //!Candidate Et vs. isolation with and w/o the Et of the paired cluster in the pi0 mass, only for 0.1<M02<0.3 clusters
   TH2F        *fInConePairedClusEtVsCandEt;//!Et of the paired cluster (0.11<m<0.165 GeV) vs. candidate Et
   THnSparse   *fHnOutput;                  //!Output matrix with 7 dimensions