FairRoot/PandaRoot
Functions | Variables
anaMvdRadLength.C File Reference
#include <map>
#include <vector>

Go to the source code of this file.

Functions

 basiclibs ()
 
gSystem Load ("libGeoBase")
 
gSystem Load ("libParBase")
 
gSystem Load ("libBase")
 
gSystem Load ("libPndData")
 
gSystem Load ("libField")
 
gSystem Load ("libGen")
 
gSystem Load ("libPassive")
 
gSystem Load ("libMvd")
 
gStyle SetPalette (1)
 
timer Start ()
 
t SetBranchAddress ("MVDPoint",&hit_array)
 
t SetBranchAddress ("RadLen",&radlen_array)
 
t SetBranchAddress ("MCTrack",&mc_array)
 
 for (Int_t j=startEvent;j<(nEvents+startEvent)&&j< t->GetEntriesFast();j++)
 
hisRadLen2D Divide (hisRadLenCount)
 
hisTrackP2D Divide (hisTrackPCount)
 
can1 Divide (2, 2)
 
can1 cd (1)
 
hisRadLen DrawCopy ()
 
can1 cd (2)
 
hisRadLen2D DrawCopy ("colz")
 
can1 cd (3)
 
can1 cd (4)
 
timer Stop ()
 

Variables

TStopwatch timer
 
PndFileNameCreator namecreator ("Mvd_DPM_Test.root")
 
std::string inFile = namecreator.GetSimFileName(false)
 
TFile * f = new TFile(inFile.c_str())
 
TTree * t =(TTree *) f->Get("pndsim")
 
TClonesArray * hit_array =new TClonesArray("PndSdsMCPoint")
 
TClonesArray * radlen_array = new TClonesArray("FairRadLenPoint")
 
TClonesArray * mc_array =new TClonesArray("PndMCTrack")
 
TH1D * hisRadLen = new TH1D("hisRadLen","Radiation Length", 1000,0,100)
 
TH2D * hisRadLen2D = new TH2D("hisRadLen2D","Radiation Length 2D", 100,-1,1,100, -TMath::Pi(), TMath::Pi())
 
TH2D * hisRadLenCount = new TH2D("hisRadLenCount","hisRadLenCount",100,-1,1,100, -TMath::Pi(), TMath::Pi())
 
TH1D * hisTrackP = new TH1D("hisTrackP","Hits per Track", 51,-0.5,50.5)
 
TH2D * hisTrackP2D = new TH2D("hisTrackP2D","Hits per Track 2D", 100,-1,1,100, -TMath::Pi(), TMath::Pi())
 
TH2D * hisTrackPCount = new TH2D("hisTrackPCount","hisTrackPCount", 100,-1,1,100, -TMath::Pi(), TMath::Pi())
 
int nEvents = 1000
 
int startEvent = 0
 
bool verbose = false
 
TVector3 vecs
 
TVector3 veco
 
std::map< int, int > trackHitMap
 
TCanvas * can1 = new TCanvas()
 
Double_t rtime = timer.RealTime()
 
Double_t ctime = timer.CpuTime()
 

Function Documentation

basiclibs ( )
can1 cd ( )
can1 cd ( )
can1 cd ( )
can1 cd ( )
can1 Divide ( ,
 
)
hisRadLen DrawCopy ( )
hisTrackP2D DrawCopy ( "colz"  )
for ( )

Definition at line 61 of file anaMvdRadLength.C.

