]>
Commit | Line | Data |
---|---|---|
d854076c | 1 | // |
2 | void runAAFSPDTask(TString dataset="/alice/sim/LHC11d2_000119161", | |
3 | TString outFName = "spdres.root", | |
4 | Int_t nEvents = -1,//3000, | |
5 | Float_t etaMin =-1.5, // min eta range to fill in histos | |
6 | Float_t etaMax = 1.5, // max eta range to fill in histos | |
7 | Float_t zMin = -5, // process events with Z vertex min | |
8 | Float_t zMax = 5, // max positions | |
9 | // | |
10 | Float_t cutSigNStd = 1., // cut on weighed distance used to extract signal | |
11 | Float_t cutSigDPhiS = -1, // cut on dPhi-phiBent used to extract signal (if negative -> dphi*sqrt(cutSigNStd) | |
12 | Bool_t useMC = kTRUE, // fill MC info (doRec=kTRUE) | |
13 | // | |
14 | // specific parameters for reconstruction | |
15 | float phiRot = 3.14159e+00, // angle for bg. generation with rotation | |
16 | Bool_t scaleDTheta = kTRUE, // scale dTheta by 1/sin^2(theta) in trackleting | |
17 | float nStdDev = 1., // number of st.dev. for tracklet cut to keep | |
18 | float dphi = 0.06, // dphi window (sigma of tracklet cut) | |
19 | float dtht = 0.025, // dtheta .... (if negative, abs will be used with additional cut on |dthetaX|, apart from w.distance | |
20 | float phishift = 0.0045, // bending shift | |
21 | Bool_t remOvl = kTRUE, | |
22 | float ovlPhiCut = 0.005, | |
23 | float ovlZetaCut = 0.05, | |
24 | Int_t nEventsSkip = 0, | |
25 | // | |
26 | TString alirootVer = "VO_ALICE@AliRoot::v5-03-15-AN", | |
27 | TString rootVer = "VO_ALICE@ROOT::v5-33-02a", | |
28 | // | |
29 | TString proofCluster="cheshkov@alice-caf.cern.ch" | |
30 | ) | |
31 | { | |
32 | // | |
33 | Bool_t runLocal = kFALSE;//kTRUE; // true only for local test mode | |
34 | if (runLocal) { | |
35 | // dataset = "/default/shahoian/test_pp";//"/default/shahoian/test"; | |
36 | dataset = "default/shahoian/test_sim_lhc11b1a"; | |
37 | proofCluster = ""; | |
38 | alirootVer = "AliRootProofLite"; | |
39 | nEvents = 500; | |
40 | } | |
41 | // | |
42 | if ((!dataset.Contains("sim")) && useMC) { | |
43 | printf("Running with read data dataset, switching OFF useMC\n"); | |
44 | useMC = kFALSE; | |
45 | } | |
46 | // | |
47 | printf("Requested: %s %s\n",alirootVer.Data(), rootVer.Data()); | |
48 | printf("Output expected in %s\n",outFName.Data()); | |
49 | // | |
50 | gEnv->SetValue("XSec.GSI.DelegProxy","2"); | |
51 | // | |
52 | TString alirootMode="REC";//"REC"; | |
53 | TString extraLibs = "ITSrec:CDB:Geom:"; // not needed in default aliroot mode | |
54 | //extraLibs+= "ANALYSIS:ANALYSISalice"; | |
55 | extraLibs+= "ANALYSIS:OADB:ANALYSISalice:EventMixing"; | |
56 | TList *list = new TList(); | |
57 | // sets $ALIROOT_MODE on each worker to let proof to know to run in special mode | |
58 | list->Add(new TNamed("ALIROOT_MODE" , alirootMode.Data())); | |
59 | list->Add(new TNamed("ALIROOT_EXTRA_LIBS", extraLibs.Data())); | |
60 | list->Add(new TNamed("ALIROOT_EXTRA_INCLUDES", "ITS:include")); | |
61 | list->Add(new TNamed("ALIROOT_ENABLE_ALIEN","1")); | |
62 | // | |
63 | //REM: same version of AliRoot on client!!!!! Otherwise error!! | |
64 | TProof::Mgr(proofCluster.Data())->SetROOTVersion(rootVer.Data()); | |
65 | // TProof::Open(proofCluster.Data());//,"workers=10x"); | |
66 | TProof::Open(proofCluster.Data(),"workers=1x"); | |
67 | if (!gProof) { | |
68 | Error("runAAFMulti.C","Connection to AF failed."); | |
69 | return; | |
70 | } | |
71 | // gProof->Exec("TObject *o = gEnv->GetTable()->FindObject(\"Proof.UseMergers\");" | |
72 | // "gEnv->GetTable()->Remove(o);", kTRUE); | |
73 | gProof->SetParameter("PROOF_UseMergers", 0); | |
74 | // Lets enable aliroot + extra libs on proof cluster | |
75 | if (runLocal) gProof->UploadPackage(alirootVer.Data()); | |
76 | gProof->EnablePackage(alirootVer.Data(), list); | |
77 | // gProof->EnablePackage(alirootVer.Data()); | |
78 | // | |
79 | if (runLocal) { | |
80 | Int_t numWorkers = gProof->GetParallel(); | |
81 | if (numWorkers<1) {printf("No workers\n"); return;} | |
82 | gProof->SetParameter("PROOF_PacketizerStrategy", (Int_t)0); | |
83 | int frac = (Int_t) 5 / numWorkers; | |
84 | if (frac<1) frac = 1; | |
85 | gProof->SetParameter("PROOF_PacketAsAFraction", frac); | |
86 | } | |
87 | // | |
88 | gROOT->LoadMacro(Form("%s/AnalysisSPDClustTask.C",gSystem->pwd())); | |
89 | TStopwatch sw; | |
90 | sw.Start(); | |
91 | AnalysisSPDClustTask(dataset,outFName,nEvents,etaMin,etaMax,zMin,zMax, | |
92 | cutSigNStd,cutSigDPhiS,useMC, | |
93 | scaleDTheta,nStdDev,dphi,dtht, | |
94 | phishift,remOvl,ovlPhiCut,ovlZetaCut,nEventsSkip); | |
95 | // | |
96 | sw.Stop(); | |
97 | sw.Print(); | |
98 | } |