]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSMultReconstructor.h
Small fix es in SDD survey (Martin Poghosyan)
[u/mrichter/AliRoot.git] / ITS / AliITSMultReconstructor.h
index b05e39885ff9191c573461cf6519eca70988a1cf..2f8e17acb8089df51a09e3ce5c06604cce81642d 100644 (file)
@@ -27,6 +27,7 @@ class AliITSgeom;
 class AliESDEvent;
 class AliESDtrack;
 class AliVertex;
+class AliESDVertex;
 class AliMultiplicity;
 
 class AliITSMultReconstructor : public AliTrackleter
@@ -46,8 +47,10 @@ public:
   void LoadClusterFiredChips(TTree* tree);
   void FlagClustersInOverlapRegions(Int_t ic1,Int_t ic2);
   void FlagTrackClusters(const AliESDtrack* track);
-  void FlagIfPrimary(AliESDtrack* track, const AliVertex* vtx);
+  void FlagIfSecondary(AliESDtrack* track, const AliVertex* vtx);
+  void FlagV0s(const AliESDVertex *vtx);
   void ProcessESDTracks();
+  Bool_t  CanBeElectron(const AliESDtrack* trc) const;
   
   void CreateMultiplicityObject();
   //
@@ -76,7 +79,49 @@ public:
 
   AliITSDetTypeRec *GetDetTypeRec() const {return fDetTypeRec;}
   void SetDetTypeRec(AliITSDetTypeRec *ptr){fDetTypeRec = ptr;}
-
+  //
+  void    SetCutPxDrSPDin(Float_t v=0.1)             { fCutPxDrSPDin = v;}
+  void    SetCutPxDrSPDout(Float_t v=0.15)           { fCutPxDrSPDout = v;}
+  void    SetCutPxDz(Float_t v=0.2)                  { fCutPxDz = v;}
+  void    SetCutDCArz(Float_t v=0.5)                 { fCutDCArz = v;}
+  void    SetCutMinElectronProbTPC(Float_t v=0.5)    { fCutMinElectronProbTPC = v;}
+  void    SetCutMinElectronProbESD(Float_t v=0.1)    { fCutMinElectronProbESD = v;}
+  void    SetCutMinP(Float_t v=0.05)                 { fCutMinP = v;}
+  void    SetCutMinRGamma(Float_t v=2.)              { fCutMinRGamma = v;}
+  void    SetCutMinRK0(Float_t v=1.)                 { fCutMinRK0 = v;}
+  void    SetCutMinPointAngle(Float_t v=0.98)        { fCutMinPointAngle = v;}
+  void    SetCutMaxDCADauther(Float_t v=0.5)         { fCutMaxDCADauther = v;}
+  void    SetCutMassGamma(Float_t v=0.03)            { fCutMassGamma = v;}
+  void    SetCutMassGammaNSigma(Float_t v=5.)        { fCutMassGammaNSigma = v;}
+  void    SetCutMassK0(Float_t v=0.03)               { fCutMassK0 = v;}
+  void    SetCutMassK0NSigma(Float_t v=5.)           { fCutMassK0NSigma = v;}
+  void    SetCutChi2cGamma(Float_t v=2.)             { fCutChi2cGamma = v;}
+  void    SetCutChi2cK0(Float_t v=2.)                { fCutChi2cK0 = v;}
+  void    SetCutGammaSFromDecay(Float_t v=-10.)      { fCutGammaSFromDecay = v;}
+  void    SetCutK0SFromDecay(Float_t v=-10.)         { fCutK0SFromDecay = v;}
+  void    SetCutMaxDCA(Float_t v=1.)                 { fCutMaxDCA = v;}
+  //
+  Float_t GetCutPxDrSPDin()                    const {return fCutPxDrSPDin;}
+  Float_t GetCutPxDrSPDout()                   const {return fCutPxDrSPDout;}
+  Float_t GetCutPxDz()                         const {return fCutPxDz;}
+  Float_t GetCutDCArz()                        const {return fCutDCArz;}
+  Float_t GetCutMinElectronProbTPC()           const {return fCutMinElectronProbTPC;}
+  Float_t GetCutMinElectronProbESD()           const {return fCutMinElectronProbESD;}
+  Float_t GetCutMinP()                         const {return fCutMinP;}
+  Float_t GetCutMinRGamma()                    const {return fCutMinRGamma;}
+  Float_t GetCutMinRK0()                       const {return fCutMinRK0;}
+  Float_t GetCutMinPointAngle()                const {return fCutMinPointAngle;}
+  Float_t GetCutMaxDCADauther()                const {return fCutMaxDCADauther;}
+  Float_t GetCutMassGamma()                    const {return fCutMassGamma;}
+  Float_t GetCutMassGammaNSigma()              const {return fCutMassGammaNSigma;}
+  Float_t GetCutMassK0()                       const {return fCutMassK0;}
+  Float_t GetCutMassK0NSigma()                 const {return fCutMassK0NSigma;}
+  Float_t GetCutChi2cGamma()                   const {return fCutChi2cGamma;}
+  Float_t GetCutChi2cK0()                      const {return fCutChi2cK0;}
+  Float_t GetCutGammaSFromDecay()              const {return fCutGammaSFromDecay;}
+  Float_t GetCutK0SFromDecay()                 const {return fCutK0SFromDecay;}
+  Float_t GetCutMaxDCA()                       const {return fCutMaxDCA;}
+  //
 protected:
   AliITSMultReconstructor(const AliITSMultReconstructor& mr);
   AliITSMultReconstructor& operator=(const AliITSMultReconstructor& mr);
