]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliHFENonPhotonicElectron.h
updated for some checks
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFENonPhotonicElectron.h
index a0f74506b8d9634ce4d9408154d17189928d3fc0..af6c73cf5a379954f86a63372fa334a6f8ff733a 100644 (file)
 #include <TNamed.h>
 #endif
 
+#ifndef ROOT_TArrayD
+#include <TArrayD.h>
+#endif
+
 class AliESDtrackCuts;
 class AliHFEpid;
 class AliHFEpidQAmanager;
@@ -57,12 +61,14 @@ class AliHFENonPhotonicElectron : public TNamed {
   virtual ~AliHFENonPhotonicElectron();
 
   void SetAOD                  (Bool_t isAOD)                  { fIsAOD = isAOD; };
-  void SetMCEvent              (AliMCEvent *mcEvent)           { fMCEvent = mcEvent; };
-  void SetAODArrayMCInfo       (TClonesArray *aodArrayMCInfo) { fAODArrayMCInfo = aodArrayMCInfo; };
+  void SetMCEvent              (AliMCEvent *mcEvent);
+  void SetAODArrayMCInfo       (TClonesArray *aodArrayMCInfo);
   void SetHFEBackgroundCuts    (AliHFEcuts * const cuts)       { fHFEBackgroundCuts = cuts; };
+  void SetWithWeights(Int_t levelBack);
 
   AliHFEpid            *GetPIDBackground()             const   { return fPIDBackground; };
   AliHFEpidQAmanager   *GetPIDBackgroundQAManager()    const   { return fPIDBackgroundQA; };
+  Int_t GetLevelBack()                                  const   { return fLevelBack; };
 
   void  SetMaxInvMass          (Double_t MaxInvMass)           { fMaxInvMass           = MaxInvMass; };
   void  SetMaxOpening3D                (Double_t MaxOpening3D)         { fMaxOpening3D         = MaxOpening3D; };
@@ -70,6 +76,7 @@ class AliHFENonPhotonicElectron : public TNamed {
 //  void  SetMaxOpeningPhi     (Double_t MaxOpeningPhi)        { fMaxOpeningPhi        = MaxOpeningPhi; };
   void  SetAlgorithmMA         (Bool_t algorithmMA)            { fAlgorithmMA          = algorithmMA; };
   void  SetMassConstraint      (Bool_t MassConstraint)         { fSetMassConstraint    = MassConstraint; };
+  void  SetITSMeanShift(Double_t meanshift) { fITSmeanShift = meanshift; }
 
   void SelectCategory1Tracks(Bool_t doSelect = kTRUE) { fSelectCategory1tracks = doSelect; }
   void SelectCategory2Tracks(Bool_t doSelect = kTRUE) { fSelectCategory2tracks = doSelect; }
@@ -86,58 +93,73 @@ class AliHFENonPhotonicElectron : public TNamed {
   void     InitRun                     (const AliVEvent *inputEvent, const AliPIDResponse *pidResponse);
   Int_t    FillPoolAssociatedTracks    (AliVEvent *inputEvent, Int_t binct=-1);
   Int_t    CountPoolAssociated         (AliVEvent *inputEvent, Int_t binct=-1);
-  Int_t    LookAtNonHFE                        (Int_t iTrack1, AliVTrack *track1, AliVEvent *vEvent, Double_t weight=1., Int_t binct=-1, Double_t deltaphi=-1, Int_t source=-1, Int_t indexmother=-1);
+  Int_t    LookAtNonHFE                        (Int_t iTrack1, AliVTrack *track1, AliVEvent *vEvent, Double_t weight=1., Int_t binct=-1, Double_t deltaphi=-1, Int_t source=-1, Int_t indexmother=-1,Int_t mcQAsource=-1);
+
+  Int_t    FindMother          (Int_t tr, Int_t &indexmother) const;
 
-  Int_t    FindMother          (Int_t tr, Int_t &indexmother);
-  Int_t    CheckPdg            (Int_t tr);
-  Int_t    IsMotherGamma       (Int_t tr);
-  Int_t    IsMotherPi0         (Int_t tr);
-  Int_t    IsMotherC           (Int_t tr);
-  Int_t    IsMotherB           (Int_t tr);
-  Int_t    IsMotherEta         (Int_t tr);
+  void SetPtBinning(const TArrayD &binning) { fPtBinning = binning; }
+  void SetPtBinning(Int_t nbins, const Double_t *const binning) { fPtBinning.Set(nbins+1, binning); }
+  void SetEtaBinning(const TArrayD &binning) { fEtaBinning = binning; }
+  void SetEtaBinning(Int_t nbins, const Double_t *const binning) { fEtaBinning.Set(nbins+1, binning); }
 
 
  private:
+  Int_t    GetMotherPDG(Int_t tr, Int_t &motherIndex) const;
+  Int_t    CheckPdg            (Int_t tr) const;
+  Double_t Radius               (Int_t tr) const;
+  Int_t    IsMotherGamma       (Int_t tr) const;
+  Int_t    IsMotherPi0         (Int_t tr) const;
+  Int_t    IsMotherC           (Int_t tr) const;
+  Int_t    IsMotherB           (Int_t tr) const;
+  Int_t    IsMotherEta         (Int_t tr) const;
   Bool_t MakePairDCA(const AliVTrack *inclusive, const AliVTrack *associated, AliVEvent *vEvent, Bool_t isAOD, Double_t &invMass, Double_t &angle) const;
   Bool_t MakePairKF(const AliVTrack *inclusive, const AliVTrack *associated, AliKFVertex &primV, Double_t &invMass, Double_t &angle) const;
   Bool_t FilterCategory1Track(const AliVTrack * const track, Bool_t isAOD, Int_t binct);
   Bool_t FilterCategory2Track(const AliVTrack * const track, Bool_t isAOD);
 
-  Bool_t                fIsAOD;                        // Is AOD
-  AliMCEvent           *fMCEvent;                      //! MC event ESD
-  TClonesArray         *fAODArrayMCInfo;               //! MC info particle AOD
-  AliHFEcuts           *fHFEBackgroundCuts;            // HFE background cuts
-  AliHFEpid            *fPIDBackground;                // PID background cuts
-  AliHFEpidQAmanager   *fPIDBackgroundQA;              // QA Manager Background
-  const AliPIDResponse *fkPIDRespons;                  // PID response
-  Bool_t                fAlgorithmMA;                  // algorithm MA
-  Double_t              fChi2OverNDFCut;               // Limit chi2
-  Double_t              fMaxDCA;                       // Limit dca
-//  Double_t            fMaxOpeningTheta;              // Limit opening angle in theta
-//  Double_t            fMaxOpeningPhi;                // Limit opening angle in phi
-  Double_t              fMaxOpening3D;                 // Limit opening 3D
-  Double_t              fMaxInvMass;                   // Limit invariant mass
-  Bool_t                fSetMassConstraint;            // Set mass constraint
-  Bool_t     fSelectCategory1tracks;    // Category 1 tracks: Standard track cuts
-  Bool_t     fSelectCategory2tracks;    // Category 2 tracks: tracks below 300 MeV/c
-  TArrayI              *fArraytrack;                   //! list of associated tracks
-  Int_t                         fCounterPoolBackground;        // number of associated electrons
-  Int_t                         fnumberfound;                  // number of inclusive  electrons
-  TList                        *fListOutput;                   // List of histos
-  THnSparseF           *fAssElectron;                  //! centrality, pt, Source MC, P, TPCsignal
-  THnSparseF           *fIncElectron;                  //! centrality, pt, Source MC, P, TPCsignal
-  THnSparseF           *fUSign;                        //! delta phi, c, pt, inv, source
-  THnSparseF           *fLSign;                        //! delta phi, c, pt, inv, source
-  THnSparseF    *fUSmatches;  //! number of matched tracks with oposite sign per inclusive track after inv mass cut
-  THnSparseF    *fLSmatches;  //! number of matched tracks with same sign per inclusive track after inv mass cut
-  TH2F* fHnsigmaITS;  //! Control histogram for ITS pid of category 2 tracks
-//  THnSparseF         *fUSignAngle;                   //! angle, c, source
-//  THnSparseF         *fLSignAngle;                   //! angle, c, source
+  Bool_t                    fIsAOD;                         // Is AOD
+  AliMCEvent                *fMCEvent;                      //! MC event ESD
+  TClonesArray              *fAODArrayMCInfo;               //! MC info particle AOD
+  Int_t                     fLevelBack;                     // Level Background
+  AliHFEcuts                *fHFEBackgroundCuts;            // HFE background cuts
+  AliHFEpid                 *fPIDBackground;                // PID background cuts
+  AliHFEpidQAmanager        *fPIDBackgroundQA;              // QA Manager Background
+  const AliPIDResponse      *fkPIDRespons;                  // PID response
+  TArrayD                   fPtBinning;                     // pt binning
+  TArrayD                   fEtaBinning;                    // eta binning
+  Bool_t                    fAlgorithmMA;                   // algorithm MA
+  Double_t                  fChi2OverNDFCut;                // Limit chi2
+  Double_t                  fMaxDCA;                        // Limit dca
+//  Double_t                fMaxOpeningTheta;               // Limit opening angle in theta
+//  Double_t                fMaxOpeningPhi;                 // Limit opening angle in phi
+  Double_t                  fMaxOpening3D;                  // Limit opening 3D
+  Double_t                  fMaxInvMass;                    // Limit invariant mass
+  Bool_t                    fSetMassConstraint;             // Set mass constraint
+  Bool_t                    fSelectCategory1tracks;         // Category 1 tracks: Standard track cuts
+  Bool_t                    fSelectCategory2tracks;         // Category 2 tracks: tracks below 300 MeV/c
+  Double_t                  fITSmeanShift;                  // Shift of the mean in the ITS
+  TArrayI                   *fArraytrack;                   //! list of associated tracks
+  Int_t                     fCounterPoolBackground;         // number of associated electrons
+  Int_t                     fnumberfound;                   // number of inclusive  electrons
+  TList                     *fListOutput;                   // List of histos
+  THnSparseF                *fAssElectron;                  //! centrality, pt, Source MC, P, TPCsignal
+  THnSparseF                *fIncElectron;                  //! centrality, pt, Source MC, P, TPCsignal
+  THnSparseF                *fUSign;                        //! delta phi, c, pt, inv, source
+  THnSparseF                *fLSign;                        //! delta phi, c, pt, inv, source
+  THnSparseF                *fUSmatches;                    //! number of matched tracks with oposite sign per inclusive track after inv mass cut
+  THnSparseF                *fLSmatches;                    //! number of matched tracks with same sign per inclusive track after inv mass cut
+  TH2F                      *fHnsigmaITS;                    //! Control histogram for ITS pid of category 2 tracks
+  TH2F                      *fWeightsSource;                 //! Control histo for sources for weights  
+
+  THnSparseF                *fIncElectronRadius;            //! For fakes
+  THnSparseF                *fRecElectronRadius;            //! For fakes                    
+//  THnSparseF              *fUSignAngle;                   //! angle, c, source
+//  THnSparseF              *fLSignAngle;                   //! angle, c, source
 
 
   AliHFENonPhotonicElectron(const AliHFENonPhotonicElectron &ref); 
 
-  ClassDef(AliHFENonPhotonicElectron, 1); //!example of analysis
+  ClassDef(AliHFENonPhotonicElectron, 4); //!example of analysis
 };
 
 #endif