- Disentangle masks effect from trigger chamber efficiency estimation.
[u/mrichter/AliRoot.git] / MUON / runSimulation.C
CommitLineData
4d717204 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
e54bf126 18/// \ingroup macros
19/// \file runSimulation.C
20/// \brief Macro for running simulation
21///
22/// Macro extracted from the MUON test script
23///
24/// \author Laurent Aphecetche
4d717204 25
26#if !defined(__CINT__) || defined(__MAKECINT__)
bde793f3 27#include "AliCDBManager.h"
28#include "AliSimulation.h"
67c48a1e 29#include "AliRun.h"
30#include "AliHeader.h"
bde793f3 31#include <TRandom.h>
67c48a1e 32#include <Riostream.h>
4d717204 33#endif
34
ca8c8223 35void runSimulation(int seed,
36 int nevents,
37 const char* config,
38 const char* embedwith)
4d717204 39{
40// Uncoment following lines to run simulation with local residual mis-alignment
41// (generated via MUONGenerateGeometryData.C macro)
42// AliCDBManager* man = AliCDBManager::Instance();
162637e4 43// man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
44// man->SetSpecificStorage("MUON/Align/Data","local://$ALICE_ROOT/OCDB/MUON/ResMisAlignCDB");
745f6baf 45
4d717204 46 AliSimulation MuonSim(config);
ca8c8223 47
48 if ( strlen(embedwith) > 0 )
49 {
50 // setups specific to embedding
51
52 gAlice->SetConfigFunction("Config(\"\", \"param\", \"AliMUONDigitStoreV2S\",kTRUE);");
53
54 // get the run number from real data
55
56 AliRunLoader* runLoader = AliRunLoader::Open(embedwith,"titi");
57 if (runLoader == 0x0)
58 {
67c48a1e 59 cerr << Form("Cannot open file %s",embedwith) << endl;
ca8c8223 60 return;
61 }
62
63 runLoader->LoadHeader();
64
65 if ( ! runLoader->GetHeader() ) {
67c48a1e 66 cerr << "Cannot load header." << endl;
ca8c8223 67 return;
68 }
69 else {
70 Int_t runNumber = runLoader->GetHeader()->GetRun();
71 MuonSim.SetRunNumber(runNumber);
72 cout << Form("***** RUN NUMBER SET TO %09d ACCORDING TO %s ",runNumber,embedwith) << endl;
73 }
74 runLoader->UnloadHeader();
75 delete runLoader;
76
77 cout << "***** EMBEDDING MODE : USING RAW OCDB" << endl;
78 AliCDBManager::Instance()->SetDefaultStorage("raw://");
79 AliCDBManager::Instance()->SetSpecificStorage("local://$ALICE_ROOT/OCDB","MUON/Calib/Gains");
80 AliCDBManager::Instance()->SetSpecificStorage("local://$ALICE_ROOT/OCDB","MUON/Align/Data");
81
82 }
83 else
84 {
85 gAlice->SetConfigFunction("Config(\"\", \"param\", \"AliMUONDigitStoreV2S\",kFALSE);");
86 }
87
034dd3ad 88 MuonSim.SetSeed(seed);
75e6f056 89 MuonSim.SetTriggerConfig("MUON");
e3817f97 90 MuonSim.SetWriteRawData("MUON HLT","raw.root",kTRUE);
1fa49dab 91
92 MuonSim.SetMakeDigits("MUON");
93 MuonSim.SetMakeSDigits("MUON");
94 MuonSim.SetMakeDigitsFromHits("");
95
e3817f97 96 MuonSim.SetRunHLT("libAliHLTMUON.so chains=dHLT-sim");
f1cdfa6d 97
ef0eadd8 98 MuonSim.SetRunQA("MUON:ALL");
99
ca8c8223 100 if ( strlen(embedwith) > 0 )
101 {
102 MuonSim.MergeWith(embedwith);
103 }
104
4d717204 105 MuonSim.Run(nevents);
106 //gObjectTable->Print();
1fa49dab 107
4d717204 108}