Line data Source code
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 0 : virtual ~AliGenCosmicsParam() {}
20 : virtual void Generate();
21 : virtual void Init();
22 0 : void SetParamMI() { fParamMI=kTRUE; fParamACORDE=kFALSE; fParamDataTPC=kFALSE; return; }
23 0 : void SetParamACORDE() { fParamMI=kFALSE; fParamACORDE=kTRUE; fParamDataTPC=kFALSE; return; }
24 0 : void SetParamDataTPC() { fParamMI=kFALSE; fParamACORDE=kFALSE; fParamDataTPC=kTRUE; return; }
25 0 : void SetYOrigin(Float_t y=600.) { fYOrigin=y; return; }
26 : void SetMaxAngleWRTVertical(Float_t max=45.) {
27 0 : if(max<0. || max>90.) AliFatal("angle must be in [0,pi/2]");
28 0 : fMaxAngleWRTVertical=max; return; }
29 0 : void SetBkG(Float_t b) { fBkG=b; return; }
30 : void SetInACORDE(Bool_t onlyACORDE4ITS=kFALSE)
31 0 : { fACORDE=kTRUE; fACORDE4ITS=onlyACORDE4ITS; return; }
32 0 : void SetInBottomScintillator() { fBottomScintillator=kTRUE; return; }
33 0 : void SetInTPC() { fTPC=kTRUE; return; }
34 0 : void SetInITS() { fITS=kTRUE; return; }
35 0 : void SetInSPDinner() { fSPDinner=kTRUE; return; }
36 0 : void SetInSPDouter() { fSPDouter=kTRUE; return; }
37 0 : void SetInSDDinner() { fSDDinner=kTRUE; return; }
38 0 : void SetInSDDouter() { fSDDouter=kTRUE; return; }
39 0 : void SetInSSDinner() { fSSDinner=kTRUE; return; }
40 0 : 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 6 : ClassDef(AliGenCosmicsParam,5) // parametrized cosmics generator
70 : };
71 :
72 : #endif
|