]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliAnalysisTaskHFECal.h
update for mass study
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskHFECal.h
index bfaa66d070f134be65eea582b5274f2c19d6b3e2..8e1a81f56e0bae889a7f4d331052fa8fb50d263b 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:
@@ -50,37 +52,51 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
   void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
   void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
   void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
+  void SetMassConstraint       (Bool_t MassConstraint)         { fSetMassConstraint    = MassConstraint; };
+  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);
+  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 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
-  
+  Int_t                 fqahist;  
+
   AliESDtrackCuts      *fTrackCuts;            //! ESD track cuts
   AliHFEcuts           *fCuts;                 //! Cut Collection
   Bool_t               fIdentifiedAsOutInz;    //Out Of Range in z
   Bool_t               fPassTheEventCut;       //Pass The Event Cut
   Bool_t               fRejectKinkMother;      //Reject Kink Mother
+  Bool_t                fmcData;
   Double_t             fVz;                    //z position of the primary vertex
   AliCFManager                 *fCFM;                  //! Correction Framework Manager
   AliHFEpid            *fPID;                  //! PID
   AliHFEpidQAmanager   *fPIDqa;                //! PID QA manager
   Double_t             fOpeningAngleCut;       //openingAngle cut value
   Double_t             fInvmassCut;            //invariant mass cut value
+  Bool_t                fSetMassConstraint;            // Set mass constraint
  
   int ftriggers[48][60];//!
   int ftriggersCut[48][60];//!
   int ftriggersTime[48][60];//!
  
+
   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
@@ -90,6 +106,16 @@ 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         *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 
@@ -97,14 +123,15 @@ 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
   TH1F        *fClsEAftTrigCut;        //Cluster E after trigger selection
@@ -115,6 +142,50 @@ class AliAnalysisTaskHFECal : public AliAnalysisTaskSE {
   TH2F        *fClsETime; //ClsE vs time distribution
   TH2F        *fClsETime1; //ClsE vs time distribution
   TH1F        *fTrigTimes;// trigger time
+  TH2F        *fCellCheck;// trigger time
+  */
+  //<------ MC
+  TH2F                  *fInputHFEMC;
+  TH2F                  *fInputAlle;
+  TH2F                 *fIncpTMChfe;           //! MC HFE pid electron vs centrality
+  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                 *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;
+ //<----- correction
+ TGraphErrors           *fnSigEtaCorr[7];
 
 
   AliAnalysisTaskHFECal(const AliAnalysisTaskHFECal&); // not implemented