333b9f18 |
1 | void sim(Int_t nev=10) { |
2 | AliSimulation simu; |
3 | //simu.SetMakeSDigits("TRD TOF PHOS HMPID EMCAL FMD PMD T0 ZDC VZERO MUON HLT"); |
4 | //simu.SetMakeDigits ("TRD TOF PHOS HMPID EMCAL FMD PMD T0 ZDC VZERO MUON HLT"); |
5 | //simu.SetMakeDigitsFromHits("ITS TPC"); |
6 | //simu.SetWriteRawData("ALL","raw.root",kTRUE); |
7 | simu.SetDefaultStorage("alien://Folder=/alice/simulation/2008/v4-15-Release/Ideal/?cacheFold=/tmp/CDBCache?operateDisconnected=kFALSE"); |
8 | |
9 | // No write access to the OCDB => specific storage |
10 | simu.SetSpecificStorage("GRP/GRP/Data", |
11 | Form("local://%s",gSystem->pwd())); |
12 | |
13 | //simu.SetRunQA(":") ; |
14 | //simu.SetRunHLT(""); |
15 | //simu.SetWriteGRPEntry(kFALSE); |
16 | |
17 | //Merge with HIJING |
18 | //Load necessary libraries and connect to the GRID |
19 | gSystem->Load("libNetx.so") ; |
20 | gSystem->Load("libRAliEn.so"); |
21 | TGrid::Connect("alien://") ; |
22 | |
23 | //Feed Grid with collection file |
24 | TGridCollection * collection = (TGridCollection*) TAlienCollection::Open("collection.xml"); |
25 | if (! collection) { |
26 | AliError(Form("collection: %s not found", kXML)) ; |
27 | return kFALSE ; |
28 | } |
29 | TGridResult* result = collection->GetGridResult("",0 ,0); |
30 | TString alienURL = result->GetKey(0, "turl") ;//split all files in collection, only one is sent per job |
31 | cout << "================== " << alienURL << endl ; |
32 | simu.MergeWith(alienURL); |
33 | |
34 | TStopwatch timer; |
35 | timer.Start(); |
36 | simu.Run(nev); |
37 | WriteXsection(); |
38 | timer.Stop(); |
39 | timer.Print(); |
40 | } |
41 | |
42 | WriteXsection() |
43 | { |
44 | TPythia6 *pythia = TPythia6::Instance(); |
45 | pythia->Pystat(1); |
46 | Double_t xsection = pythia->GetPARI(1); |
47 | Int_t ntrials = pythia->GetMSTI(5); |
48 | |
49 | TTree *tree = new TTree("Xsection","Pythia cross section"); |
50 | TBranch *branch = tree->Branch("xsection", &xsection, "X/D"); |
51 | TBranch *branch = tree->Branch("ntrials" , &ntrials , "X/i"); |
52 | tree->Fill(); |
53 | |
54 | TFile *file = new TFile("pyxsec.root","recreate"); |
55 | tree->Write(); |
56 | file->Close(); |
57 | |
58 | cout << "Pythia cross section: " << xsection |
59 | << ", number of trials: " << ntrials << endl; |
60 | } |