]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliAnalysisTaskHFECal.h
updated pPb tasks
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskHFECal.h
index da5a4f1f4ff82d2329fa804c87f4ed432f7000bb..e6b0aa419d957732974b899fe853a612258eca5d 100644 (file)
@@ -19,6 +19,7 @@
 class THnSparse;
 class TH2F;
 class TLorentzVector;
+class TGraphErrors;
 
 class AliEMCALTrack;
 class AliMagF;
@@ -36,6 +37,7 @@ class AliHFEpidQAmanager;
 class AliCFManager;
 
 #include "AliAnalysisTaskSE.h"
+#include "AliStack.h"
 
 class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
  public:
@@ -49,18 +51,31 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
   
   void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
   void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
+  void SetMimpTassCut (Double_t MimpTassCut) {fMimpTassCut = MimpTassCut;};
+  void SetMimNsigassCut (Double_t MimNsigassCut) {fMimNsigassCut = MimNsigassCut;};
   void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
+  void SetMassConstraint       (Bool_t MassConstraint)         { fSetMassConstraint    = MassConstraint; };
+  void SetMassWidthCut         (Bool_t MassWidthCut)           { fSetMassWidthCut      = MassWidthCut; };
+  void SetMassCalMethod        (Bool_t KFpart)         { fSetKFpart = KFpart; };
   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, Bool_t &fFlagPhotonicElec, Bool_t &fFlagConvinatElec, Double_t nSig, Double_t shower, Double_t ep, Double_t mce, Double_t w, Int_t ibgevent, Bool_t tagpi0, Bool_t tageta);
+  void SelectPhotonicElectron2(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, Double_t w, Int_t ibgevent, Bool_t tagpi0, Bool_t tageta);
+  double SumpT(Int_t itrack, AliESDtrack *track);
+  void FindMother(TParticle* part, int &label, int &pid);
+  double GetMCweight(double mcPi0pT);
+  double GetMCweightEta(double mcEtapT);
   void FindTriggerClusters();
+  double MCEopMeanCorrection(double pTmc, float central);
+  double NsigmaCorrection(double tmpeta, float central);
  private:
   
   Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
   
   AliESDEvent          *fESD;                  //!ESD object
   AliMCEvent           *fMC;                   //!MC object
+  AliStack             *stack;                 //!MC object
   AliEMCALGeometry     *fGeom;                 // emcal geometry 
     
   TList                *fOutputList;           //! output list
@@ -77,7 +92,12 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
   AliHFEpid            *fPID;                  //! PID
   AliHFEpidQAmanager   *fPIDqa;                //! PID QA manager
   Double_t             fOpeningAngleCut;       //openingAngle cut value
+  Double_t             fMimpTassCut;   //openingAngle cut value
+  Double_t             fMimNsigassCut; //openingAngle cut value
   Double_t             fInvmassCut;            //invariant mass cut value
+  Bool_t                fSetMassConstraint;            // Set mass constraint
+  Bool_t                fSetMassWidthCut;              // Set mass constraint
+  Bool_t                fSetKFpart;            // Set mass constraint
  
   int ftriggers[48][60];//!
   int ftriggersCut[48][60];//!
@@ -86,6 +106,7 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
 
   TH1F                 *fNoEvents;             //! no of events
   THnSparseD           *fEMCAccE;              //! EMC acc
+  TH2F                 *hEMCAccE;              //! EMC acc
   TH1F                 *fTrkpt;                //! track pt
   TH2F                 *fTrkEovPBef;           //! track E/p before HFE pid
   TH2F                 *fTrkEovPAft;           //! track E/p after HFE pid
@@ -95,6 +116,18 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
   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)
+  TH2D         *fInvmassLSreco;                //! Inv mass of LS (e,e)
+  TH2D         *fInvmassULSreco;               //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassLSmc0;         //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassLSmc1;         //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassLSmc2;         //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassLSmc3;         //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassULSmc0;                //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassULSmc1;                //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassULSmc2;                //! Inv mass of ULS (e,e)
+  TH2D         *fInvmassULSmc3;                //! 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 
@@ -102,13 +135,14 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
   TH2F                 *fPhoElecPtM20;         //! Pho inclusive ele pt
   TH2F                 *fSameElecPt;           //! Same inclusive ele pt
   TH2F                 *fSameElecPtM20;                //! Same inclusive ele pt
