Add Config/HighVoltage directory and entry
[u/mrichter/AliRoot.git] / CORRFW / AliCFParticleGenCuts.h
CommitLineData
563113d0 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// AliCFParticleGenCut implementation
18// This class is designed to handle
19// particle selection at generated level.
20//
21// author : R. Vernet (renaud.vernet@cern.ch)
22//////////////////////////////////////////////////////////////////////
23
24
25#ifndef ALICFPARTICLEGENCUTS_H
26#define ALICFPARTICLEGENCUTS_H
27
28#include "AliCFCutBase.h"
29
30class AliMCEventHandler;
31class TObject;
32class AliMCParticle;
33class AliStack;
34
35class AliCFParticleGenCuts : public AliCFCutBase
36{
37 public :
38 AliCFParticleGenCuts() ;
39 AliCFParticleGenCuts (const Char_t* name, const Char_t* title) ;
40 AliCFParticleGenCuts (const AliCFParticleGenCuts& c) ;
41 AliCFParticleGenCuts& operator=(const AliCFParticleGenCuts& c) ;
42 virtual ~AliCFParticleGenCuts() { };
43 virtual Bool_t IsSelected(TObject* obj) ;
44 virtual void SetEvtInfo(TObject* mcInfo) ;
45 //static checkers
46 static Bool_t IsPrimaryCharged(AliMCParticle *mcPart,AliStack*stack);
47 static Bool_t IsPrimary(AliMCParticle *mcPart,AliStack*stack);
48 static Bool_t IsCharged(AliMCParticle *mcPart);
49 static Bool_t IsA(AliMCParticle *mcPart, Int_t pdg, Bool_t abs=kFALSE);
50
51 void SetRequireIsCharged (Bool_t b=kTRUE) {fRequireIsCharged=b;}
52 void SetRequireIsPrimary (Bool_t b=kTRUE) {fRequireIsPrimary=b;}
53 void SetRequireIsSecondary (Bool_t b=kTRUE) {fRequireIsSecondary=b;}
54 void SetRequirePdgCode (Int_t pdg) {fRequirePdgCode=kTRUE; fPdgCode=pdg;}
55 void SetProdVtxRangeX (Double32_t xmin, Double32_t xmax) {fProdVtxXMin =xmin; fProdVtxXMax =xmax;}
56 void SetProdVtxRangeY (Double32_t ymin, Double32_t ymax) {fProdVtxYMin =ymin; fProdVtxYMax =ymax;}
57 void SetProdVtxRangeZ (Double32_t zmin, Double32_t zmax) {fProdVtxZMin =zmin; fProdVtxZMax =zmax;}
58 void SetDecayVtxRangeX (Double32_t xmin, Double32_t xmax) {fDecayVtxXMin =xmin; fDecayVtxXMax =xmax;}
59 void SetDecayVtxRangeY (Double32_t ymin, Double32_t ymax) {fDecayVtxYMin =ymin; fDecayVtxYMax =ymax;}
60 void SetDecayVtxRangeZ (Double32_t zmin, Double32_t zmax) {fDecayVtxZMin =zmin; fDecayVtxZMax =zmax;}
61 void SetDecayLengthRange (Double32_t rmin, Double32_t rmax) {fDecayLengthMin=rmin; fDecayLengthMax=rmax;}
62 void SetDecayRxyRange (Double32_t rmin, Double32_t rmax) {fDecayRxyMin =rmin; fDecayRxyMax =rmax;}
63
64 protected:
65 AliMCEventHandler* fMCInfo ; // pointer to the MC event information
66 Bool_t fRequireIsCharged; // require charged particle
67 Bool_t fRequireIsPrimary; // require primary particle
68 Bool_t fRequireIsSecondary; // require secondary particle
69 Bool_t fRequirePdgCode; // require check of the PDG code
70 Int_t fPdgCode ; // particle PDG code
71 Double32_t fProdVtxXMin; // min X of particle production vertex
72 Double32_t fProdVtxYMin; // min Y of particle production vertex
73 Double32_t fProdVtxZMin; // min Z of particle production vertex
74 Double32_t fProdVtxXMax; // max X of particle production vertex
75 Double32_t fProdVtxYMax; // max Y of particle production vertex
76 Double32_t fProdVtxZMax; // max Z of particle production vertex
77 Double32_t fDecayVtxXMin; // min X of particle decay vertex
78 Double32_t fDecayVtxYMin; // min Y of particle decay vertex
79 Double32_t fDecayVtxZMin; // min Z of particle decay vertex
80 Double32_t fDecayVtxXMax; // max X of particle decay vertex
81 Double32_t fDecayVtxYMax; // max Y of particle decay vertex
82 Double32_t fDecayVtxZMax; // max Z of particle decay vertex
83 Double32_t fDecayLengthMin; // min decay length (absolute)
84 Double32_t fDecayLengthMax; // max decay length (absolute)
85 Double32_t fDecayRxyMin; // min decay length in transverse plane wrt (0,0,0)
86 Double32_t fDecayRxyMax; // max decay length in transverse plane wrt (0,0,0)
87
88 ClassDef(AliCFParticleGenCuts,1);
89};
90
91#endif