]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG2/RESONANCES/AliRsnCutTrackQuality.h
Fix Coverity
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCutTrackQuality.h
index cdefa7d8f3e45df72b96a392c16798ce8f596845..0157122b3df640a09ba9f6bc82da2cd317a5a0f3 100644 (file)
 class AliESDtrack;
 class AliAODTrack;
 
-class AliRsnCutTrackQuality : public AliRsnCut
-{
-  public:
-
-    AliRsnCutTrackQuality(const char *name = "AliRsncutTrackQuality");
-    AliRsnCutTrackQuality(const AliRsnCutTrackQuality& copy);
-    AliRsnCutTrackQuality& operator=(const AliRsnCutTrackQuality& copy);
-    virtual ~AliRsnCutTrackQuality() { }
-
-    void      DisableAll();
-    
-    void      AddStatusFlag(ULong_t flag)         {fFlags = fFlags | flag;}
-    void      SetStatusFlags(ULong_t flags)       {fFlags = flags;}
-    void      SetPtRange(Double_t a, Double_t b)  {fPt[0] = TMath::Min(a, b); fPt[1] = TMath::Max(a, b);}
-    void      SetEtaRange(Double_t a, Double_t b) {fEta[0] = TMath::Min(a, b); fEta[1] = TMath::Max(a, b);}
-    
-    void      SetDCARPtFormula(const char *formula) {fDCARptFormula = formula; fDCARptFormula.ReplaceAll("pt", "x"); fDCARfixed = kFALSE;}
-    void      SetDCARmax(Double_t value)            {fDCARmax = value; fDCARptFormula = ""; fDCARfixed = kTRUE;}
-    void      SetDCAZPtFormula(const char *formula) {fDCAZptFormula = formula; fDCAZptFormula.ReplaceAll("pt", "x"); fDCAZfixed = kFALSE;}
-    void      SetDCAZmax(Double_t value)            {fDCAZmax = value; fDCAZptFormula = ""; fDCAZfixed = kTRUE;}
-    
-    void      SetSPDminNClusters(Int_t value)       {fSPDminNClusters = value;}
-    void      SetITSminNClusters(Int_t value)       {fITSminNClusters = value;}
-    void      SetITSmaxChi2(Double_t value)         {fITSmaxChi2 = value;}
-    
-    void      SetTPCminNClusters(Int_t value)       {fTPCminNClusters = value;}
-    void      SetTPCmaxChi2(Double_t value)         {fTPCmaxChi2 = value;}
-    
-    virtual Bool_t IsSelected(TObject *obj);
-
-  protected:
-  
-    Bool_t     CheckESD(AliESDtrack *track);
-    Bool_t     CheckAOD(AliAODTrack *track);
-  
-    ULong_t    fFlags;              // required status flag (used AliESDtrack ones, connected with '|')
-    Double_t   fPt[2];              // pt range
-    Double_t   fEta[2];             // eta range
-    Bool_t     fRejectKinkDaughter; // switch to kTRUE if daughters of kinks must be rejected
-    
-    Bool_t     fDCARfixed;          // flag to switch between fixed and pt-dependent DCA cut
-    TString    fDCARptFormula;      // expression to compute transverse DCA sigma w.r. to pt
-    Double_t   fDCARmax;            // maximum value for transverse DCA
-    
-    Bool_t     fDCAZfixed;          // flag to switch between fixed and pt-dependent DCA cut
-    TString    fDCAZptFormula;      // expression to compute longitudinal DCA sigma w.r. to pt
-    Double_t   fDCAZmax;            // maximum value for longitudinal DCA
-    
-    Int_t      fSPDminNClusters;    // minimum number of required clusters in SPD
-    Int_t      fITSminNClusters;    // minimum number of required clusters in ITS
-    Double_t   fITSmaxChi2;         // maximum chi2 / number of clusters in ITS
-    
-    Int_t      fTPCminNClusters;    // minimum number of required clusters in TPC
-    Double_t   fTPCmaxChi2;         // maximum chi2 / number of clusters in TPC
-    
-    ClassDef(AliRsnCutTrackQuality, 1)
+class AliRsnCutTrackQuality : public AliRsnCut {
+public:
+
+   AliRsnCutTrackQuality(const char *name = "AliRsncutTrackQuality");
+   AliRsnCutTrackQuality(const AliRsnCutTrackQuality &copy);
+   AliRsnCutTrackQuality &operator=(const AliRsnCutTrackQuality &copy);
+   virtual ~AliRsnCutTrackQuality() { }
+
+   void      DisableAll();
+
+   void      AddStatusFlag(ULong_t f, Bool_t on)       {if (on) fFlagsOn = fFlagsOn | f; else fFlagsOff = fFlagsOff | f;}
+   void      SetStatusFlags(ULong_t f, Bool_t on)      {if (on) fFlagsOn = f; else fFlagsOff = f;}
+   void      SetPtRange(Double_t a, Double_t b)        {fPt[0] = TMath::Min(a, b); fPt[1] = TMath::Max(a, b);}
+   void      SetEtaRange(Double_t a, Double_t b)       {fEta[0] = TMath::Min(a, b); fEta[1] = TMath::Max(a, b);}
+
+   void      SetDCARPtFormula(const char *formula)     {fDCARptFormula = formula; fDCARfixed = kFALSE;}
+   void      SetDCARmax(Double_t value)                {fDCARmax = value; fDCARptFormula = ""; fDCARfixed = kTRUE;}
+   void      SetDCAZPtFormula(const char *formula)     {fDCAZptFormula = formula; fDCAZfixed = kFALSE;}
+   void      SetDCAZmax(Double_t value)                {fDCAZmax = value; fDCAZptFormula = ""; fDCAZfixed = kTRUE;}
+
+   void      SetSPDminNClusters(Int_t value)           {fSPDminNClusters = value;}
+   void      SetITSminNClusters(Int_t value)           {fITSminNClusters = value;}
+   void      SetITSmaxChi2(Double_t value)             {fITSmaxChi2 = value;}
+
+   void      SetTPCminNClusters(Int_t value)           {fTPCminNClusters = value;}
+   void      SetTPCmaxChi2(Double_t value)             {fTPCmaxChi2 = value;}
+
+   void      SetRejectKinkDaughters(Bool_t yn = kTRUE) {fRejectKinkDaughters = yn;}
+
+   void      SetAODTestFilterBit(Int_t value)          {fAODTestFilterBit = value;}
+
+   void      SetDefaults2010();
+
+   virtual Bool_t IsSelected(TObject *obj);
+   virtual void   Print(const Option_t *option = "") const;
+
+protected:
+
+   Bool_t      CheckESD(AliESDtrack *track);
+   Bool_t      CheckAOD(AliAODTrack *track);
+   const char *Binary(UInt_t number);
+
+   ULong_t    fFlagsOn;                // status flags which must be ON (used AliESDtrack ones, connected with '|')
+   ULong_t    fFlagsOff;               // status flags which must be OFF (used AliESDtrack ones, connected with '|')
+   Double_t   fPt[2];                  // pt range
+   Double_t   fEta[2];                 // eta range
+   Bool_t     fRejectKinkDaughters;    // switch to kTRUE if daughters of kinks must be rejected
+
+   Bool_t     fDCARfixed;              // flag to switch between fixed and pt-dependent DCA cut
+   TString    fDCARptFormula;          // expression to compute transverse DCA sigma w.r. to pt
+   Double_t   fDCARmax;                // maximum value for transverse DCA
+
+   Bool_t     fDCAZfixed;              // flag to switch between fixed and pt-dependent DCA cut
+   TString    fDCAZptFormula;          // expression to compute longitudinal DCA sigma w.r. to pt
+   Double_t   fDCAZmax;                // maximum value for longitudinal DCA
+
+   Int_t      fSPDminNClusters;        // minimum number of required clusters in SPD
+   Int_t      fITSminNClusters;        // minimum number of required clusters in ITS
+   Double_t   fITSmaxChi2;             // maximum chi2 / number of clusters in ITS
+
+   Int_t      fTPCminNClusters;        // minimum number of required clusters in TPC
+   Double_t   fTPCmaxChi2;             // maximum chi2 / number of clusters in TPC
+   Int_t      fAODTestFilterBit;       // test filter bit for AOD tracks
+
+   ClassDef(AliRsnCutTrackQuality, 1)
 };
 
+//__________________________________________________________________________________________________
+inline const char *AliRsnCutTrackQuality::Binary(UInt_t number)
+{
+//
+// Convert an integer in binary
+//
+
+   static char b[50];
+   b[0] = '\0';
+
+   UInt_t z;
+   for (z = 512; z > 0; z >>= 1)
+      strncat(b, ((number & z) == z) ? "1" : "0", 1);
+
+   return b;
+}
+
+//__________________________________________________________________________________________________
+inline void AliRsnCutTrackQuality::SetDefaults2010()
+{
+//
+// Default settings for cuts used in 2010
+//
+
+   AddStatusFlag(AliESDtrack::kTPCin   , kTRUE);
+   AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);
+   AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);
+   SetPtRange(0.15, 1E+20);
+   SetEtaRange(-0.8, 0.8);
+   SetDCARPtFormula("0.0182+0.0350/pt^1.01");
+   SetDCAZmax(2.0);
+   SetSPDminNClusters(1);
+   SetITSminNClusters(0);
+   SetITSmaxChi2(1E+20);
+   SetTPCminNClusters(70);
+   SetTPCmaxChi2(4.0);
+   SetRejectKinkDaughters();
+   SetAODTestFilterBit(5);
+}
+
 #endif