]>
Commit | Line | Data |
---|---|---|
7b4a37c0 | 1 | #ifndef ALIGENCOSMICSPARAM_H |
2 | #define ALIGENCOSMICSPARAM_H | |
3 | /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | // Generator for muons according to kinematic parametrizations at ALICE | |
7 | // (not at the surface). | |
8 | // Origin: andrea.dainese@lnl.infn.it | |
9 | ||
10 | ||
11 | #include "AliLog.h" | |
12 | #include "AliGenerator.h" | |
13 | ||
14 | class AliGenCosmicsParam : public AliGenerator | |
15 | { | |
16 | public: | |
17 | ||
18 | AliGenCosmicsParam(); | |
19 | virtual ~AliGenCosmicsParam() {} | |
20 | virtual void Generate(); | |
21 | virtual void Init(); | |
48eed0c3 | 22 | void SetParamMI() { fParamMI=kTRUE; fParamACORDE=kFALSE; fParamDataTPC=kFALSE; return; } |
23 | void SetParamACORDE() { fParamMI=kFALSE; fParamACORDE=kTRUE; fParamDataTPC=kFALSE; return; } | |
65d7da27 | 24 | void SetParamDataTPC() { fParamMI=kFALSE; fParamACORDE=kFALSE; fParamDataTPC=kTRUE; return; } |
7b4a37c0 | 25 | void SetYOrigin(Float_t y=600.) { fYOrigin=y; return; } |
26 | void SetMaxAngleWRTVertical(Float_t max=45.) { | |
27 | if(max<0. || max>90.) AliFatal("angle must be in [0,pi/2]"); | |
28 | fMaxAngleWRTVertical=max; return; } | |
29 | void SetBkG(Float_t b) { fBkG=b; return; } | |
d764c7b8 | 30 | void SetInACORDE(Bool_t onlyACORDE4ITS=kFALSE) |
31 | { fACORDE=kTRUE; fACORDE4ITS=onlyACORDE4ITS; return; } | |
34217575 | 32 | void SetInBottomScintillator() { fBottomScintillator=kTRUE; return; } |
7b4a37c0 | 33 | void SetInTPC() { fTPC=kTRUE; return; } |
34 | void SetInITS() { fITS=kTRUE; return; } | |
7b4a37c0 | 35 | void SetInSPDinner() { fSPDinner=kTRUE; return; } |
d764c7b8 | 36 | void SetInSPDouter() { fSPDouter=kTRUE; return; } |
37 | void SetInSDDinner() { fSDDinner=kTRUE; return; } | |
38 | void SetInSDDouter() { fSDDouter=kTRUE; return; } | |
39 | void SetInSSDinner() { fSSDinner=kTRUE; return; } | |
40 | void SetInSSDouter() { fSSDouter=kTRUE; return; } | |
7b4a37c0 | 41 | |
42 | private: | |
43 | ||
44 | Bool_t IntersectCylinder(Float_t r,Float_t z,Int_t pdg, | |
45 | Float_t o[3],Float_t p[3]) const; | |
fb2a6a7f | 46 | Bool_t IntersectACORDE(Int_t pdg, |
47 | Float_t o[3],Float_t p[3]) const; | |
34217575 | 48 | Bool_t IntersectBottomScintillator(Int_t pdg, |
49 | Float_t o[3],Float_t p[3]) const; | |
7b4a37c0 | 50 | Bool_t fParamMI; // parametrization from M.Ivanov |
51 | Bool_t fParamACORDE; // parametrization from AliGenACORDE | |
48eed0c3 | 52 | Bool_t fParamDataTPC; // parametrization from TPC Summer08 cosmics |
7b4a37c0 | 53 | // (parametrized at ALICE y) |
54 | Float_t fYOrigin; // y of muon origin | |
55 | Float_t fMaxAngleWRTVertical; // maximum angle between momentum and y axis | |
56 | Float_t fBkG; // field in kGauss | |
57 | Bool_t fTPC; // acceptance cuts | |
58 | Bool_t fITS; // acceptance cuts | |
7b4a37c0 | 59 | Bool_t fSPDinner; // acceptance cuts |
d764c7b8 | 60 | Bool_t fSPDouter; // acceptance cuts |
61 | Bool_t fSDDinner; // acceptance cuts | |
62 | Bool_t fSDDouter; // acceptance cuts | |
63 | Bool_t fSSDinner; // acceptance cuts | |
64 | Bool_t fSSDouter; // acceptance cuts | |
fb2a6a7f | 65 | Bool_t fACORDE; // acceptance cuts |
d764c7b8 | 66 | Bool_t fACORDE4ITS; // acceptance cuts |
34217575 | 67 | Bool_t fBottomScintillator; // acceptance cuts |
7b4a37c0 | 68 | |
48eed0c3 | 69 | ClassDef(AliGenCosmicsParam,5) // parametrized cosmics generator |
7b4a37c0 | 70 | }; |
71 | ||
72 | #endif |