Place the config and root file at the right place
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliSelectNonHFE.h
1 #ifndef ALISELECTNONHFE_H
2 #define ALISELECTNONHFE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////////////////////////////
8 //                                                                    //
9 //      Class for the Selection of Non-Heavy-Flavour-Electrons        //
10 //                                                                    //
11 //              Author: Elienos Pereira de Oliveira Filho                                 //
12 //                                      (epereira@cern.ch)                                                                //
13 //                                      University of São Paulo                                                          //    
14 //                                                                    //
15 ////////////////////////////////////////////////////////////////////////
16
17 #ifndef ROOT_TNamed
18 #include <TNamed.h>
19 #endif
20
21 class TH1F;
22 class TH2F;
23 class AliVEvent;
24 class AliVParticle;
25 class AliESDtrackCuts;
26 class AliPIDResponse;
27
28 class AliSelectNonHFE : public TNamed {
29  public:
30   AliSelectNonHFE();
31   AliSelectNonHFE(const char *name, const Char_t *title);
32   virtual ~AliSelectNonHFE();
33   Int_t GetNLS() const {return fNLS;};
34   Int_t GetNULS() const {return fNULS;};
35   Int_t* GetPartnersLS() const {return fLSPartner;};
36   Int_t* GetPartnersULS() const {return fULSPartner;};
37   Bool_t IsLS() const {return fIsLS;};
38   Bool_t IsULS() const {return fIsULS;};
39   void FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent *fVevent);
40   void SetAlgorithm(TString Algorithm) {fAlgorithm = Algorithm;};
41   void SetAdditionalCuts(Double_t PtMin, Int_t TpcNcls) {fPtMin = PtMin; fTpcNcls = TpcNcls; fHasPtCut=kTRUE; };
42   void SetAODanalysis(Bool_t IsAOD) {fIsAOD = IsAOD;};
43   void SetChi2OverNDFCut(Double_t Chi2OverNDFCut) {fChi2OverNDFCut = Chi2OverNDFCut;};
44   void SetDCACut(Double_t dcaCut) {fdcaCut = dcaCut;};
45   void SetHistAngleBack(TH1F *HistAngleBack) {fHistAngleBack = HistAngleBack;};
46   void SetHistAngle(TH1F *HistAngle) {fHistAngle = HistAngle;};
47   void SetHistDCABack(TH1F *HistDCABack) {fHistDCABack = HistDCABack;};
48   void SetHistDCA(TH1F *HistDCA) {fHistDCA = HistDCA;};
49   void SetHistMassBack(TH1F *HistMassBack) {fHistMassBack = HistMassBack;};
50   void SetHistMass(TH1F *HistMass) {fHistMass = HistMass;};
51   void SetInvariantMassCut(Double_t MassCut) {fMassCut = MassCut;};
52   void SetOpeningAngleCut(Double_t AngleCut) {fAngleCut = AngleCut;};
53   void SetPIDresponse(AliPIDResponse* PIDResponse) {fPIDResponse = PIDResponse;};
54         
55         void SetTrackCuts(Double_t TPCnSigmaMin, Double_t TPCnSigmaMax) 
56         {
57                 fTPCnSigmaMin = TPCnSigmaMin; 
58                 fTPCnSigmaMax = TPCnSigmaMax; 
59         };
60         
61         void SetTrackCuts(Double_t TPCnSigmaMin, Double_t TPCnSigmaMax, AliESDtrackCuts* TrackCuts) 
62         {
63                 fTPCnSigmaMin = TPCnSigmaMin; 
64                 fTPCnSigmaMax = TPCnSigmaMax; 
65                 fTrackCuts = TrackCuts;
66         };
67   
68  private:
69   AliESDtrackCuts       *fTrackCuts;            //! Track quality
70   TString               fAlgorithm;                     //Algorithm choice: "MA" (Manual Algorithm) or "KF" (Kalman Filter Algorithm)
71   Double_t              fAngleCut;                              //Maximum opening angle between the tracks
72   Double_t              fdcaCut;                                //Maximum dca between the tracks
73   Double_t              fTPCnSigmaMin;                  //Minimum partner TPCnSigma value
74   Double_t              fTPCnSigmaMax;                  //Maximum partner TPCnSigma value
75   Double_t              fMassCut;                               //Maximum Invariant Mass Value for Non-HF-Electrons
76   Double_t              fChi2OverNDFCut;        //Maximum value of Chi2 over NDF in the case of KF Algorithm
77   Double_t              fPtMin;                                 //Minimum pT value for the associated electrons
78   Bool_t                fIsLS;                                  //Unlike signal pairs Flag
79   Bool_t                fIsULS;                                 //like signal pairs Flag
80   Bool_t                fIsAOD;                                 //Flag for AOD analysis
81   Bool_t                fHasPtCut;                              //Flag for additional pT cut
82   Int_t                 fNLS;                                   //Number of Unlike signal pairs
83   Int_t                 fNULS;                                  //Number of like signal pairs
84   Int_t                 fTpcNcls;                               //Minimum Number of clusters in the TPC
85   Int_t                 *fLSPartner;            //! Pointer for the LS partners index
86   Int_t                 *fULSPartner;           //! Pointer for the ULS partners index
87   TH1F                  *fHistMass;                             //! Invariant mass histogram for Unlike sign pairs
88   TH1F                  *fHistMassBack;         //! Invariant mass histogram for like sign pairs
89   TH1F                  *fHistDCA;                              //! DCA histogram for Unlike sign pairs
90   TH1F                  *fHistDCABack;          //! DCA histogram for like sign pairs
91   TH1F                  *fHistAngle;            //! Opening Angle histogram for Unlike sign pairs
92   TH1F                  *fHistAngleBack;        //! Opening Angle histogram for like sign pairs
93   AliPIDResponse *fPIDResponse;         //! PID response object
94   
95   AliSelectNonHFE(const AliSelectNonHFE&); // not implemented
96   AliSelectNonHFE& operator=(const AliSelectNonHFE&); // not implemented
97   
98   ClassDef(AliSelectNonHFE, 1); //!example of analysis
99 };
100
101 #endif