]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/forward/SPDClustTask/runAAFSPDTask.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / forward / SPDClustTask / runAAFSPDTask.C
CommitLineData
d854076c 1//
2void 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}