Analysis task to study the extra SPD clusters.
[u/mrichter/AliRoot.git] / PWGPP / forward / SPDClustTask / runAAFSPDTask.C
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 }