LCOV - code coverage report
Current view: top level - ANALYSIS/ANALYSISalice - AliESDv0Cuts.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 16 18 88.9 %
Date: 2016-06-14 17:26:59 Functions: 16 22 72.7 %

          Line data    Source code
       1             : //
       2             : //  Class for handling of ESD v0 cuts.
       3             : //
       4             : //
       5             : 
       6             : #ifndef ALIESDV0CUTS_H
       7             : #define ALIESDV0CUTS_H
       8             : 
       9             : #include <TF1.h>
      10             : #include <TH2.h>
      11             : #include "AliAnalysisCuts.h"
      12             : 
      13             : class AliESD;
      14             : class AliESDEvent;
      15             : class AliESDVertex;
      16             : class AliESDtrack;
      17             : class AliESDv0;
      18             : class AliLog;
      19             : class TTree;
      20             : 
      21             : class AliESDv0Cuts : public AliAnalysisCuts
      22             : {
      23             : public:
      24             :   AliESDv0Cuts(const Char_t* name = "AliESDv0Cuts", const Char_t* title = "");
      25             :   virtual ~AliESDv0Cuts();
      26             : 
      27           0 :   Bool_t IsSelected(TObject* /*obj*/) {return kTRUE;}
      28             :   Bool_t IsSelected(TList* listObj);
      29             :   Bool_t IsSelected(TObject* const obj1, TObject* const obj2, TObject* const obj3, TObject* const obj4)
      30           0 :   {return AcceptV0((AliESDv0*) obj1, (AliESDtrack*) obj2, (AliESDtrack*) obj3, (const AliESDVertex*) obj4);}
      31             :   Bool_t AcceptV0(AliESDv0* const esdV0, AliESDtrack* const trackPos, AliESDtrack* const trackNeg, const AliESDVertex*  esdVertex);
      32             :   TObjArray* GetAcceptedV0s(const AliESD* esd);
      33             :   Int_t CountAcceptedV0s(const AliESD* esd);
      34             :   TObjArray* GetAcceptedV0s(const AliESDEvent* esd);
      35             :   Int_t CountAcceptedV0s(const AliESDEvent* esd);
      36             : 
      37             :   virtual Long64_t Merge(TCollection* list);
      38             :   virtual void Copy(TObject &c) const;
      39             :   AliESDv0Cuts(const AliESDv0Cuts& pd);  // Copy Constructor
      40             :   AliESDv0Cuts &operator=(const AliESDv0Cuts &c);
      41             : 
      42             :   //######################################################
      43             :   // v0 quality cut setters  
      44           8 :   void SetMinDcaPosToVertex(Float_t min=-1)          {fCutMinDcaPosToVertex=min;}
      45           8 :   void SetMinDcaNegToVertex(Float_t min=-1)          {fCutMinDcaNegToVertex=min;}
      46           4 :   void SetMaxChi2(Float_t max=1e10)                  {fCutMaxChi2=max;}
      47           8 :   void SetMaxDcaV0Daughters(Float_t max=1e10)        {fCutMaxDcaV0Daughters=max;}
      48           8 :   void SetMinRadius(Float_t min=-1)                  {fCutMinRadius=min;}
      49           8 :   void SetMaxRadius(Float_t max=1e10)                {fCutMaxRadius=max;}
      50           8 :   void SetMinCosinePointingAngle(Float_t min=-1)     {fCutMinCosinePointingAngle=min;}
      51           2 :   void SetRequireOnFlyStatus(Bool_t b=kFALSE)        {fCutRequireOnFlyStatus=b;}
      52           4 :   void SetMaxDcaV0ToVertex(Float_t max=1e10)         {fCutMaxDcaV0ToVertex=max;}
      53             : 
      54             :   // v0 kinematic cut setters
      55           4 :   void SetPRange(Float_t r1=0, Float_t r2=1e10)      {fPMin=r1;   fPMax=r2;}
      56           4 :   void SetPtRange(Float_t r1=0, Float_t r2=1e10)     {fPtMin=r1;  fPtMax=r2;}
      57           4 :   void SetPxRange(Float_t r1=-1e10, Float_t r2=1e10) {fPxMin=r1;  fPxMax=r2;}
      58           4 :   void SetPyRange(Float_t r1=-1e10, Float_t r2=1e10) {fPyMin=r1;  fPyMax=r2;}
      59           4 :   void SetPzRange(Float_t r1=-1e10, Float_t r2=1e10) {fPzMin=r1;  fPzMax=r2;}
      60             : 
      61             :   //######################################################
      62           2 :   void SetHistogramsOn(Bool_t b=kFALSE) {fHistogramsOn = b;}
      63             :   void DefineHistograms(Int_t color=1);
      64             :   virtual Bool_t LoadHistograms(const Char_t* dir = 0);
      65             :   void SaveHistograms(const Char_t* dir = 0);
      66             :   void DrawHistograms();
      67             : 
      68             :   static void EnableNeededBranches(TTree* tree);
      69             : 
      70             :   // void SaveQualityCuts(Char_t* file)
      71             :   // void LoadQualityCuts(Char_t* file)
      72             : 
      73             : protected:
      74             :   void Init(); // sets everything to 0
      75             : 
      76             :   enum { kNCuts = 14 };
      77             : 
      78             :   //######################################################
      79             :   // esd v0 quality cuts
      80             :   static const Char_t* fgkCutNames[kNCuts]; //! names of cuts (for internal use)
      81             : 
      82             :   Float_t fCutMinDcaPosToVertex;      // min dca of the positive daughter to the primary vertex
      83             :   Float_t fCutMinDcaNegToVertex;      // min dca of the negative daughter to the primary vertex
      84             :   Float_t fCutMaxChi2;                // max chi2
      85             :   Float_t fCutMaxDcaV0Daughters;      // max dca between the two v0 daughters
      86             :   Float_t fCutMinRadius;              // min reconstruction radius (fiducial volume)
      87             :   Float_t fCutMaxRadius;              // max reconstruction radius (fiducial volume)
      88             :   Float_t fCutMinCosinePointingAngle; // min cosine of pointing angle
      89             :   Bool_t  fCutRequireOnFlyStatus;     // require on fly status
      90             :   Float_t fCutMaxDcaV0ToVertex;       // max dca of the v0 to the primary vertex
      91             : 
      92             :   // v0 kinematics cuts
      93             :   Float_t fPMin,   fPMax;             // definition of the range of the P
      94             :   Float_t fPtMin,  fPtMax;            // definition of the range of the Pt
      95             :   Float_t fPxMin,  fPxMax;            // definition of the range of the Px
      96             :   Float_t fPyMin,  fPyMax;            // definition of the range of the Py
      97             :   Float_t fPzMin,  fPzMax;            // definition of the range of the Pz
      98             : 
      99             :   //######################################################
     100             :   // diagnostics histograms
     101             :   Bool_t fHistogramsOn;               // histograms on/off
     102             : 
     103             :   TH1F* fhDcaPosToVertex[2];          //->
     104             :   TH1F* fhDcaNegToVertex[2];          //->
     105             :   TH1F* fhChi2[2];                    //->
     106             :   TH1F* fhDcaV0Daughters[2];          //->
     107             :   TH1F* fhRadius[2];                  //->
     108             :   TH1F* fhCosinePointingAngle[2];     //->
     109             :   TH1F* fhOnFlyStatus[2];             //->
     110             :   TH1F* fhDcaV0ToVertex[2];           //->
     111             :   
     112             :   TH1F* fhPt[2];                      //-> pt of esd v0s
     113             : 
     114             :   TH1F* fhCutStatistics;              //-> statistics of what cuts the v0s did not survive
     115             :   TH2F* fhCutCorrelation;             //-> 2d statistics plot
     116             : 
     117         170 :   ClassDef(AliESDv0Cuts, 1)
     118             : };
     119             : 
     120             : 
     121             : #endif

Generated by: LCOV version 1.11