Update timestamps for new AMANDA simulation (17/02/2015)
[u/mrichter/AliRoot.git] / EVGEN / AliGenCosmicsParam.h
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