StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
rdMuWana.C
1 /* To generate jetTree for embedding read Mu & write jet-tree locally:
2 root4star -b -q 'rdMuWana.C(1e6,"","fillListE/Wplus0.lis",1e5,350,1)'
3 
4 To run W-reco for embedding, jet read locally:
5 root4star -b -q 'rdMuWana.C(1e6,"","fillListE/Wplus0.lis",1e5,350,2)'
6 */
7 
8 #include <iostream>
9 
10 class StChain;
11 StChain *chain=0;
12 int useEtow=3;// 0=don't use; 1=only in event-display, 2=in away sum,3=in away&near sum
13 
14 int spinSort=false;
15 int isJustin=false;
16 bool isZ=true;
17 int geant=false;
18 
19 int rdMuWana(
20  int nEve=1e6,
21  char* inDir = "",// make it empty for scheduler
22  char* file = "fillListE/sl11b/Wplus0.lis",
23  int nFiles = 1e5, // max # of muDst files
24  int isMC=350, // 0=run9-data 350=embedding
25  int useJetFinder = 0 // 0 - no jets=badWalgo; 1 generate jet trees; 2 read jet trees
26  ) {
27  char *eemcSetupPath="/afs/rhic.bnl.gov/star/users/kocolosk/public/StarTrigSimuSetup/";
28 
29  TString jetTreeDir="/star/u/stevens4/wAnalysis/efficXsec/outEmb/jets/";
30  if(isMC==0) jetTreeDir="/star/data01/pwg/stevens4/wAnalysis/xSecPaper/sl11b/jets/";
31 
32  if(isMC >= 350 && useJetFinder==2) geant=true;
33 
34  if(isMC) spinSort=false;
35  TString outF=file;
36  int runNo=0,bht3ID=0,l2wID=0,fillNo=0;
37  if(isMC==0) {//real data: runNum, trigID, L2ID from list name
38  printf("Unpack file=%s=\n",file);
39  char *file1=strstr(file,"/R")+1;
40  printf("file1=%s=%s=\n",file1);
41  fillNo=atoi(file1-6);
42  outF=file1; file1=outF.Data();
43  char *p1=strstr(file1,"_");
44  char *p2=strstr(p1+1,"_");
45  runNo=atoi(file1+1);
46  bht3ID=atoi(p1+1);
47  l2wID=atoi(p2+1);
48  p1[0]=0;
49  outF=file1;
50  outF=outF;
51  printf("OutF=%s=\n",outF.Data());
52  }
53  else if(isMC < 400) { //embedding run with geant files
54  char *file1; char *file2;
55  if(isMC==350) { file2=strstr(file,"/W"); file1=strstr(file2,"W"); }
56  if(isMC==351) { file2=strstr(file,"/Wtau"); file1=strstr(file2,"Wtau"); }
57  if(isMC==352) { file2=strstr(file,"/Z"); file1=strstr(file2,"Z"); }
58  assert(file1); printf("file1=%s=\n",file1);
59  outF=file1; outF.ReplaceAll(".lis","");
60  TString nameReweight=file1; nameReweight.ReplaceAll(".lis","");
61  for(int j=0; j<10; j++) nameReweight.ReplaceAll(Form("%d",j),"");
62  cout<<"nameReweight="<<nameReweight<<endl;
63  }
64  else { //bad isMC flag
65  cout<<"bad isMC flag"<<endl; return;
66  }
67  printf("TRIG ID: bht3=%d l2w=%d isMC=%d\n",bht3ID,l2wID,isMC);
68 
69  gROOT->LoadMacro("$STAR/StRoot/StMuDSTMaker/COMMON/macros/loadSharedLibraries.C");
70  loadSharedLibraries();
71  gROOT->LoadMacro("LoadLogger.C");
72  gMessMgr -> SwitchOff("D");
73  gMessMgr -> SwitchOn("I");
74 
75  assert( !gSystem->Load("StDaqLib"));
76 
77  // libraries below are needed for DB interface
78  assert( !gSystem->Load("StDetectorDbMaker"));
79  assert( !gSystem->Load("StTpcDb"));
80  assert( !gSystem->Load("StDbUtilities")); //for trigger simu
81  assert( !gSystem->Load("StDbBroker"));
82  assert( !gSystem->Load("St_db_Maker"));
83  assert( !gSystem->Load("StEEmcUtil"));
84  assert( !gSystem->Load("StEEmcDbMaker"));
85  assert( !gSystem->Load("StTriggerFilterMaker"));
86  assert( !gSystem->Load("StWalgoB2009"));
87 
88  gSystem->Load("StEmcRawMaker");
89  gSystem->Load("StEmcADCtoEMaker");
90  assert( !gSystem->Load("StTriggerUtilities"));
91 
92  if(spinSort) assert( !gSystem->Load("StSpinDbMaker"));
93 
94  if (useJetFinder ==1 || useJetFinder == 2){ // jetfinder/jetreader libraries
95  cout << "BEGIN: loading jetfinder libs" << endl;
96  gSystem->Load("StEmcRawMaker");
97  gSystem->Load("StEmcADCtoEMaker");
98  gSystem->Load("StJetSkimEvent");
99  gSystem->Load("StJets");
100  gSystem->Load("StSpinDbMaker");
101  gSystem->Load("StEmcTriggerMaker");
102  gSystem->Load("StTriggerUtilities");
103  gSystem->Load("StMCAsymMaker");
104  gSystem->Load("StRandomSelector");
105  gSystem->Load("StJetEvent");
106  gSystem->Load("StJetFinder");
107  gSystem->Load("StJetMaker");
108  cout << "END: loading jetfinder libs" << endl;
109  }
110  else {
111  cout << "\nWARN: Jet are NOT read in, W-algo will not wrk properly\n " << endl;
112  }
113 
114  if(geant){
115  // libraries for access to MC record
116  assert( !gSystem->Load("StMcEvent"));
117  assert( !gSystem->Load("StMcEventMaker"));
118 
119  // libraries for trigger simulator
120  assert( !gSystem->Load("StEmcSimulatorMaker"));
121  assert( !gSystem->Load("StEEmcSimulatorMaker"));
122  assert( !gSystem->Load("StEpcMaker"));
123  }
124 
125  cout << " loading done " << endl;
126 
127  // create chain
128  chain = new StChain("StChain");
129  // create histogram storage array (everybody needs it):
130  TObjArray* HList=new TObjArray;
131 
132  if(geant){
133  //split MuDst file list to geant files
134  ifstream infile(file); string line;
135  StFile *setFiles= new StFile(); int j=0;
136  while(infile.good()){
137  getline (infile,line);
138  TString name = line;
139  name.ReplaceAll(".MuDst.root",".geant.root");
140  if(line=="") break;
141  setFiles->AddFile(name.Data());
142  j++;
143  if(j%10==0) cout<<"Added "<<j<<" files:"<<name.Data()<<endl;
144  if(j==nFiles) break;
145  }
146 
147  // get list of geant files
148  StIOMaker* ioMaker = new StIOMaker("IO","r",setFiles,"bfcTree");
149  //ioMaker->SetDebug();
150  ioMaker->SetIOMode("r");
151  ioMaker->SetBranch("*",0,"0"); //deactivate all branches
152  ioMaker->SetBranch("geantBranch",0,"r");//activate geant Branch
153  }
154 
155  // Now we add Makers to the chain...
156  muMk = new StMuDstMaker(0,0,inDir,file,"MuDst.root",nFiles);
157  muMk->SetStatus("*",0);
158  muMk->SetStatus("MuEvent",1);
159  muMk->SetStatus("EmcTow",1);
160  muMk->SetStatus("EmcSmde",1);
161  muMk->SetStatus("EmcSmdp",1);
162  muMk->SetStatus("PrimaryVertices",1);
163  muMk->SetStatus("GlobalTracks",1);
164  muMk->SetStatus("PrimaryTracks",1);
165  //need to add StMuMcTrack to get idtruth, etc.
166 
167  //for EEMC, need full db access:
168  St_db_Maker *dbMk = new St_db_Maker("StarDb","MySQL:StarDb","MySQL:StarDb","$STAR/StarDb");
169 
170  if (isMC==0) { // run 9 data
171  dbMk->SetFlavor("Wbose","bsmdeCalib"); // Willie's relative gains E-plane
172  dbMk->SetFlavor("Wbose","bsmdpCalib"); // P-plane
173  //dbMk->SetFlavor("missetTCD","eemcPMTcal"); // ETOW gains , not-standard
174  //dbMk->SetFlavor("sim","bemcCalib"); // use ideal gains for 2009 real data as well
175  }
176  else if(isMC>=350) { // embedding samples
177  dbMk->SetMaxEntryTime(20101215,0); // keep the same DB snap-shot as used in BFC for embedding
178  dbMk->SetFlavor("Wbose2","bsmdpCalib");
179  dbMk->SetFlavor("Wbose2","bsmdeCalib");
180  }
181  else {
182  printf("???? unforeseen MC flag, ABORT\n"); assert(1==2);
183  }
184 
185  //.... load EEMC database
186  StEEmcDbMaker* mEEmcDatabase = new StEEmcDbMaker("eemcDb");
187 
188  if(geant){
189  StMcEventMaker *mcEventMaker = new StMcEventMaker();
190  mcEventMaker->doPrintEventInfo = false;
191  mcEventMaker->doPrintMemoryInfo = false;
192  }
193 
194  if(useJetFinder!=1 && isMC){ //only use trigger simulator in W algo
195  //don't need geant for trigger simu
196  StEmcADCtoEMaker *bemcAdc = new StEmcADCtoEMaker();//for real data this sets calibration and status
197 
198  //Get TriggerMaker
199  StTriggerSimuMaker *simuTrig = new StTriggerSimuMaker("StarTrigSimu");
200  simuTrig->setHList(HList);
201  simuTrig->setMC(2); // must be before individual detectors, to be passed
202  simuTrig->useBbc();
203  simuTrig->useEemc(0);//default=0:just process ADC, 1,2:comp w/trgData,see .
204  simuTrig->eemc->setSetupPath(eemcSetupPath);
205  simuTrig->useBemc();
206  simuTrig->bemc->setConfig(2);
207  }
208 
209  //.... Jet finder code ....
210  if (useJetFinder > 0) {
211  TString outFile = "jets_"+outF+".root";
212  cout << "BEGIN: running jet finder/reader =" <<outFile<<"="<< endl;
213  }
214 
215  if (useJetFinder == 1){// run jet finder
216  double pi = atan(1.0)*4.0;
217  // Makers for clusterfinding
218  StEmcADCtoEMaker *adc = new StEmcADCtoEMaker();
219 
220  //here we also tag whether or not to do the swap:
221  bool doTowerSwapFix = true;
222  bool use2003TowerCuts = false;
223  bool use2006TowerCuts = true;
224  //4p maker using 100% tower energy correction
225  StBET4pMaker* bet4pMakerFrac100 = new StBET4pMaker("BET4pMakerFrac100",muMk,doTowerSwapFix,new StjTowerEnergyCorrectionForTracksFraction(1.0));
226  bet4pMakerFrac100->setUse2003Cuts(use2003TowerCuts);
227  bet4pMakerFrac100->setUseEndcap(true);
228  bet4pMakerFrac100->setUse2006Cuts(use2006TowerCuts);
229  //4p maker using 100% tower energy correction (no endcap)
230  StBET4pMaker* bet4pMakerFrac100_noEEMC = new StBET4pMaker("BET4pMakerFrac100_noEEMC",muMk,doTowerSwapFix,new StjTowerEnergyCorrectionForTracksFraction(1.0));
231  bet4pMakerFrac100_noEEMC->setUse2003Cuts(use2003TowerCuts);
232  bet4pMakerFrac100_noEEMC->setUseEndcap(false);
233  bet4pMakerFrac100_noEEMC->setUse2006Cuts(use2006TowerCuts);
234 
235  //Instantiate the JetMaker
236  StJetMaker* emcJetMaker = new StJetMaker("emcJetMaker", muMk, outFile);
237 
238  //set the analysis cuts: (see StJetMaker/StppJetAnalyzer.h -> class StppAnaPars )
239  StppAnaPars* anapars = new StppAnaPars();
240  anapars->setFlagMin(0); //track->flag() > 0
241  anapars->setNhits(12); //track->nHitsFit()>12
242  anapars->setCutPtMin(0.2); //track->pt() > 0.2
243  anapars->setAbsEtaMax(2.0); //abs(track->eta())<1.6
244  anapars->setJetPtMin(3.5);
245  anapars->setJetEtaMax(100.0);
246  anapars->setJetEtaMin(0);
247  anapars->setJetNmin(0);
248 
249  //Setup the cone finder (See StJetFinder/StConeJetFinder.h -> class StConePars)
250  StConePars* cpars = new StConePars();
251  cpars->setGridSpacing(105, -3.0, 3.0, 120, -pi, pi); //include EEMC
252  cpars->setConeRadius(0.7); // default=0.7
253  cpars->setSeedEtMin(0.5);
254  cpars->setAssocEtMin(0.1);
255  cpars->setSplitFraction(0.5); //default=0.5. if 0.3 less split?
256  cpars->setPerformMinimization(true);
257  cpars->setAddMidpoints(true);
258  cpars->setRequireStableMidpoints(true);
259  cpars->setDoSplitMerge(true);
260 
261  cpars->setDebug(false);
262 
263  emcJetMaker->addAnalyzer(anapars, cpars, bet4pMakerFrac100, "ConeJets12_100"); //100% subtraction
264  emcJetMaker->addAnalyzer(anapars, cpars, bet4pMakerFrac100_noEEMC, "ConeJets12_100_noEEMC"); //100% subtraction (no Endcap)
265 
266 
267  TChain* tree=muMk->chain(); assert(tree);
268  int nEntries=(int) tree->GetEntries();
269  printf("total eve in muDst chain =%d for run=%d\n",nEntries,runNo); // return ;
270  if(nEntries<0) return;
271 
272  chain->Init();
273  chain->ls(3);
274 
275  char txt[1000];
276  //---------------------------------------------------
277  int eventCounter=0;
278  int t1=time(0);
279  TStopwatch tt;
280  for (Int_t iev=0;iev<nEntries; iev++) {
281  if(eventCounter>=nEve) break;
282  chain->Clear();
283  int stat = chain->Make();
284  //cout<<iev<<endl;
285  if(stat != kStOk && stat != kStSkip) break; // EOF or input error
286  eventCounter++;
287  }
288  cout<<"run R"<<runNo<<" nEve="<<eventCounter<<" total "; tt.Print();
289  printf("****************************************** \n");
290 
291  int t2=time(0);
292  if(t2==t1) t2=t1+1;
293  float tMnt=(t2-t1)/60.;
294  float rate=1.*eventCounter/(t2-t1);
295  printf("#sorting R%d done %d of nEve= %d, CPU rate= %.1f Hz, total time %.1f minute(s) \n\n",runNo,eventCounter,nEntries,rate,tMnt);
296 
297  cout << "END: jet finder " << endl;
298  return;
299  }
300  if (useJetFinder == 2)
301  {
302  cout << "Configure to read jet trees " << endl;
303  StJetReader *jetReader = new StJetReader;
304  jetReader->InitFile(jetTreeDir+outFile);
305  }
306 
307 
308  //.... W reconstruction code ....
309  St2009WMaker *WmuMk=new St2009WMaker();
310  if(isMC) { // MC specific
311  WmuMk->setMC(isMC); //pass "version" of MC to maker
312  WmuMk->setNameReweight(nameReweight.Data());
313 
314  //vary energy scales for syst. uncert. calc., remove it next time , also from .h,.cxx
315  //WmuMk->setJetNeutScaleMC(1.0);
316  //WmuMk->setJetChrgScaleMC(1.0);
317 
318  }else {// real data specific
319  WmuMk->setTrigID(bht3ID,l2wID,runNo);
320  }
321 
322  if (useJetFinder == 2) WmuMk->setJetTreeBranch("ConeJets12_100","ConeJets12_100_noEEMC"); //select jet tree braches used
323 
324  WmuMk->setMaxDisplayEve(10); // only first N events will get displayed
325  WmuMk->useEtow(useEtow);// 0=don't use; 1=only in event-display, 2=in away sum,3=in away&near sum
326 
327  //set energy scale (works for data and MC - be careful!)
328  if(isMC==0) WmuMk->setBtowScale(0.976);
329  else WmuMk->setBtowScale(1.02);
330  //WmuMk->setEtowScale(1.0);
331 
332  /* evaluation of result, has full acess to W-algo internal data
333  including overwrite - be careful */
334 
335  WpubMk=new St2009pubWanaMaker("pubJan"); // remove it next time??
336  WpubMk->attachWalgoMaker(WmuMk); //
337 
338  //Collect all output histograms
339  WmuMk->setHList(HList);
340  WpubMk->setHList(HList);
341 
342  //calculate lumi from runs
343  if(isMC==0) {
344  WlumiMk=new St2009WlumiMaker("lumi");
345  WlumiMk->attachWalgoMaker(WmuMk);
346  WlumiMk->attachMuMaker(muMk);
347  WlumiMk->setHList(HList);
348  }
349 
350  StSpinDbMaker *spDb=0;
351  if(spinSort){
352  spDb=new StSpinDbMaker("spinDb");
353  enum {mxSM=5}; // to study eta-cuts, drop Q/PT cut
354  St2009pubSpinMaker *spinMkA[mxSM];
355  for(int kk=0;kk<mxSM;kk++) {
356  char ttx[100]; sprintf(ttx,"%cspin",'A'+kk);
357  printf("add spinMaker %s %d \n",ttx,kk);
358  spinMkA[kk]=new St2009pubSpinMaker(ttx);
359  spinMkA[kk]->attachWalgoMaker(WmuMk);
360  spinMkA[kk]->attachSpinDb(spDb);
361  spinMkA[kk]->setHList(HList);
362  if(kk==1) spinMkA[kk]->setEta(-1.,0.);
363  if(kk==2) spinMkA[kk]->setEta(0,1.);
364  if(kk==3) spinMkA[kk]->setQPT(-1);// disable Q/PT cut
365  if(kk==4) spinMkA[kk]->setNoEEMC();
366  }
367  }
368 
369  if(isZ){
370  ZMk=new St2009ZMaker("Z");
371  ZMk->attachWalgoMaker(WmuMk);
372  ZMk->setHList(HList);
373  ZMk->setClusterFrac24(0.95);
374  ZMk->setDeltaR(7.0);
375  ZMk->setNearEtFrac(0.88);
376  ZMk->setClusterMinEt(15);
377  ZMk->setPhi12Min(3.1416/2.);
378  ZMk->setMinZMass(73.); // Zmass -20%
379  ZMk->setMaxZMass(114.);// Zmass +20%
380  }
381 
382  if(geant){
383  pubMcMk=new St2009pubMcMaker("pubMc");
384  pubMcMk->attachWalgoMaker(WmuMk);
385  pubMcMk->attachZalgoMaker(ZMk);
386  pubMcMk->setHList(HList);
387  }
388 
389  TChain* tree=muMk->chain(); assert(tree);
390  int nEntries=(int) tree->GetEntries();
391  printf("total eve in muDst chain =%d\n",nEntries); // return ;
392  if(nEntries<0) return;
393 
394  chain->Init();
395  //chain->ls(3);
396 
397  char txt[1000];
398  //---------------------------------------------------
399  int eventCounter=0;
400  int t1=time(0);
401  TStopwatch tt;
402  for (Int_t iev=0;iev<nEntries; iev++) {
403  if(eventCounter>=nEve) break;
404  chain->Clear();
405  int stat = chain->Make();
406  //cout<<iev<<endl;
407  if(stat != kStOk && stat != kStSkip) break; // EOF or input error
408  eventCounter++;
409  }
410 
411  if(isMC==0)
412  WlumiMk->FinishRun(runNo);
413 
414  cout<<"run R"<<runNo<<" nEve="<<eventCounter<<" total "; tt.Print();
415  printf("****************************************** \n");
416 
417  int t2=time(0);
418  if(t2==t1) t2=t1+1;
419  float tMnt=(t2-t1)/60.;
420  float rate=1.*eventCounter/(t2-t1);
421  printf("#sorting R%d done %d of nEve= %d, CPU rate= %.1f Hz, total time %.1f minute(s) \n\n",runNo,eventCounter,nEntries,rate,tMnt);
422 
423  TString outFh=outF+".wana.hist.root";
424 
425  cout<<"Output histo file "<<outFh<<endl;
426  hf=new TFile(outFh,"recreate");
427  if(hf->IsOpen()) {
428  //HList->ls();
429  HList->Write();
430  printf("\n Histo saved -->%s<\n",outFh.Data());
431  }
432  else {
433  printf("\n Failed to open Histo-file -->%s<, continue\n",outFh.Data());
434  }
435 
436  return;
437 }
438 
439 
440 // $Log: rdMuWana.C,v $
441 // Revision 1.45 2011/10/12 20:38:35 stevens4
442 // update from GPC code review
443 //
444 // Revision 1.44 2011/09/14 15:40:41 stevens4
445 // update used for cross section PRD paper
446 //
447 // Revision 1.43 2010/11/09 23:00:56 balewski
448 // added chi2/dof for East & West TPC separately
449 //
450 // Revision 1.42 2010/10/25 01:58:19 balewski
451 // isMC=200 point jet reader to mit-balewski disk
452 //
453 // Revision 1.41 2010/08/13 16:29:07 balewski
454 // *** empty log message ***
455 //
456 // Revision 1.40 2010/06/30 19:00:19 rcorliss
457 // passes_L0() now works for simulation, using trigger simu in new macro
458 //
459 // Revision 1.39 2010/05/26 18:14:34 balewski
460 // make spin sorting the default
461 //
462 // Revision 1.38 2010/05/25 14:42:57 stevens4
463 // add new library for jet maker (StRandomSelector)
464 //
465 // Revision 1.37 2010/05/04 12:14:36 balewski
466 // runs now w/o jet tree
467 //
468 // Revision 1.36 2010/05/01 01:31:49 balewski
469 // added W->JJ code & JES calibration
470 //
471 // Revision 1.34 2010/04/16 16:07:13 balewski
472 // *** empty log message ***
473 //
474 // Revision 1.33 2010/04/16 00:54:01 balewski
475 // shoudl work w/ data & new M-C
476 //
477 // Revision 1.32 2010/04/15 21:15:11 balewski
478 // *** empty log message ***
479 //
480 // Revision 1.31 2010/04/15 18:22:07 balewski
481 // *** empty log message ***
482 //
483 // Revision 1.30 2010/04/14 22:52:56 balewski
484 // *** empty log message ***
485 //
486 // Revision 1.28 2010/04/14 20:00:39 balewski
487 // *** empty log message ***
488 //
489 // Revision 1.27 2010/04/08 23:46:21 balewski
490 // *** empty log message ***
491 //
492 // Revision 1.26 2010/04/06 01:50:52 stevens4
493 // update path to jet trees with DCA cut fix
494 //
495 // Revision 1.25 2010/03/20 19:19:07 balewski
496 //
497 // added ability to drop Q/PT cut for spin analysis
498 //
499 // Revision 1.24 2010/03/14 22:50:34 balewski
500 // *** empty log message ***
501 //
502 // Revision 1.23 2010/02/18 22:35:16 stevens4
503 // add tpc effic study and allow energy scaling for data and MC
504 //
505 // Revision 1.22 2010/02/04 03:48:55 balewski
506 // *** empty log message ***
507 //
508 // Revision 1.21 2010/02/04 03:48:25 balewski
509 // add ET for lumi monitor
510 //
511 // Revision 1.20 2010/01/28 20:10:08 balewski
512 // added eta dependent spin sorting
513 //
514 // Revision 1.19 2010/01/27 22:12:26 balewski
515 // spin code matched to x-section code
516 //
517 // Revision 1.18 2010/01/26 12:02:38 stevens4
518 // load proper gain tables for official rcf mc
519 //
520 // Revision 1.16 2010/01/22 20:20:18 balewski
521 // partialy addopted to handle new offial MC, time stamp is hardcoded
522 //
523 // Revision 1.15 2010/01/21 00:15:30 balewski
524 // added sector & run dependent TPC cuts on Rin, Rout
525 //
526 // Revision 1.14 2010/01/18 03:26:21 balewski
527 // expanded TPC track filtering, not finished
528 //
529 // Revision 1.13 2010/01/10 03:01:39 balewski
530 // cleanup & nicer histos
531 //
532 // Revision 1.12 2010/01/09 00:07:36 stevens4
533 // add jet finder
534 //
535 // Revision 1.11 2010/01/06 14:11:17 balewski
536 // one Z-plot added
537 //
538 // Revision 1.10 2010/01/06 05:21:59 balewski
539 // cleanup
540 //
541 // Revision 1.9 2010/01/06 04:22:18 balewski
542 // added Q/PT plot for Zs, more cleanup
543 //
544 // Revision 1.8 2010/01/05 03:23:02 balewski
545 // change logic for filling btow status tables, added printout to Z-code
546 //
547 // Revision 1.7 2010/01/04 05:12:02 balewski
548 // added 4x4 cut to Z-algo, cleanup
549 //
550 // Revision 1.6 2010/01/03 04:38:27 balewski
551 // reorganized Z-algo
552 //
553 // Revision 1.5 2009/12/30 18:37:08 balewski
554 // code tagged in the form close to that used for the Fall 2009 DNP preliminary Jacobian peak
555 //
556 // Revision 1.4 2009/12/08 17:00:06 balewski
557 // *** empty log message ***
558 //
559 // Revision 1.3 2009/12/08 16:53:01 balewski
560 // *** empty log message ***
561 //
562 // Revision 1.2 2009/12/07 20:57:48 rcorliss
563 // Updated rdMuWana macro to include Z finder and use current directory for the test files hardcoded in.
564 //
565 // Revision 1.1 2009/11/23 23:00:20 balewski
566 // code moved spin-pool
567 //
void setConeRadius(double v)
Set cone radius:
Definition: StConePars.h:65
maker to retrieve info from geant.root files for comparison with reco quantities from MC ...
void setAddMidpoints(bool v)
Add seeds at midpoints?
Definition: StConePars.h:56
Definition: StTree.h:125
my own maker to do analysis outside of W selection
muDst based extraction of W-signal from pp500 data from 2009
Definition: St2009WMaker.h:50
virtual void SetIOMode(Option_t *iomode="w")
number of transactions
Definition: StIOInterFace.h:35
virtual void InitFile(const char *file)
Recover the TTree from file and prepare for reading.
Definition: StJetReader.cxx:61
virtual void Clear(Option_t *option="")
User defined functions.
Definition: StChain.cxx:77
void setSplitFraction(double v)
split jets if E_shared/E_neighbor&gt;splitFraction
Definition: StConePars.h:50
uses tree from W-algo to find Zs
Definition: St2009ZMaker.h:26
void setGridSpacing(int nEta, double etaMin, double etaMax, int nPhi, double phiMin, double phiMax)
Set the grid spacing:
Definition: StConePars.h:36
void setDoSplitMerge(bool v)
Do Split/Merge step?
Definition: StConePars.h:59
void setDebug(bool v)
Toggle debug streams on/off.
Definition: StConePars.h:68
Filling of all StMcEvent classes from g2t tables Transform all the data in the g2t tables into the co...
void setSeedEtMin(double v)
minimum et threshold to be considered a seed
Definition: StConePars.h:44
Definition: Stypes.h:49
gathers all results from W-analysis, Jan&#39;s analysis
virtual void ls(Option_t *option="") const
Definition: TDataSet.cxx:495
Bool_t doPrintMemoryInfo
lots of screen output
virtual Int_t Make()
Definition: StChain.cxx:110
void setAssocEtMin(double v)
minimum et threshold to be considered for addition to the seed
Definition: StConePars.h:47
TChain * chain()
In read mode, returns pointer to the chain of .MuDst.root files that where selected.
Definition: StMuDstMaker.h:426
void SetStatus(const char *arrType, int status)
void setRequireStableMidpoints(bool v)
Require stable midpoints?
Definition: StConePars.h:62
spin sorting of W&#39;s
Definition: Stypes.h:41
void setPerformMinimization(bool v)
Let jet wander to minimum?
Definition: StConePars.h:53