]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliHFEextraCuts.h
rebin of histos + setter for ref mult (Renu)
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFEextraCuts.h
index 5ee7b15f181cea679f3a601dd012d2c083a230b5..418d2cb752cbaabefd4fbecd18ebca7bd694f518 100644 (file)
@@ -40,6 +40,9 @@ class AliHFEextraCuts: public AliCFCutBase{
       kAny = 4,
       kExclusiveSecond = 5
     } ITSPixel_t;
+    typedef enum{
+      kFirstD = 0  
+    } ITSDrift_t;
     typedef enum{
       kFound = 0,
       kFoundIter1 = 1,
@@ -62,11 +65,12 @@ class AliHFEextraCuts: public AliCFCutBase{
 
     inline void SetClusterRatioTPC(Double_t ratio, ETPCclrDef_t def);
     inline void SetRequireITSpixel(ITSPixel_t pixel);
+    inline void SetRequireITSdrift(ITSDrift_t drift);
     inline void SetMinImpactParamR(Double_t impactParam);
     inline void SetMaxImpactParamR(Double_t impactParam);
     inline void SetMinImpactParamZ(Double_t impactParam);
     inline void SetMaxImpactParamZ(Double_t impactParam);
-    inline void SetMinHFEImpactParamR(Float_t ipcutParam[4], Bool_t issigmacut);
+    inline void SetMinHFEImpactParamR(Float_t ipcutParam[4], Bool_t issigmacut, Bool_t isabs);
     inline void SetMinTrackletsTRD(Int_t minTracklets, Bool_t exact = kFALSE);
     inline void SetMinNClustersTPC(Int_t minclusters, ETPCclusterDef_t def);
     void SetMinNClustersTPCPID(Int_t minclusters) { SETBIT(fRequirements, kMinNClustersTPCPID); fMinNClustersTPCPID = minclusters; }
@@ -75,35 +79,46 @@ class AliHFEextraCuts: public AliCFCutBase{
     void SetTPCPIDCleanUp(Bool_t tpcPIDCleanUp) { tpcPIDCleanUp ? SETBIT(fRequirements, kTPCPIDCleanUp) : CLRBIT(fRequirements, kTPCPIDCleanUp); }
     void SetMaxImpactParameterRpar(Bool_t maxImpactParameterRpar) { maxImpactParameterRpar ? SETBIT(fRequirements, kMaxImpactParameterRpar) : CLRBIT(fRequirements, kMaxImpactParameterRpar); }
     void SetFractionOfTPCSharedClusters(Double_t fractionShared) { fFractionTPCShared= fractionShared; SETBIT(fRequirements, kTPCfractionShared); }
-
+    void SetMinNbITScls(UChar_t minNbITScls) { fMinNbITScls = minNbITScls; SETBIT(fRequirements, kMinNbITScls); }
+    void SetTOFsignalDxz(Double_t tofsignalDx,Double_t tofsignalDz) { fTOFsignalDx=tofsignalDx; fTOFsignalDz=tofsignalDz; SETBIT(fRequirements, kTOFsignalDxy); }
+    void SetRejectKinkDaughter() { SETBIT(fRequirements, kRejectKinkDaughter);}; 
+    void SetRejectKinkMother() { SETBIT(fRequirements, kRejectKinkMother);}; 
     void SetCheckITSstatus(Bool_t check) { fCheck = check; };
     void SetDebugLevel(Int_t level) { fDebugLevel = level; };
 
     Bool_t GetCheckITSstatus() const { return fCheck; };
     Int_t GetDebugLevel() const { return fDebugLevel; };
     void GetHFEImpactParameters(AliVTrack *track, Double_t &dcaxy, Double_t &dcansigmaxy); // temporary moved from protected to publich for IP QA 
+    void GetHFEImpactParameters(AliVTrack *track, Double_t dcaD[2], Double_t covD[3]);
+    Int_t GetITSstatus(AliVTrack *track, Int_t layer);
+    Bool_t CheckITSstatus(Int_t itsStatus) const;
+
+    void UnSetRejectKinkDaughter() { CLRBIT(fRequirements, kRejectKinkDaughter);}; 
+    void UnSetRejectKinkMother() { CLRBIT(fRequirements, kRejectKinkMother);}; 
+
     
   protected:
     virtual void AddQAHistograms(TList *qaList);
     Bool_t CheckRecCuts(AliVTrack *track);
     Bool_t CheckMCCuts(AliVParticle * /*track*/) const;
-    Bool_t CheckITSstatus(Int_t itsStatus) const;
     void FillQAhistosRec(AliVTrack *track, UInt_t when);
-//     void FillQAhistosMC(AliMCParticle *track, UInt_t when);
+    //void FillQAhistosMC(AliMCParticle *track, UInt_t when);
     void FillCutCorrelation(ULong64_t survivedCut);
     void PrintBitMap(Int_t bitmap);
     
     // Getter Functions for ESD/AOD compatible mode
-    Int_t GetITSstatus(AliVTrack *track, Int_t layer);
     UInt_t GetTPCncls(AliVTrack *track);
-    UInt_t GetTPCnclusdEdx(AliVTrack *track);
     Bool_t GetTPCCountSharedMapBitsAboveThreshold(AliVTrack *track);
     Double_t GetTPCclusterRatio(AliVTrack *track);
     void GetImpactParameters(AliVTrack *track, Float_t &radial, Float_t &z);
     //void GetHFEImpactParameters(AliVTrack *track, Double_t &dcaxy, Double_t &dcansigmaxy);
     void GetHFEImpactParameterCuts(AliVTrack *track, Double_t &hfeimpactRcut, Double_t &hfeimpactnsigmaRcut);
     void GetMaxImpactParameterCutR(AliVTrack *track, Double_t &maximpactRcut);
+    void GetTOFsignalDxDz(AliVTrack *track, Double_t &tofsignalDx, Double_t &tofsignalDz);
     Float_t GetTPCsharedClustersRatio(AliVTrack *track);
+    Int_t GetITSNbOfcls(AliVTrack *track);
+    Bool_t IsKinkDaughter(AliVTrack *track);
+    Bool_t IsKinkMother(AliVTrack *track);
 
   private:
     typedef enum{
@@ -124,7 +139,12 @@ class AliHFEextraCuts: public AliCFCutBase{
       kTPCPIDCleanUp = 14,
       kEMCALmatch = 15,
       kMaxImpactParameterRpar = 16,
-      kNcuts = 17
+      kMinNbITScls = 17,
+      kRejectKinkDaughter = 18,
+      kRejectKinkMother = 19,
+      kDriftITS = 20,
+      kTOFsignalDxy = 21,
+      kNcuts = 22
     } Cut_t;
     enum{
       //
@@ -133,27 +153,32 @@ class AliHFEextraCuts: public AliCFCutBase{
       kBeforeCuts =0,
       kAfterCuts = 1
     };
-    static const Int_t fgkNQAhistos;    // Number of QA histos
+    static const Int_t fgkNQAhistos;   // Number of QA histos
     AliVEvent *fEvent;                //! working event
-    ULong64_t fCutCorrelation;             // Cut Correlation
-    ULong64_t fRequirements;                 // Cut Requirements
-    Float_t fImpactParamCut[4];                    // Impact Parmameter Cut
-    Float_t fIPcutParam[4];                    // Parmameter of impact parameter cut parametrization
+    ULong64_t fCutCorrelation;       // Cut Correlation
+    ULong64_t fRequirements;         // Cut Requirements
+    Float_t fImpactParamCut[4];              // Impact Parmameter Cut
+    Float_t fIPcutParam[4];          // Parmameter of impact parameter cut parametrization
     UInt_t fMinNClustersTPC;          // Minimum TPC clusters cut
     UInt_t fMinNClustersTPCPID;       // Minimum TPC PID clusters cut
-    Float_t fClusterRatioTPC;                // Ratio of findable vs. found clusters in TPC
-    UChar_t fMinTrackletsTRD;                // Min. Number of Tracklets inside TRD
+    Float_t fClusterRatioTPC;        // Ratio of findable vs. found clusters in TPC
+    UChar_t fMinTrackletsTRD;        // Min. Number of Tracklets inside TRD
+    UChar_t fMinNbITScls;            // Min. Number of ITS clusters
     Bool_t  fTRDtrackletsExact;       // Require exact number of tracklets
     UChar_t fPixelITS;                // Cut on ITS Pixels
+    UChar_t fDriftITS;                // Cut on ITS Drift
     UChar_t fTPCclusterDef;           // TPC cluster definition Bitmap
     UChar_t fTPCclusterRatioDef;      // TPC cluster ratio definition Bitmap
     Double_t  fFractionTPCShared;     // Cut on fraction of shared clusters
+    Bool_t fAbsHFEImpactParamNsigmaR; // flag to use abs ip cut
+    Double_t fTOFsignalDx;            // TOF signal dx
+    Double_t fTOFsignalDz;            // TOF signal dz
 
     Bool_t  fCheck;                     // check
     TList *fQAlist;                    //! Directory for QA histograms
     Int_t   fDebugLevel;                // Debug Level
   
-  ClassDef(AliHFEextraCuts, 1)      // Additional cuts implemented by the ALICE HFE group
+    ClassDef(AliHFEextraCuts, 5)      // Additional cuts implemented by the ALICE HFE group
 };
 
 //__________________________________________________________
@@ -169,6 +194,12 @@ void AliHFEextraCuts::SetRequireITSpixel(ITSPixel_t pixel) {
   fPixelITS = pixel; 
 }
 
+//__________________________________________________________
+void AliHFEextraCuts::SetRequireITSdrift(ITSDrift_t drift) {
+  SETBIT(fRequirements, kDriftITS);
+  fDriftITS = drift; 
+}
+
 //__________________________________________________________
 void AliHFEextraCuts::SetMinImpactParamR(Double_t impactParam){
   SETBIT(fRequirements, kMinImpactParamR);
@@ -194,13 +225,14 @@ void AliHFEextraCuts::SetMaxImpactParamZ(Double_t impactParam){
 }
 
 //__________________________________________________________
-void AliHFEextraCuts::SetMinHFEImpactParamR(Float_t ipcutParam[4], Bool_t isSigmacut){
+void AliHFEextraCuts::SetMinHFEImpactParamR(Float_t ipcutParam[4], Bool_t isSigmacut, Bool_t isabs){
   if(isSigmacut) SETBIT(fRequirements, kMinHFEImpactParamNsigmaR);
   else SETBIT(fRequirements, kMinHFEImpactParamR);
   fIPcutParam[0]=ipcutParam[0];
   fIPcutParam[1]=ipcutParam[1];
   fIPcutParam[2]=ipcutParam[2];
   fIPcutParam[3]=ipcutParam[3];
+  fAbsHFEImpactParamNsigmaR = isabs;
 }
 
 //__________________________________________________________