X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FConfig.C;h=18f4a6fdc922b649e29a3f902acfcdad876cee93;hb=e2ee57278e1744c6573551d83090f758ec4f1ee4;hp=be3eadc276821119ee7fbc6ba6e0c17c4e3ad4c8;hpb=0aaf64c2bb22ff6cf18e469ff71a07909756d5ce;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/Config.C b/MUON/Config.C index be3eadc2768..18f4a6fdc92 100644 --- a/MUON/Config.C +++ b/MUON/Config.C @@ -1,15 +1,91 @@ -// Config file test for MUON spectormeter -// Remember to define the directory and option -// gAlice->SetConfigFunction("Config('$HOME','box');"); +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ -void Config(char directory[100]="", char option[6]="param", const char* digitstore="AliMUONDigitStoreV2S") +/* $Id$ */ + +/// \ingroup macros +/// \file Config.C +/// \brief Configuration macro for MUON spectormeter simulation +/// +/// Remember to define the directory and event generator option: +/// +/// gAlice->SetConfigFunction("Config('$HOME','box');"); +/// +/// Can be compiled by : +/// .L Config.C+ +/// (depends on the correct rootlogon.C though...) + +#if !defined(__CINT__) || defined(__MAKECINT__) + +#include "AliABSOv3.h" +#include "AliBODY.h" +#include "AliConfig.h" +#include "AliDIPOv3.h" +#include "AliDecayerPythia.h" +#include "AliFRAMEv2.h" +#include "AliGenBox.h" +#include "AliGenFixed.h" +#include "AliGenHijing.h" +#include "AliGenMUONCocktail.h" +#include "AliGenMUONlib.h" +#include "AliGenParam.h" +#include "AliGenScan.h" +#include "AliHALLv3.h" +#include "AliITSv11Hybrid.h" +#include "AliMAG.h" +#include "AliMagF.h" +#include "AliMUONv1.h" +#include "AliPIPEv3.h" +#include "AliRun.h" +#include "AliRunLoader.h" +#include "AliSHILv3.h" +#include +#include +#include +#include +#include +#include +#include +#include + +//#include "AliZDCv3.h" +//#include "AliFMDv1.h" +//#include "AliPMDv1.h" +//#include "AliVZEROv7.h" + +#endif + +void Config(const char* directory="", + const char* option="param", + const char* digitstore="AliMUONDigitStoreV2S", + bool forEmbedding=kFALSE) { //===================================================================== // Config file for MUON test //===================================================================== // Libraries required by geant321 + + gSystem->Load("liblhapdf.so"); // Parton density functions + gSystem->Load("libpythia6.so"); // Pythia gSystem->Load("libgeant321.so"); + gSystem->Load("libEG"); + gSystem->Load("libEGPythia6"); + gSystem->Load("libAliPythia6.so"); // ALICE specific implementations + new TGeant3TGeo("C++ Interface to Geant3"); + //======================================================================= // Create the output file Text_t filename[100]; @@ -70,7 +146,7 @@ void Config(char directory[100]="", char option[6]="param", const char* digitsto gener->SetMomentumRange(20.,20.1); gener->SetPhiRange(0., 360.); gener->SetThetaRange(171.000,178.001); - gener->SetPart(13); // Muons + gener->SetPart(kMuonMinus); // Muons gener->SetOrigin(0.,0., 0.); //vertex position gener->SetSigma(0.0, 0.0, 0.0); //Sigma in (X,Y,Z) (cm) on IP position } @@ -80,7 +156,7 @@ void Config(char directory[100]="", char option[6]="param", const char* digitsto gener->SetPhiRange(0.); gener->SetThetaRange(0.); gener->SetOrigin(30,30,-1200);//vertex position - gener->SetPart(13); //GEANT particle type 13 is muons + gener->SetPart(kMuonMinus); //GEANT particle type 13 is muons } if (!strcmp(option,"scan")) { AliGenScan *gener = new AliGenScan(-1); @@ -105,6 +181,19 @@ void Config(char directory[100]="", char option[6]="param", const char* digitsto gener->SetTrackingFlag(1); gener->Init(); } + if (!strcmp(option,"paramJpsi")) { + AliGenParam *gener = new AliGenParam(1, AliGenMUONlib::kJpsi); + gener->SetMomentumRange(0,999); + gener->SetPtRange(0,100.); + gener->SetPhiRange(0., 360.); + gener->SetCutOnChild(1); + gener->SetChildPhiRange(0.,360.); + gener->SetChildThetaRange(171.0,178.0); + gener->SetOrigin(0,0,0); + gener->SetForceDecay(kDiMuon); + gener->SetTrackingFlag(1); + gener->Init(); + } if (!strcmp(option,"hijing")) { //Hijing generator from ConfigPPR in macros AliGenHijing *gener = new AliGenHijing(-1); // centre of mass energy @@ -146,21 +235,20 @@ void Config(char directory[100]="", char option[6]="param", const char* digitsto } //============================================================= // Field (L3 0.5 T) - AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG); - gAlice->SetField(field); + TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", -1., -1, AliMagF::k5kG)); //============================================================= //=================== Alice BODY parameters ============================= - AliBODY *BODY = new AliBODY("BODY","Alice envelop"); + new AliBODY("BODY","Alice envelop"); //=================== ABSO parameters ============================ - AliABSO *ABSO = new AliABSOv3("ABSO", "Muon Absorber"); + new AliABSOv3("ABSO", "Muon Absorber"); //=================== DIPO parameters ============================ - AliDIPO *DIPO = new AliDIPOv3("DIPO", "Dipole version 2"); + new AliDIPOv3("DIPO", "Dipole version 2"); //================== HALL parameters ============================ - AliHALL *HALL = new AliHALLv3("HALL", "Alice Hall"); + new AliHALLv3("HALL", "Alice Hall"); //=================== PIPE parameters ============================ - AliPIPE *PIPE = new AliPIPEv3("PIPE", "Beam Pipe"); + new AliPIPEv3("PIPE", "Beam Pipe"); //=================== SHIL parameters ============================ - AliSHIL *SHIL = new AliSHILv3("SHIL", "Shielding Version 2"); + new AliSHILv3("SHIL", "Shielding Version 2"); //=================== MUON Subsystem =========================== AliMUON *MUON = new AliMUONv1("MUON", "default"); @@ -174,14 +262,26 @@ void Config(char directory[100]="", char option[6]="param", const char* digitsto // activate trigger chamber efficiency by cells (0=default, 1=trigger efficiency according to AliMUONTriggerEfficiencyCells // MUON->SetTriggerEffCells(0); + // Activate the following line when running with Fluka + // MUON->SetIsMaxStep(kFALSE); + // Use SetDigitStoreClassName() to change the digitStore implementation used by (s)digitizer MUON->SetDigitStoreClassName(digitstore); + + if ( forEmbedding ) + { + // Noise-only digits in tracker/trigger (0=no noise, 1=default (noise in tracker), 2=noise in tracker and trigger): + cout << "****** DISABLING NOISE GENERATION AS WE DO EMBEDDING ******" << endl; + MUON->SetDigitizerWithNoise(0); + + new AliITSv11Hybrid("ITS","ITS v11Hybrid"); + + } - cout << "MUON DigitStore is " << MUON->DigitStoreClassName().Data() << endl; + // Use non-high performance raw data decoder + //MUON->SetFastTrackerDecoder(kFALSE); + //MUON->SetFastTriggerDecoder(kFALSE); - // Noise-only digits in tracker/trigger (0=no noise, 1=default (noise in tracker), 2=noise in tracker and trigger): - //MUON->SetDigitizerWithNoise(kFALSE); - // // If SetAlign, the detection elements transformations // are taken from the input file and not from the code @@ -189,6 +289,9 @@ void Config(char directory[100]="", char option[6]="param", const char* digitsto // To generate and read scaler trigger events in rawdata // MUON->SetTriggerScalerEvent(); + + // To switch off the tail effect + // MUON->SetTailEffect(kFALSE); // If you want to play with builders, first reset the geometry builder, // and then add yours.