ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/


///////////////////////////////////////////////////////////////////////////
//          ----   CORRECTION FRAMEWORK   ----
// AliCFAcceptanceCuts implementation
// Class to cut on the number of AliTrackReference's 
// for each detector
///////////////////////////////////////////////////////////////////////////
// author : R. Vernet (renaud.vernet@cern.ch)
///////////////////////////////////////////////////////////////////////////


#ifndef ALICFACCEPTANCECUTS_H
#define ALICFACCEPTANCECUTS_H

#include "AliCFCutBase.h"

class AliMCEvent;
class TH1F ;
class TH2F ;
class TBits;

class AliCFAcceptanceCuts : public AliCFCutBase
{
 public :
  AliCFAcceptanceCuts() ;
  AliCFAcceptanceCuts(const Char_t* name, const Char_t* title) ;
  AliCFAcceptanceCuts(const AliCFAcceptanceCuts& c) ;
  AliCFAcceptanceCuts& operator=(const AliCFAcceptanceCuts& c) ;
  virtual ~AliCFAcceptanceCuts() { };
  virtual Bool_t IsSelected(TObject* obj) ;
  virtual Bool_t IsSelected(TList*  /*list*/) {return kTRUE;}
  virtual void   SetMCEventInfo(const TObject* mcInfo) ;
  void SetMinNHitITS (Int_t nhits) {fMinNHitITS=nhits;} 
  void SetMinNHitTPC (Int_t nhits) {fMinNHitTPC=nhits;} 
  void SetMinNHitTRD (Int_t nhits) {fMinNHitTRD=nhits;} 
  void SetMinNHitTOF (Int_t nhits) {fMinNHitTOF=nhits;} 
  void SetMinNHitMUON(Int_t nhits) {fMinNHitMUON=nhits;}

  enum { 
    kCutHitsITS ,
    kCutHitsTPC ,
    kCutHitsTRD ,
    kCutHitsTOF ,
    kCutHitsMUON,
    kNCuts,           // number of single selections
    kNStepQA=2        // number of QA steps (before/after the cuts)
  };

 protected:
  AliMCEvent *fMCInfo;        // pointer to MC Information
  Int_t       fMinNHitITS ;   // min number of track references in ITS 
  Int_t       fMinNHitTPC ;   // min number of track references in TPC 
  Int_t       fMinNHitTRD ;   // min number of track references in TRD 
  Int_t       fMinNHitTOF ;   // min number of track references in TOF 
  Int_t       fMinNHitMUON ;  // min number of track references in MUON
  
  //QA histos
  TH1F*  fhCutStatistics;		// Histogram: statistics of what cuts the tracks did not survive
  TH2F*  fhCutCorrelation;		// Histogram: 2d statistics plot
  TH1F*  fhQA[kNCuts][kNStepQA];        // QA Histograms
  TBits* fBitmap ; 			// stores single selection decisions
  void SelectionBitMap(TObject* obj);
  void FillHistograms(TObject* obj, Bool_t afterCuts);
  void AddQAHistograms(TList *qaList) ;
  void DefineHistograms();

  ClassDef(AliCFAcceptanceCuts,1);
};

#endif
 AliCFAcceptanceCuts.h:1
 AliCFAcceptanceCuts.h:2
 AliCFAcceptanceCuts.h:3
 AliCFAcceptanceCuts.h:4
 AliCFAcceptanceCuts.h:5
 AliCFAcceptanceCuts.h:6
 AliCFAcceptanceCuts.h:7
 AliCFAcceptanceCuts.h:8
 AliCFAcceptanceCuts.h:9
 AliCFAcceptanceCuts.h:10
 AliCFAcceptanceCuts.h:11
 AliCFAcceptanceCuts.h:12
 AliCFAcceptanceCuts.h:13
 AliCFAcceptanceCuts.h:14
 AliCFAcceptanceCuts.h:15
 AliCFAcceptanceCuts.h:16
 AliCFAcceptanceCuts.h:17
 AliCFAcceptanceCuts.h:18
 AliCFAcceptanceCuts.h:19
 AliCFAcceptanceCuts.h:20
 AliCFAcceptanceCuts.h:21
 AliCFAcceptanceCuts.h:22
 AliCFAcceptanceCuts.h:23
 AliCFAcceptanceCuts.h:24
 AliCFAcceptanceCuts.h:25
 AliCFAcceptanceCuts.h:26
 AliCFAcceptanceCuts.h:27
 AliCFAcceptanceCuts.h:28
 AliCFAcceptanceCuts.h:29
 AliCFAcceptanceCuts.h:30
 AliCFAcceptanceCuts.h:31
 AliCFAcceptanceCuts.h:32
 AliCFAcceptanceCuts.h:33
 AliCFAcceptanceCuts.h:34
 AliCFAcceptanceCuts.h:35
 AliCFAcceptanceCuts.h:36
 AliCFAcceptanceCuts.h:37
 AliCFAcceptanceCuts.h:38
 AliCFAcceptanceCuts.h:39
 AliCFAcceptanceCuts.h:40
 AliCFAcceptanceCuts.h:41
 AliCFAcceptanceCuts.h:42
 AliCFAcceptanceCuts.h:43
 AliCFAcceptanceCuts.h:44
 AliCFAcceptanceCuts.h:45
 AliCFAcceptanceCuts.h:46
 AliCFAcceptanceCuts.h:47
 AliCFAcceptanceCuts.h:48
 AliCFAcceptanceCuts.h:49
 AliCFAcceptanceCuts.h:50
 AliCFAcceptanceCuts.h:51
 AliCFAcceptanceCuts.h:52
 AliCFAcceptanceCuts.h:53
 AliCFAcceptanceCuts.h:54
 AliCFAcceptanceCuts.h:55
 AliCFAcceptanceCuts.h:56
 AliCFAcceptanceCuts.h:57
 AliCFAcceptanceCuts.h:58
 AliCFAcceptanceCuts.h:59
 AliCFAcceptanceCuts.h:60
 AliCFAcceptanceCuts.h:61
 AliCFAcceptanceCuts.h:62
 AliCFAcceptanceCuts.h:63
 AliCFAcceptanceCuts.h:64
 AliCFAcceptanceCuts.h:65
 AliCFAcceptanceCuts.h:66
 AliCFAcceptanceCuts.h:67
 AliCFAcceptanceCuts.h:68
 AliCFAcceptanceCuts.h:69
 AliCFAcceptanceCuts.h:70
 AliCFAcceptanceCuts.h:71
 AliCFAcceptanceCuts.h:72
 AliCFAcceptanceCuts.h:73
 AliCFAcceptanceCuts.h:74
 AliCFAcceptanceCuts.h:75
 AliCFAcceptanceCuts.h:76
 AliCFAcceptanceCuts.h:77
 AliCFAcceptanceCuts.h:78
 AliCFAcceptanceCuts.h:79
 AliCFAcceptanceCuts.h:80
 AliCFAcceptanceCuts.h:81
 AliCFAcceptanceCuts.h:82
 AliCFAcceptanceCuts.h:83
 AliCFAcceptanceCuts.h:84
 AliCFAcceptanceCuts.h:85