@@ -102,8 +147,9 @@ protected:
   Int_t         fNTracklets;           // Number of tracklets
   Int_t         fNSingleCluster;       // Number of unassociated clusters
   Short_t       fNFiredChips[2];       // Number of fired chips in the two SPD layers
+  //
   // Following members are set via AliITSRecoParam
+  //
   Float_t       fPhiWindow;                    // Search window in phi
   Float_t       fThetaWindow;                  // Search window in theta
   Float_t       fPhiShift;                     // Phi shift reference value (at 0.5 T) 
@@ -111,6 +157,31 @@ protected:
   Float_t       fPhiOverlapCut;                // Fiducial window in phi for overlap cut
   Float_t       fZetaOverlapCut;               // Fiducial window in eta for overlap cut
 
+  // cuts for secondaries identification
+  Float_t       fCutPxDrSPDin;                 // max P*DR for primaries involving at least 1 SPD
+  Float_t       fCutPxDrSPDout;                // max P*DR for primaries not involving any SPD
+  Float_t       fCutPxDz;                      // max P*DZ for primaries
+  Float_t       fCutDCArz;                     // max DR or DZ for primares
+  //
+  // cuts for flagging tracks in V0s
+  Float_t       fCutMinElectronProbTPC;     // min probability for e+/e- PID involving TPC
+  Float_t       fCutMinElectronProbESD;     // min probability for e+/e- PID not involving TPC
+  //
+  Float_t       fCutMinP;                   // min P of V0
+  Float_t       fCutMinRGamma;              // min transv. distance from ESDVertex to V0 for gammas
+  Float_t       fCutMinRK0;                 // min transv. distance from ESDVertex to V0 for K0s
+  Float_t       fCutMinPointAngle;          // min pointing angle cosine
+  Float_t       fCutMaxDCADauther;          // max DCA of daughters at V0
+  Float_t       fCutMassGamma;              // max gamma mass
+  Float_t       fCutMassGammaNSigma;        // max standard deviations from 0 for gamma
+  Float_t       fCutMassK0;                 // max K0 mass difference from PGD value
+  Float_t       fCutMassK0NSigma;           // max standard deviations for K0 mass from PDG value
+  Float_t       fCutChi2cGamma;             // max constrained chi2 cut for gammas
+  Float_t       fCutChi2cK0;                // max constrained chi2 cut for K0s
+  Float_t       fCutGammaSFromDecay;        // min path*P for gammas
+  Float_t       fCutK0SFromDecay;           // min path*P for K0s
+  Float_t       fCutMaxDCA;                 // max DCA for V0 at ESD vertex  
+
   Bool_t        fHistOn;               // Option to define and fill the histograms 
 
   TH1F*         fhClustersDPhiAcc;     // Phi2 - Phi1 for tracklets