FairRoot/PandaRoot
anaLmdSim.C
Go to the documentation of this file.
1 /*
2  * LmdPoint.C * * Created on: May 15, 2009 * Author: huagen
3  */
4 
5 {
6 #include "TCanvas.h"
7  std::cout;
8  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
9  rootlogon();
10  gSystem->Load("libLmd");
11  // gROOT->Macro("Libs.C");
12 
13  TStopwatch timer;
14  timer.Start();
15 
16  Int_t nEvents = 1e5;
17 
18  TFile* MCPoint = new TFile("/private/huagen/simdata/Lmd_DPM_elastic_6.2_1.9mrad_5M_1.root","READ");
19  TTree* tree = (TTree*)MCPoint->Get("pndsim");
20 
21  TClonesArray* point = new TClonesArray("PndSdsMCPoint");
22  tree->SetBranchAddress("LMDPoint", &point);
23 
24  TH2F *h1 = new TH2F("c1","Point on X versus Y",100, -10, 10, 100, -10, 10);
25  h1->SetFillColor(kBlue);
26  TH3F *h2 = new TH3F("c2","Point on X,Y and Z", 100, -10, 10, 100, -10, 10, 100, 1070,1150);
27  h2->SetTitle("the MC point; #X cm;#Y cm;# Z cm");
28  h2->SetFillColor(kRed);
29  TH1F *h3 = new TH1F("c3","Energy Loss", 1000, 0, 1000);
30  // h3->SetFillColor(kRed);
31  h3->SetTitle("the EnergyLoss: #X keV;");
32 
33  double X=0, Y=0,Z=0;
34  double eloss;
35 
36  for (int i=0; i<nEvents&&i<tree->GetEntriesFast();i++){
37  tree->GetEntry(i);
38  for(int j=0;j<point->GetEntriesFast();j++){
39  PndSdsMCPoint* MyPoint = (PndSdsMCPoint*)point->At(j);
40  X = (MyPoint->GetPosition().X()+MyPoint->GetPositionOut().X())/2.;
41  Y = (MyPoint->GetPosition().Y()+MyPoint->GetPositionOut().Y())/2;
42  Z = (MyPoint->GetPosition().Z()+MyPoint->GetPositionOut().Z())/2;
43  eloss = MyPoint->GetEnergyLoss()*1000000;
44  // cout<<"the eloss is:"<<eloss<<endl;
45  h1->Fill(X,Y);
46  h1->SetFillColor(kBlue);
47  h2->Fill(X,Y,Z);
48  h2->SetFillColor(kRed);
49  h3->Fill(eloss);
50  }
51  }
52  TCanvas *c;
53  h1->DrawCopy();
54  c = new TCanvas("c2");
55  h2->DrawCopy();
56  c = new TCanvas("C3");
57  h3->DrawCopy();
58 }
Int_t i
Definition: run_full.C:25
TTree * tree
Definition: plot_dirc.C:12
double eloss
Definition: anaLmdSim.C:34
TFile * MCPoint
Definition: anaLmdDigi.C:25
TVector3 GetPositionOut() const
Definition: PndSdsMCPoint.h:91
double Y
Definition: anaLmdDigi.C:68
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
TH1F * h3
TVector3 GetPosition() const
Definition: PndSdsMCPoint.h:90
double X
Definition: anaLmdDigi.C:68
double Z
Definition: anaLmdDigi.C:68
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72