00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 TStopwatch clock;
00027
00028 void load() {
00029 gSystem->Load("St_base");
00030 gSystem->Load("StChain");
00031 gSystem->Load("StUtilities");
00032 gSystem->Load("StarClassLibrary");
00033 gSystem->Load("StEvent");
00034 gSystem->Load("StStrangeMuDstMaker");
00035
00036
00037 TCanvas* c1 =
00038 new TCanvas("c1","Getting Started with StV0MiniDst",0,0,600,600);
00039
00040 c1->cd();
00041 p1 = new TPad("p1","1st Pad",0.01,0.51,0.49,0.99,10,0,0);
00042 p2 = new TPad("p2","2nd Pad",0.51,0.51,0.99,0.99,10,0,0);
00043 p3 = new TPad("p3","3rd Pad",0.01,0.01,0.49,0.49,10,0,0);
00044 p4 = new TPad("p4","4th Pad",0.51,0.01,0.99,0.49,10,0,0);
00045
00046 c1->cd();
00047 p1->Draw();
00048 p2->Draw();
00049 p3->Draw();
00050 p4->Draw();
00051 }
00052
00053 void run() {
00054
00055 hX = new TH1F("mX","X coordinate",100,-50,50);
00056 hY = new TH1F("mY","Y coordinate",100,-50,50);
00057 hZ = new TH1F("mZ","Z coordinate",100,-100,100);
00058 hMassLambda = new TH1F("mMassLambda","Lambda Mass",100,1.08,1.2);
00059
00060
00061 const Int_t Nevents = 10000;
00062
00063 StChain chain("myChain");
00064 StStrangeMuDstMaker strangeDst("strangeMuDst");
00065 strangeDst.DoV0();
00066
00067
00068 strangeDst.SetRead();
00069
00070 clock.Start(kTRUE);
00071
00072
00073 Int_t ierr = chain.Init();
00074 if( ierr ) { chain.Fatal(ierr,"on init"); return; }
00075
00076 gMessMgr->Info("Here are the cuts used to create this strangeness DST:");
00077 strangeDst.Cuts().List();
00078
00079
00080 for( Int_t i=0; i<Nevents; i++ ) {
00081 if( chain.Make(i) ) break;
00082
00083 for( Int_t j=0; j<strangeDst.GetNV0(); j++ ) {
00084 StV0MuDst *v0m = strangeDst.GetV0(j);
00085 hX->Fill(v0m->decayVertexV0X());
00086 hY->Fill(v0m->decayVertexV0Y());
00087 hZ->Fill(v0m->decayVertexV0Z());
00088 hMassLambda->Fill(v0m->massLambda());
00089 }
00090
00091 if( i != Nevents) chain.Clear();
00092 printf("*** Finished processing event %d\n",i);
00093 }
00094
00095
00096 if( Nevents >= 1 ) {
00097 chain.Finish();
00098 }
00099
00100
00101 clock.Stop();
00102 clock.Print();
00103
00104 p1->cd();
00105 hX->Draw();
00106 p2->cd();
00107 hY->Draw();
00108 p3->cd();
00109 hZ->Draw();
00110 p4->cd();
00111 hMassLambda->Draw();
00112 }
00113
00114 void readStrangeMuDst() {
00115 load();
00116 run();
00117 }