Switching from CMAKE_SOURCE_DIR to AliRoot_SOURCE_DIR
[u/mrichter/AliRoot.git] / CORRFW / AliCFAcceptanceCuts.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16
17 ///////////////////////////////////////////////////////////////////////////
18 //          ----   CORRECTION FRAMEWORK   ----
19 // AliCFAcceptanceCuts implementation
20 // Class to cut on the number of AliTrackReference's 
21 // for each detector
22 ///////////////////////////////////////////////////////////////////////////
23 // author : R. Vernet (renaud.vernet@cern.ch)
24 ///////////////////////////////////////////////////////////////////////////
25
26
27 #ifndef ALICFACCEPTANCECUTS_H
28 #define ALICFACCEPTANCECUTS_H
29
30 #include "AliCFCutBase.h"
31
32 class AliMCEvent;
33 class TH1F ;
34 class TH2F ;
35 class TBits;
36
37 class AliCFAcceptanceCuts : public AliCFCutBase
38 {
39  public :
40   AliCFAcceptanceCuts() ;
41   AliCFAcceptanceCuts(const Char_t* name, const Char_t* title) ;
42   AliCFAcceptanceCuts(const AliCFAcceptanceCuts& c) ;
43   AliCFAcceptanceCuts& operator=(const AliCFAcceptanceCuts& c) ;
44   virtual ~AliCFAcceptanceCuts() { };
45   virtual Bool_t IsSelected(TObject* obj) ;
46   virtual Bool_t IsSelected(TList*  /*list*/) {return kTRUE;}
47   virtual void   SetMCEventInfo(const TObject* mcInfo) ;
48   void SetMinNHitITS (Int_t nhits) {fMinNHitITS=nhits;} 
49   void SetMinNHitTPC (Int_t nhits) {fMinNHitTPC=nhits;} 
50   void SetMinNHitTRD (Int_t nhits) {fMinNHitTRD=nhits;} 
51   void SetMinNHitTOF (Int_t nhits) {fMinNHitTOF=nhits;} 
52   void SetMinNHitMUON(Int_t nhits) {fMinNHitMUON=nhits;}
53
54   enum { 
55     kCutHitsITS ,
56     kCutHitsTPC ,
57     kCutHitsTRD ,
58     kCutHitsTOF ,
59     kCutHitsMUON,
60     kNCuts,           // number of single selections
61     kNStepQA=2        // number of QA steps (before/after the cuts)
62   };
63
64  protected:
65   AliMCEvent *fMCInfo;        // pointer to MC Information
66   Int_t       fMinNHitITS ;   // min number of track references in ITS 
67   Int_t       fMinNHitTPC ;   // min number of track references in TPC 
68   Int_t       fMinNHitTRD ;   // min number of track references in TRD 
69   Int_t       fMinNHitTOF ;   // min number of track references in TOF 
70   Int_t       fMinNHitMUON ;  // min number of track references in MUON
71   
72   //QA histos
73   TH1F*  fhCutStatistics;               // Histogram: statistics of what cuts the tracks did not survive
74   TH2F*  fhCutCorrelation;              // Histogram: 2d statistics plot
75   TH1F*  fhQA[kNCuts][kNStepQA];        // QA Histograms
76   TBits* fBitmap ;                      // stores single selection decisions
77   void SelectionBitMap(TObject* obj);
78   void FillHistograms(TObject* obj, Bool_t afterCuts);
79   void AddQAHistograms(TList *qaList) ;
80   void DefineHistograms();
81
82   ClassDef(AliCFAcceptanceCuts,1);
83 };
84
85 #endif