]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h
including mc truth in the hnsparse
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALIsoPhoton.h
index 4ba112f98438e1c8f4a9b86e5824f5937f2d7ffc..07ac709e26c34e25217b0e0bc85acce245c9998b 100644 (file)
@@ -5,6 +5,7 @@
 
 class TH1F;
 class TH2F;
+class TH3F;
 class THnSparse;
 class TList;
 class TObjArray;
@@ -14,6 +15,9 @@ class AliESDEvent;
 class AliESDtrack;
 class AliESDtrackCuts;
 class AliVCluster;
+class AliMCEvent;
+class AliStack;
+class TParticle;
 
 #include "AliAnalysisTaskSE.h"
 
@@ -32,6 +36,10 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   Double_t               GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; 
   void                   GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
   void                   FillClusHists();
+  void                   FillMcHists();
+  Float_t                   GetClusSource(const AliVCluster *cluster);
+  void                   FollowGamma();
+  void                   GetDaughtersInfo(const int firstd, const int lastd, const int selfid, const char *indputindent);
   void                   SetExotCut(Double_t c)                 { fExoticCut          = c;       }
   void                   SetGeoName(const char *n)              { fGeoName            = n;       }
   void                   SetIsoConeR(Double_t r)                { fIsoConeR           = r;       }
@@ -39,6 +47,10 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   void                   SetTriggerBit(const char *tb)          { fTrigBit            = tb;      }
   void                   SetPrimTrackCuts(AliESDtrackCuts *c)   { fPrTrCuts           = c;       }
   void                   SetTrainMode(Bool_t t)                 { fIsTrain            = t;       }
+  void                   SetMcMode(Bool_t mc)                   { fIsMc               = mc;      }
+  void                   SetDebugOn(Bool_t d)                   { fDebug              = d;       }
+  void                   SetPathStringSelect(char *p)           { fPathStrOpt         = p;       }
+  void                   SetEtCut(Double_t ec)                  { fECut               = ec;      }
   
  protected:
   TRefArray             *fCaloClusters;          //!pointer to EMCal clusters
@@ -51,19 +63,38 @@ class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
   TString                fPeriod;                // string to the LHC period
   TString                fTrigBit;               // string to the trigger bit name
   Bool_t                 fIsTrain;               // variable to set train mode
+  Bool_t                 fIsMc;                  // variable to set mc mode
+  Bool_t                 fDebug;                 // variable to set on/off debugging printouts
+  TString                fPathStrOpt;            // variable to set the name of files to be analyzed (MC only)
   Double_t               fExoticCut;             // variable to set the cut on exotic clusters
   Double_t               fIsoConeR;              // variable to set the isolation cone radius
   Int_t                  fNDimensions;           // variable to set the number of dimensions of n-sparse
   Double_t               fECut;                  // variable to set the minimum E of a cluster
+  Int_t                  fTrackMult;             // global variable with the event multiplicity        
+  TString                fMcIdFamily;            // string that holds the ids of all particles originated from the prompt photon
+  Int_t                  fNClusForDirPho;        // number of clusters from prompt photon per event
+  Float_t                fDirPhoPt;              // prompt photon pt (assumes only one per event)
+
   
  private:
   AliESDEvent *fESD;      //! ESD object
+  AliMCEvent  *fMCEvent;  //! MC event object
+  AliStack    *fStack;    //!MC particles stack object
+
   TList       *fOutputList; //! Output list
   //histograms for events with 1+ track pt>1
   TH1F        *fEvtSel;                  //!evt selection counter: 0=all trg, 1=pv cut 
+  TH1F        *fNClusEt10;               //!number of clusters w/ Et>10 in the event
   TH1F        *fPVtxZ;                   //!primary vertex Z before cut
+  TH1F        *fTrMultDist;              //!track multiplicity distribution
+  TH3F        *fMCDirPhotonPtEtaPhi;     //!direct produced photon pt
+  TH1F        *fDecayPhotonPtMC;         //!decay photon pt
   TH2F        *fCellAbsIdVsAmpl;         //!cell abs id vs cell amplitude (energy)
   TH2F        *fNClusHighClusE;          //!total number of clusters vs. highest clus energy in the event
+  TH2F        *fClusEtMcPt;              //!cluster et x mc-pt
+  TH2F        *fClusMcDetaDphi;          //!delta-eta x delta-phi(reco-mc)
+  TH2F        *fNClusPerPho;             //!delta-eta x delta-phi(reco-mc)
+  TH2F        *fMCDirPhotonPtEtaNoClus;  //!eta x phi for prompt photons that didn't produce clusters
   THnSparse   *fHnOutput;                //!Output matrix with 7 dimensions
 
   AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented