ROOT logo
#ifndef ALIGENCOSMICSPARAM_H
#define ALIGENCOSMICSPARAM_H
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// Generator for muons according to kinematic parametrizations at ALICE
// (not at the surface).
// Origin: andrea.dainese@lnl.infn.it


#include "AliLog.h"
#include "AliGenerator.h"

class AliGenCosmicsParam : public AliGenerator
{
public:

  AliGenCosmicsParam();
  virtual ~AliGenCosmicsParam() {}
  virtual void Generate();
  virtual void Init();
  void SetParamMI() { fParamMI=kTRUE; fParamACORDE=kFALSE; fParamDataTPC=kFALSE; return; }
  void SetParamACORDE() { fParamMI=kFALSE; fParamACORDE=kTRUE; fParamDataTPC=kFALSE; return; }
  void SetParamDataTPC() { fParamMI=kFALSE; fParamACORDE=kFALSE; fParamDataTPC=kTRUE; return; }
  void SetYOrigin(Float_t y=600.) { fYOrigin=y; return; }
  void SetMaxAngleWRTVertical(Float_t max=45.) { 
      if(max<0. || max>90.) AliFatal("angle must be in [0,pi/2]");
      fMaxAngleWRTVertical=max; return; }
  void SetBkG(Float_t b) { fBkG=b; return; }
  void SetInACORDE(Bool_t onlyACORDE4ITS=kFALSE) 
    { fACORDE=kTRUE; fACORDE4ITS=onlyACORDE4ITS; return; }
  void SetInBottomScintillator() { fBottomScintillator=kTRUE; return; }
  void SetInTPC() { fTPC=kTRUE; return; }
  void SetInITS() { fITS=kTRUE; return; }
  void SetInSPDinner() { fSPDinner=kTRUE; return; }
  void SetInSPDouter() { fSPDouter=kTRUE; return; }
  void SetInSDDinner() { fSDDinner=kTRUE; return; }
  void SetInSDDouter() { fSDDouter=kTRUE; return; }
  void SetInSSDinner() { fSSDinner=kTRUE; return; }
  void SetInSSDouter() { fSSDouter=kTRUE; return; }

private:

  Bool_t IntersectCylinder(Float_t r,Float_t z,Int_t pdg,
			   Float_t o[3],Float_t p[3]) const;  
  Bool_t IntersectACORDE(Int_t pdg,
			 Float_t o[3],Float_t p[3]) const;
  Bool_t IntersectBottomScintillator(Int_t pdg,
				     Float_t o[3],Float_t p[3]) const; 
  Bool_t fParamMI;              // parametrization from M.Ivanov
  Bool_t fParamACORDE;          // parametrization from AliGenACORDE 
  Bool_t fParamDataTPC;         // parametrization from TPC Summer08 cosmics 
                                // (parametrized at ALICE y)
  Float_t fYOrigin;             // y of muon origin
  Float_t fMaxAngleWRTVertical; // maximum angle between momentum and y axis
  Float_t fBkG;                 // field in kGauss
  Bool_t fTPC;                  // acceptance cuts
  Bool_t fITS;                  // acceptance cuts
  Bool_t fSPDinner;             // acceptance cuts
  Bool_t fSPDouter;             // acceptance cuts
  Bool_t fSDDinner;             // acceptance cuts
  Bool_t fSDDouter;             // acceptance cuts
  Bool_t fSSDinner;             // acceptance cuts
  Bool_t fSSDouter;             // acceptance cuts
  Bool_t fACORDE;               // acceptance cuts
  Bool_t fACORDE4ITS;           // acceptance cuts
  Bool_t fBottomScintillator;   // acceptance cuts

  ClassDef(AliGenCosmicsParam,5) // parametrized cosmics generator
};

#endif
 AliGenCosmicsParam.h:1
 AliGenCosmicsParam.h:2
 AliGenCosmicsParam.h:3
 AliGenCosmicsParam.h:4
 AliGenCosmicsParam.h:5
 AliGenCosmicsParam.h:6
 AliGenCosmicsParam.h:7
 AliGenCosmicsParam.h:8
 AliGenCosmicsParam.h:9
 AliGenCosmicsParam.h:10
 AliGenCosmicsParam.h:11
 AliGenCosmicsParam.h:12
 AliGenCosmicsParam.h:13
 AliGenCosmicsParam.h:14
 AliGenCosmicsParam.h:15
 AliGenCosmicsParam.h:16
 AliGenCosmicsParam.h:17
 AliGenCosmicsParam.h:18
 AliGenCosmicsParam.h:19
 AliGenCosmicsParam.h:20
 AliGenCosmicsParam.h:21
 AliGenCosmicsParam.h:22
 AliGenCosmicsParam.h:23
 AliGenCosmicsParam.h:24
 AliGenCosmicsParam.h:25
 AliGenCosmicsParam.h:26
 AliGenCosmicsParam.h:27
 AliGenCosmicsParam.h:28
 AliGenCosmicsParam.h:29
 AliGenCosmicsParam.h:30
 AliGenCosmicsParam.h:31
 AliGenCosmicsParam.h:32
 AliGenCosmicsParam.h:33
 AliGenCosmicsParam.h:34
 AliGenCosmicsParam.h:35
 AliGenCosmicsParam.h:36
 AliGenCosmicsParam.h:37
 AliGenCosmicsParam.h:38
 AliGenCosmicsParam.h:39
 AliGenCosmicsParam.h:40
 AliGenCosmicsParam.h:41
 AliGenCosmicsParam.h:42
 AliGenCosmicsParam.h:43
 AliGenCosmicsParam.h:44
 AliGenCosmicsParam.h:45
 AliGenCosmicsParam.h:46
 AliGenCosmicsParam.h:47
 AliGenCosmicsParam.h:48
 AliGenCosmicsParam.h:49
 AliGenCosmicsParam.h:50
 AliGenCosmicsParam.h:51
 AliGenCosmicsParam.h:52
 AliGenCosmicsParam.h:53
 AliGenCosmicsParam.h:54
 AliGenCosmicsParam.h:55
 AliGenCosmicsParam.h:56
 AliGenCosmicsParam.h:57
 AliGenCosmicsParam.h:58
 AliGenCosmicsParam.h:59
 AliGenCosmicsParam.h:60
 AliGenCosmicsParam.h:61
 AliGenCosmicsParam.h:62
 AliGenCosmicsParam.h:63
 AliGenCosmicsParam.h:64
 AliGenCosmicsParam.h:65
 AliGenCosmicsParam.h:66
 AliGenCosmicsParam.h:67
 AliGenCosmicsParam.h:68
 AliGenCosmicsParam.h:69
 AliGenCosmicsParam.h:70
 AliGenCosmicsParam.h:71
 AliGenCosmicsParam.h:72