]>
Commit | Line | Data |
---|---|---|
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(); | |
22 | void SetParamMI() { fParamMI=kTRUE; fParamACORDE=kFALSE; fParamDataTPC=kFALSE; return; } | |
23 | void SetParamACORDE() { fParamMI=kFALSE; fParamACORDE=kTRUE; fParamDataTPC=kFALSE; return; } | |
24 | void SetParamDataTPC() { fParamMI=kFALSE; fParamACORDE=kFALSE; fParamDataTPC=kTRUE; return; } | |
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; } | |
30 | void SetInACORDE(Bool_t onlyACORDE4ITS=kFALSE) | |
31 | { fACORDE=kTRUE; fACORDE4ITS=onlyACORDE4ITS; return; } | |
32 | void SetInBottomScintillator() { fBottomScintillator=kTRUE; return; } | |
33 | void SetInTPC() { fTPC=kTRUE; return; } | |
34 | void SetInITS() { fITS=kTRUE; return; } | |
35 | void SetInSPDinner() { fSPDinner=kTRUE; return; } | |
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; } | |
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; | |
46 | Bool_t IntersectACORDE(Int_t pdg, | |
47 | Float_t o[3],Float_t p[3]) const; | |
48 | Bool_t IntersectBottomScintillator(Int_t pdg, | |
49 | Float_t o[3],Float_t p[3]) const; | |
50 | Bool_t fParamMI; // parametrization from M.Ivanov | |
51 | Bool_t fParamACORDE; // parametrization from AliGenACORDE | |
52 | Bool_t fParamDataTPC; // parametrization from TPC Summer08 cosmics | |
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 | |
59 | Bool_t fSPDinner; // acceptance cuts | |
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 | |
65 | Bool_t fACORDE; // acceptance cuts | |
66 | Bool_t fACORDE4ITS; // acceptance cuts | |
67 | Bool_t fBottomScintillator; // acceptance cuts | |
68 | ||
69 | ClassDef(AliGenCosmicsParam,5) // parametrized cosmics generator | |
70 | }; | |
71 | ||
72 | #endif |