-  
+
   TH1F                 *fTrackPtBefTrkCuts;    //! Track pt before track cuts  
   TH1F                 *fTrackPtAftTrkCuts;    //! Track pt after track cuts
   TH2F                 *fTPCnsigma;            //! TPC n sigma vs p    
   
   TH1F                 *fCent;                 //! centrality
   THnSparseD           *fEleInfo;              //! EMC acc
+  THnSparseD           *fElenSigma;            //! EMC acc
   /*
   //<---- trigger info
   TH1F       *fClsEBftTrigCut; //Cluster E before trigger selection
@@ -129,13 +163,50 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
   TH2F                 *fIncpTMChfeAll;                //! MC HFE pid electron vs centrality
   TH2F                 *fIncpTMCM20hfe;        //! MC HFE pid electron vs centrality
   TH2F                 *fIncpTMCM20hfeAll;     //! MC HFE pid electron vs centrality
-  TH2F                 *fIncpTMCpho;           //! MC HFE pid electron vs centrality
-  TH2F                 *fIncpTMCM20pho;        //! MC HFE pid electron vs centrality
-  TH2F                 *fPhoElecPtMC;          //! Pho inclusive ele pt
-  TH2F                 *fPhoElecPtMCM20;               //! Pho inclusive ele pt
-  TH2F                 *fSameElecPtMC;         //! Same inclusive ele pt
-  TH2F                 *fSameElecPtMCM20;              //! Same inclusive ele pt
-  
+  TH2F                 *fIncpTMCM20hfeCheck;   //! MC HFE pid electron vs centrality
+ THnSparseD            *fInputHFEMC_weight;            //! MC HFE pid electron vs centrality
+ THnSparseD            *fIncpTMCM20hfeCheck_weight;            //! MC HFE pid electron vs centrality
+ THnSparseD            *fIncpTMCpho;           //! MC HFE pid electron vs centrality
+ THnSparseD            *fIncpTMCM20pho;        //! MC HFE pid electron vs centrality
+ THnSparseD            *fPhoElecPtMC;          //! Pho inclusive ele pt
+ THnSparseD            *fPhoElecPtMCM20;               //! Pho inclusive ele pt
+ THnSparseD            *fSameElecPtMC;         //! Same inclusive ele pt
+ THnSparseD            *fSameElecPtMCM20;              //! Same inclusive ele pt
+ THnSparseD            *fIncpTMCM20pho_pi0e;   //! MC HFE pid electron vs centrality
+ THnSparseD            *fPhoElecPtMCM20_pi0e;          //! Pho inclusive ele pt
+ THnSparseD            *fSameElecPtMCM20_pi0e;         //! Same inclusive ele pt
+ THnSparseD            *fIncpTMCM20pho_eta;    //! MC HFE pid electron vs centrality
+ THnSparseD            *fPhoElecPtMCM20_eta;           //! Pho inclusive ele pt
+ THnSparseD            *fSameElecPtMCM20_eta;          //! Same inclusive ele pt
+ THnSparseD            *fIncpTMCpho_pi0e_TPC;  //! MC HFE pid electron vs centrality
+ THnSparseD            *fPhoElecPtMC_pi0e_TPC;         //! Pho inclusive ele pt
+ THnSparseD            *fSameElecPtMC_pi0e_TPC;                //! Same inclusive ele pt
+ TH1D                   *CheckNclust;  
+ TH1D                   *CheckNits;  
+ THnSparseD             *Hpi0pTcheck; 
+ THnSparseD             *HETApTcheck; 
+ TH2D                   *HphopTcheck; 
+ TH2D                   *HDpTcheck; 
+ TH2D                   *HBpTcheck; 
+ TH1D                   *fpTCheck; 
+ TH2D                   *fMomDtoE; 
+ TH2D                   *fLabelCheck;
+ TH2D                   *fgeoFake;
+ TH2D                   *fFakeTrk0;
+ TH2D                   *fFakeTrk1;
+ TH2D                   *ftimingEle;
+ TH2D                   *fIncMaxE;
+ TH2D                   *fIncReco;
+ TH2D                   *fPhoReco;
+ TH2D                   *fSamReco; 
+ TH2D                   *fIncRecoMaxE;
+ TH2D                   *fPhoRecoMaxE;
+ TH2D                   *fSamRecoMaxE; 
+
+ //<----- correction
+ TGraphErrors           *fnSigEtaCorr[7];
+
+
   AliAnalysisTaskHFECal(const AliAnalysisTaskHFECal&); // not implemented
   AliAnalysisTaskHFECal& operator=(const AliAnalysisTaskHFECal&); // not implemented