,fIncpTM20(0)
,fInvmassLS(0)
,fInvmassULS(0)
+ ,fInvmassLSmc(0)
+ ,fInvmassULSmc(0)
,fOpeningAngleLS(0)
,fOpeningAngleULS(0)
,fPhotoElecPt(0)
,fIncpTM20(0)
,fInvmassLS(0)
,fInvmassULS(0)
+ ,fInvmassLSmc(0)
+ ,fInvmassULSmc(0)
,fOpeningAngleLS(0)
,fOpeningAngleULS(0)
,fPhotoElecPt(0)
// pi->e (Dalitz)
if(parentPID==111 && fabs(mcpid)==11 && mcMompT>0.0)
{
+ /*
if(mcMompT>0.0 && mcMompT<5.0)
{
mcWeight = 0.323*mcMompT/(TMath::Exp(-1.6+0.767*mcMompT+0.0285*mcMompT*mcMompT));
{
mcWeight = 115.0/(0.718*mcMompT*TMath::Power(mcMompT,3.65));
}
+ */
+ mcWeight = GetMCweight(mcMompT);
}
// access grand parent pi0->g->e
//if(mcGrandMompT>0.0 && mcGrandMompT<5.0)
if(pTtmp>0.0)
{
+ /*
if(pTtmp<5.0)
{
mcWeight = 0.323*pTtmp/(TMath::Exp(-1.6+0.767*pTtmp+0.0285*pTtmp*pTtmp));
{
mcWeight = 115.0/(0.718*pTtmp*TMath::Power(pTtmp,3.65));
}
+ */
+ mcWeight = GetMCweight(mcMompT);
}
}
}
if(fTPCnSigma>-1.5 && fTPCnSigma<3.0)
{
- SelectPhotonicElectron(iTracks,cent,track,fFlagPhotonicElec,fFlagConvinatElec,fTPCnSigma,m20,eop,mcele);
+ SelectPhotonicElectron(iTracks,cent,track,stack,fFlagPhotonicElec,fFlagConvinatElec,fTPCnSigma,m20,eop,mcele,mcWeight,iHijing);
}
if(fFlagPhotonicElec)oppstatus = 1.0;
if(fFlagConvinatElec)oppstatus = 2.0;
fInvmassULS = new THnSparseD("fInvmassULS", "Inv mass of ULS (e,e); cent; p_{T} (GeV/c); mass(GeV/c^2); nSigma; angle; m20cut; eop; MCele", 9, nBinspho,minpho, maxpho);
fOutputList->Add(fInvmassULS);
+ fInvmassLSmc = new THnSparseD("fInvmassLSmc", "Inv mass of LS (e,e); cent; p_{T} (GeV/c); mass(GeV/c^2); nSigma; angle; m20cut; eop; Mcele;", 9, nBinspho,minpho, maxpho);
+ fOutputList->Add(fInvmassLSmc);
+
+ fInvmassULSmc = new THnSparseD("fInvmassULSmc", "Inv mass of ULS (e,e); cent; p_{T} (GeV/c); mass(GeV/c^2); nSigma; angle; m20cut; eop; MCele", 9, nBinspho,minpho, maxpho);
+ fOutputList->Add(fInvmassULSmc);
+
fOpeningAngleLS = new TH1F("fOpeningAngleLS","Opening angle for LS pairs",100,0,1);
fOutputList->Add(fOpeningAngleLS);
//_________________________________________
//void AliAnalysisTaskHFECal::SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, Bool_t &fFlagPhotonicElec)
//void AliAnalysisTaskHFECal::SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec, Double_t nSig)
-void AliAnalysisTaskHFECal::SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec, Double_t nSig, Double_t shower, Double_t ep, Double_t mce)
+void AliAnalysisTaskHFECal::SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, AliStack *stack ,Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec, Double_t nSig, Double_t shower, Double_t ep, Double_t mce, Double_t w, Int_t ibgevent)
{
//Identify non-heavy flavour electrons using Invariant mass method
Bool_t flagPhotonicElec = kFALSE;
Bool_t flagConvinatElec = kFALSE;
+ int p1 = 0;
+ if(mce==3)
+ {
+ Int_t label = TMath::Abs(track->GetLabel());
+ TParticle* particle = stack->Particle(label);
+ p1 = particle->GetFirstMother();
+ }
+
//for(Int_t jTracks = itrack+1; jTracks<fESD->GetNumberOfTracks(); jTracks++){
for(Int_t jTracks = 0; jTracks<fESD->GetNumberOfTracks(); jTracks++){
AliESDtrack* trackAsso = fESD->GetTrack(jTracks);
}
if(itrack==jTracks)continue;
+ int p2 = 0;
+ if(mce==3)
+ {
+ Int_t label2 = TMath::Abs(trackAsso->GetLabel());
+ TParticle* particle2 = stack->Particle(label2);
+ if(particle2->GetFirstMother()>-1)
+ p2 = particle2->GetFirstMother();
+ }
+
Double_t dEdxAsso = -999., ptPrim=-999., ptAsso=-999., openingAngle = -999.;
Double_t mass=999., width = -999;
Bool_t fFlagLS=kFALSE, fFlagULS=kFALSE;
if(fFlagLS) fInvmassLS->Fill(phoinfo);
if(fFlagULS) fInvmassULS->Fill(phoinfo);
+ if(fFlagLS && ibgevent==0) fInvmassLSmc->Fill(phoinfo,w);
+ if(fFlagULS && ibgevent==0) fInvmassULSmc->Fill(phoinfo,w);
//printf("fInvmassCut %f\n",fInvmassCut);
//printf("openingAngle %f\n",fOpeningAngleCut);
if(openingAngle > fOpeningAngleCut) continue;
- if(mass<fInvmassCut && fFlagULS && !flagPhotonicElec){
+ //if(mass<fInvmassCut && fFlagULS && !flagPhotonicElec){
+ if(mass<fInvmassCut && fFlagULS && !flagPhotonicElec && (p1==p2)){
flagPhotonicElec = kTRUE;
}
if(mass<fInvmassCut && fFlagLS && !flagConvinatElec){
fFlagConvinatElec = flagConvinatElec;
}
-
+//-------------------------------------------
+//void AliAnalysisTaskHFECal::GetMCweight(double mcPi0pT)
+double AliAnalysisTaskHFECal::GetMCweight(double mcPi0pT)
+{
+ double weight = 1.0;
+
+ if(mcPi0pT>0.0 && mcPi0pT<5.0)
+ {
+ weight = 0.323*mcPi0pT/(TMath::Exp(-1.6+0.767*mcPi0pT+0.0285*mcPi0pT*mcPi0pT));
+ }
+ else
+ {
+ weight = 115.0/(0.718*mcPi0pT*TMath::Power(mcPi0pT,3.65));
+ }
+ return weight;
+}
//_________________________________________
void AliAnalysisTaskHFECal::FindTriggerClusters()
class AliCFManager;
#include "AliAnalysisTaskSE.h"
+#include "AliStack.h"
class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
public:
void SetQAHist (int qahist) {fqahist = qahist;};
AliHFEpid *GetPID() const { return fPID; }
void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
- void SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec, Double_t nSig, Double_t shower, Double_t ep, Double_t mce);
+ void SelectPhotonicElectron(Int_t itrack, Double_t cent, AliESDtrack *track, AliStack *stack, Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec, Double_t nSig, Double_t shower, Double_t ep, Double_t mce, Double_t w, Int_t ibgevent);
+ double GetMCweight(double mcPi0pT);
void FindTriggerClusters();
private:
TH2F *fIncpTM20; //! HFE pid electron vs centrality
THnSparseD *fInvmassLS; //! Inv mass of LS (e,e)
THnSparseD *fInvmassULS; //! Inv mass of ULS (e,e)
+ THnSparseD *fInvmassLSmc; //! Inv mass of LS (e,e)
+ THnSparseD *fInvmassULSmc; //! Inv mass of ULS (e,e)
TH1F *fOpeningAngleLS; //! opening angle for LS pairs
TH1F *fOpeningAngleULS; //! opening angle for ULS pairs
TH1F *fPhotoElecPt; //! photonic elec pt