62  {
63  t->GetEntry(j);
64  //if (verbose)
65  cout<<">>>> Event No "<<j<<endl;
66  std::vector<double> RadLengthOnTrack (10000,0.0); //trackID, vector with points on track
67 
68  for (Int_t i=0; i<radlen_array->GetEntriesFast(); i++)
69  {
70  if(verbose) cout<<"Point No "<<i<<endl;
71  FairRadLenPoint *point=(FairRadLenPoint*)radlen_array->At(i);
72  if (verbose) cout << "Track ID: " << point->GetTrackID() << std::endl;
73  TVector3 pos, posOut, res;
74  pos = point->GetPosition();
75  posOut = point->GetPositionOut();
76  res = posOut - pos;
77  PndMCTrack* myTrack = (PndMCTrack*)(mc_array->At(point->GetTrackID()));
78  if (myTrack->GetMotherID() < 0){
79  if (verbose){
80  std::cout << "Time: " << point->GetTime() << " Length: " << point->GetLength() << std::endl;
81  std::cout << "Pos: " << pos.x() << "/" << pos.y() << "/" << pos.z();
82  std::cout << " OutPos: " << posOut.x() << "/" << posOut.y() << "/" << posOut.z() << std::endl;
83  std::cout << "TrackLength: " << res.Mag() << " RadLength: " << point->GetRadLength() << " Res: " << res.Mag() / point->GetRadLength() << std::endl;
84  }
85  if (point->GetTrackID() > 0 && point->GetTrackID() < 10000 && fabs(posOut.x()) < 15 && fabs(posOut.y()) < 15 && fabs(posOut.z()) < 20)
86  RadLengthOnTrack[point->GetTrackID()] += res.Mag()/point->GetRadLength()*100;
87  }
88  }
89  for (int k = 0; k < RadLengthOnTrack.size(); k++){
90  if (RadLengthOnTrack[k] > 0){
91  if (verbose) std::cout << "Full TrackLength: " << RadLengthOnTrack[k] << std::endl;
92  PndMCTrack* mcTrack = (PndMCTrack*)(mc_array->At(k));
93  hisRadLen->Fill(RadLengthOnTrack[k]);
94  hisRadLen2D->Fill(mcTrack->GetMomentum().CosTheta(), mcTrack->GetMomentum().Phi(), RadLengthOnTrack[k]);
95  hisRadLenCount->Fill(mcTrack->GetMomentum().CosTheta(), mcTrack->GetMomentum().Phi());
96  }
97  }
98 
99  trackHitMap.clear();
100  for (int k = 0; k < hit_array->GetEntriesFast(); k++){
101  PndSdsMCPoint* myHit = (PndSdsMCPoint*)(hit_array->At(k));
102  trackHitMap[myHit->GetTrackID()]++;
103  }
104 
105  for (map<int,int>::const_iterator ci = trackHitMap.begin(); ci != trackHitMap.end(); ci++){
106  PndMCTrack* track = (PndMCTrack*)(mc_array->At(ci->first));
107  hisTrackP->Fill(ci->second);
108  hisTrackP2D->Fill(track->GetMomentum().CosTheta(), track->GetMomentum().Phi(), ci->second);
109  hisTrackPCount->Fill(track->GetMomentum().CosTheta(), track->GetMomentum().Phi());
110  }
111  }// end for j (events)
TVector3 pos
std::map< int, int > trackHitMap
TH2D * hisTrackP2D
Int_t res
Definition: anadigi.C:166
Int_t i
Definition: run_full.C:25
#define verbose
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
TH2D * hisRadLen2D
TClonesArray * mc_array
Definition: anaLmdCluster.C:25
TClonesArray * hit_array
PndMCTrack * track
Definition: anaLmdCluster.C:89
TH1D * hisRadLen
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
TH2D * hisRadLenCount
TTree * t
Definition: bump_analys.C:13
TH1D * hisTrackP
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
TClonesArray * radlen_array
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
TH2D * hisTrackPCount
gSystem Load ( "libGeoBase"  )
gSystem Load ( "libParBase"  )
gSystem Load ( "libBase"  )
gSystem Load ( "libPndData"  )
gSystem Load ( "libField"  )
gSystem Load ( "libGen"  )
gSystem Load ( "libPassive"  )
gSystem Load ( "libMvd"  )
t SetBranchAddress ( "MVDPoint"  ,
hit_array 
)
t SetBranchAddress ( "RadLen"  ,
radlen_array 
)
t SetBranchAddress ( "MCTrack"  ,
mc_array 
)
gStyle SetPalette ( )
timer Start ( )
timer Stop ( )

Variable Documentation

TCanvas* can1 = new TCanvas()

Definition at line 116 of file anaMvdRadLength.C.

Double_t ctime = timer.CpuTime()

Definition at line 131 of file anaMvdRadLength.C.

TFile* f = new TFile(inFile.c_str())

Definition at line 34 of file anaMvdRadLength.C.

TH1D* hisRadLen = new TH1D("hisRadLen","Radiation Length", 1000,0,100)

Definition at line 46 of file anaMvdRadLength.C.

TH2D* hisRadLen2D = new TH2D("hisRadLen2D","Radiation Length 2D", 100,-1,1,100, -TMath::Pi(), TMath::Pi())

Definition at line 47 of file anaMvdRadLength.C.

TH2D* hisRadLenCount = new TH2D("hisRadLenCount","hisRadLenCount",100,-1,1,100, -TMath::Pi(), TMath::Pi())

Definition at line 48 of file anaMvdRadLength.C.

TH1D* hisTrackP = new TH1D("hisTrackP","Hits per Track", 51,-0.5,50.5)

Definition at line 50 of file anaMvdRadLength.C.

TH2D* hisTrackP2D = new TH2D("hisTrackP2D","Hits per Track 2D", 100,-1,1,100, -TMath::Pi(), TMath::Pi())

Definition at line 51 of file anaMvdRadLength.C.

TH2D* hisTrackPCount = new TH2D("hisTrackPCount","hisTrackPCount", 100,-1,1,100, -TMath::Pi(), TMath::Pi())

Definition at line 52 of file anaMvdRadLength.C.

TClonesArray* hit_array =new TClonesArray("PndSdsMCPoint")

Definition at line 37 of file anaMvdRadLength.C.

std::string inFile = namecreator.GetSimFileName(false)

Definition at line 32 of file anaMvdRadLength.C.

TClonesArray* mc_array =new TClonesArray("PndMCTrack")

Definition at line 43 of file anaMvdRadLength.C.

PndFileNameCreator namecreator("Mvd_DPM_Test.root")
int nEvents = 1000

Definition at line 54 of file anaMvdRadLength.C.

TClonesArray* radlen_array = new TClonesArray("FairRadLenPoint")

Definition at line 40 of file anaMvdRadLength.C.

Referenced by anaRadLength().

Double_t rtime = timer.RealTime()

Definition at line 130 of file anaMvdRadLength.C.

int startEvent = 0

Definition at line 55 of file anaMvdRadLength.C.

TTree* t =(TTree *) f->Get("pndsim")

Definition at line 35 of file anaMvdRadLength.C.

TStopwatch timer

Definition at line 21 of file anaMvdRadLength.C.

std::map<int,int> trackHitMap

Definition at line 59 of file anaMvdRadLength.C.

Referenced by anaRadLength().

TVector3 veco

Definition at line 58 of file anaMvdRadLength.C.

TVector3 vecs

Definition at line 58 of file anaMvdRadLength.C.

bool verbose = false

Definition at line 56 of file anaMvdRadLength.C.