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

Go to the source code of this file.

Functions

timer Start ()
 
TFile filerun ("testrun.root")
 
treemc SetBranchAddress ("STTPoint",&pnt)
 
treemc SetBranchAddress ("MCTrack",&mctrack)
 
TFile filedigi ("testdigi.root")
 
treedigi SetBranchAddress ("STTHit",&digi)
 
TFile filehelix ("testreco.root")
 
treereco SetBranchAddress ("SttHelixHit",&hh)
 
treereco SetBranchAddress ("STTTrack",&track)
 
treereco SetBranchAddress ("STTTrackMatch",&matchtrack)
 
c Divide (1, 2)
 
c1 Divide (2, 2)
 
cout<< treereco-> GetEntriesFast ()
 
c cd (1)
 
hdedxvsp Draw ()
 
c cd (2)
 
hdedxvsp_e SetMarkerColor (2)
 
hdedxvsp_k SetMarkerColor (3)
 
c1 cd (3)
 
hdedxvsp_pi SetMarkerColor (4)
 
hdedxvsp_mu SetMarkerColor (7)
 
hdedxvsp_mu Draw ("SAME")
 
c1 cd (4)
 
hdedxvsp_p SetMarkerColor (5)
 
c2 cd ()
 
hdedxvsp Write ()
 
out_dedx Close ()
 

Variables

TStopwatch timer
 
TTree * treemc = (TTree*) filerun.Get("pndsim")
 
TClonesArray * pnt = new TClonesArray("PndSttPoint")
 
TClonesArray * mctrack = new TClonesArray("PndMCTrack")
 
TTree * treedigi = (TTree*) filedigi.Get("pndsim")
 
TClonesArray * digi = new TClonesArray("PndSttHit")
 
TTree * treereco = (TTree*) filehelix.Get("pndsim")
 
TClonesArray * hh = new TClonesArray("PndSttHelixHit")
 
TClonesArray * track = new TClonesArray("PndSttTrack")
 
TClonesArray * matchtrack = new TClonesArray("PndSttTrackMatch")
 
TCanvas * c = new TCanvas("c", "c", 0, 0, 600, 600)
 
TH1F * samplenum = new TH1F("samplenum","number of sampling",50,0.,50.)
 
TH2F * hdedxvsp = new TH2F("hdedxvsp","dedx vs p",100,0.,1.5, 100,0.,40.)
 
TCanvas * c1 = new TCanvas("c1", "c1", 0, 0, 600, 600)
 
TH2F * hdedxvsp_p = new TH2F("hdedxvsp_p","dedx vs p for p",100,0.,1.5, 100,0.,40.)
 
TH2F * hdedxvsp_pi = new TH2F("hdedxvsp_pi","dedx vs p for #pi",100,0.,1.5, 100,0.,40.)
 
TH2F * hdedxvsp_e = new TH2F("hdedxvsp_e","dedx vs p for e",100,0.,1.5, 100,0.,40.)
 
TH2F * hdedxvsp_k = new TH2F("hdedxvsp_k","dedx vs p for K",100,0.,1.5, 100,0.,40.)
 
TH2F * hdedxvsp_mu = new TH2F("hdedxvsp_mu","dedx vs p for #mu",100,0.,1.5, 100,0.,40.)
 
TCanvas * c2 = new TCanvas("c2", "c2", 0, 0, 600, 600)
 
TH2F * hdedxvsp_reco = new TH2F("hdedxvsp_reco","dedx vs reco p",100,0.,1.5, 100,0.,40.)
 
TFile * out_dedx = new TFile("out_dedx_helixhit.root", "RECREATE")
 

Function Documentation

c cd ( )
c cd ( )
c1 cd ( )
c1 cd ( )
c2 cd ( )
out_dedx Close ( )
c Divide ( ,
 
)
c1 Divide ( ,
 
)
hdedxvsp Draw ( )

Definition at line 64 of file NHitsPerEvent.C.

64  {
65 
66  std::cout << "mvdHitArray: " << mvdHitArray->GetEntries() << " projectedHitArray " << mvdProjectedArray->GetEntries() << std::endl;
67 
68 // gHitPoints->Clear();
71  //if (gHitPoints->GetN() != x.size()) gHitPoints->Expand(x.size());
72 
73  std::cout << "NHits: " << gHitPoints->GetN() << std::endl;
74  gHitPoints->Draw("apl");
75  gProjections->Draw("pl");
76 }
void ExtractData(TClonesArray *array, TGraph *g)
Definition: NHitsPerEvent.C:78
TGraph * gHitPoints
Definition: NHitsPerEvent.C:15
TClonesArray * mvdHitArray
Definition: NHitsPerEvent.C:12
TClonesArray * mvdProjectedArray
Definition: NHitsPerEvent.C:13
TGraph * gProjections
Definition: NHitsPerEvent.C:16
fdedx5 Draw ( "SAME"  )
TFile filedigi ( "testdigi.root"  )
TFile filehelix ( "testreco.root"  )
TFile filerun ( "testrun.root"  )

Referenced by QAmacro_stt_4().

cout<< treereco-> GetEntriesFast ( )

Definition at line 51 of file checkdedx_helixhit.C.

References cos(), d0, Double_t, evt, PndSttTrack::GetCharge(), PndSttHelixHit::GetdEdx(), PndSttTrack::GetDist(), PndSttTrack::GetHelixHitIndex(), PndSttHelixHit::GetHitIndex(), PndSttTrackMatch::GetMCTrackID(), PndMCTrack::GetMomentum(), PndSttTrack::GetNofHelixHits(), PndMCTrack::GetPdgCode(), PndSttTrack::GetPhi(), PndSttTrack::GetRad(), PndSttTrack::GetTanL(), PndSttTrack::GetZ(), h, m, phi0, plong, ptot, ptran, R, sin(), sqrt(), tanl, x0, y0, and z0.

54  {
55  if(evt%100 == 0) cout << evt << endl;
56 
57  treemc->GetEntry(evt);
58  treedigi->GetEntry(evt);
59  treereco->GetEntry(evt);
60 
61  // tracks loop
62  for (Int_t k = 0; k < track->GetEntriesFast(); k++) {
63 
64  PndSttTrack *stttrack = (PndSttTrack*) track->At(k);
65  if(!stttrack) continue;
66  PndSttTrackMatch *mtrack = (PndSttTrackMatch *) matchtrack->At(k);
67  if(!mtrack) continue;
68  PndMCTrack *MCtrack = (PndMCTrack*) mctrack->At(mtrack->GetMCTrackID());
69  if(!MCtrack) continue;
70  Int_t PDGcode = MCtrack->GetPdgCode();
71 
72  Double_t d0 = stttrack->GetDist();
73  Double_t phi0 = stttrack->GetPhi();
74  Double_t R = stttrack->GetRad();
75  Double_t z0 = stttrack->GetZ();
76  Double_t tanl = stttrack->GetTanL();
77  Double_t h = -(Int_t) stttrack->GetCharge();
78  Double_t ptran = 0.003 * 2 * R;
79 
80  Double_t plong = ptran * tanl;
81  Double_t ptot = sqrt(plong*plong + ptran*ptran);
82 
83  Double_t x0 = (d0 + R) * cos(phi0);
84  Double_t y0 = (d0 + R) * sin(phi0);
85 
86  Int_t hitcounter = stttrack->GetNofHelixHits();
87  std::vector<double> dedxvec;
88  dedxvec.clear();
89  TVector3 momentum = MCtrack->GetMomentum();
90  Int_t losthit = 0;
91  for (Int_t j = 0; j < hitcounter; j++) {
92  Int_t iHHit = stttrack->GetHelixHitIndex(j);
93  PndSttHelixHit *helixhit = (PndSttHelixHit*) hh->At(iHHit);
94  if(!helixhit) continue;
95 
96  Int_t hitindex = helixhit->GetHitIndex();
97 // PndSttHit* hit = (PndSttHit*) digi->At(hitindex);
98 // PndSttPoint *point = (PndSttPoint*) pnt->At(hit->GetRefIndex());
99 
100  if(helixhit->GetdEdx() != 0) dedxvec.push_back(helixhit->GetdEdx());
101  else losthit++;
102  }
103 
104  hitcounter -= losthit;
105 
106  if(hitcounter > 0) {
107  // truncated mean
108  Double_t perc = 0.60;
109  // sort
110  std::sort(dedxvec.begin(), dedxvec.end());
111 
112  //truncated mean
113  Double_t sum = 0;
114  Int_t endnum = floor(hitcounter * perc);
115 
116 
117  for(Int_t m = 0; m < endnum; m++) sum += dedxvec[m];
118  Double_t tmean;
119  if(endnum > 0) {
120  tmean = sum/(Double_t) endnum;
121  hdedxvsp->Fill(momentum->Mag(), tmean);
122  hdedxvsp_reco->Fill(ptot, tmean);
123 
124  samplenum->Fill(hitcounter);
125 
126  if(abs(PDGcode) == 11) { hdedxvsp_e->Fill(momentum->Mag(), tmean);}
127  else if(abs(PDGcode) == 13) { hdedxvsp_mu->Fill(momentum->Mag(), tmean);}
128  else if(abs(PDGcode) == 211) { hdedxvsp_pi->Fill(momentum->Mag(), tmean);}
129  else if(abs(PDGcode) == 321) { hdedxvsp_k->Fill(momentum->Mag(), tmean); }
130  else if(abs(PDGcode) == 2212){ hdedxvsp_p->Fill(momentum->Mag(), tmean);}
131 
132  }
133  }
134  }
135  }
PndMCTrack * mctrack
TTree * treemc
Double_t tanl
Definition: checkhelixhit.C:63
TH2F * hdedxvsp_k
Double_t z0
Definition: checkhelixhit.C:62
TH1F * samplenum
Double_t x0
Definition: checkhelixhit.C:70
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
Double_t GetTanL()
Definition: PndSttTrack.h:60
Int_t GetHitIndex()
TH2F * hdedxvsp_reco
TH2F * hdedxvsp_mu
TH2F * hdedxvsp_e
Int_t GetNofHelixHits() const
Definition: PndSttTrack.h:48
Double_t GetZ()
Definition: PndSttTrack.h:61
__m128 m
Definition: P4_F32vec4.h:28
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Int_t GetPdgCode() const
Definition: PndMCTrack.h:73
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
Double_t ptot
Definition: checkhelixhit.C:68
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
int evt
Definition: checkhelixhit.C:36
TH2F * hdedxvsp_pi
Double_t GetDist()
Definition: PndSttTrack.h:57
Double_t d0
Definition: checkhelixhit.C:59
Double_t GetRad()
Definition: PndSttTrack.h:59
Double_t GetPhi()
Definition: PndSttTrack.h:58
Double_t
Double_t phi0
Definition: checkhelixhit.C:60
TTree * treedigi
TTree * treereco
Double_t y0
Definition: checkhelixhit.C:71
PndMCTrack * track
Definition: anaLmdCluster.C:89
TH2F * hdedxvsp
Int_t GetCharge()
Definition: PndSttTrack.h:63
Double_t ptran
Definition: checkhelixhit.C:65
TH2F * hdedxvsp_p
Int_t GetHelixHitIndex(Int_t iHit) const
Definition: PndSttTrack.h:49
Double_t GetdEdx() const
TClonesArray * hh
TClonesArray * matchtrack
Double_t R
Definition: checkhelixhit.C:61
Double_t plong
Definition: checkhelixhit.C:67
treemc SetBranchAddress ( "STTPoint"  ,
pnt 
)
treemc SetBranchAddress ( "MCTrack"  ,
mctrack 
)
treedigi SetBranchAddress ( "STTHit"  ,
digi 
)
treereco SetBranchAddress ( "SttHelixHit"  ,
hh 
)
treereco SetBranchAddress ( "STTTrack"  ,
track 
)
treereco SetBranchAddress ( "STTTrackMatch"  ,
matchtrack 
)
hdedxvsp_e SetMarkerColor ( )
hdedxvsp_k SetMarkerColor ( )
hdedxvsp_pi SetMarkerColor ( )
hdedxvsp_mu SetMarkerColor ( )
hdedxvsp_p SetMarkerColor ( )
timer Start ( )
hdedxvsp Write ( )

Variable Documentation

TCanvas* c = new TCanvas("c", "c", 0, 0, 600, 600)

Definition at line 35 of file checkdedx_helixhit.C.

TCanvas* c1 = new TCanvas("c1", "c1", 0, 0, 600, 600)

Definition at line 40 of file checkdedx_helixhit.C.

TCanvas* c2 = new TCanvas("c2", "c2", 0, 0, 600, 600)

Definition at line 48 of file checkdedx_helixhit.C.

TClonesArray* digi = new TClonesArray("PndSttHit")

Definition at line 20 of file checkdedx_helixhit.C.

Referenced by PndDrcDigiTask::ActivatePixel(), PndDrcTimeDigiTask::ActivatePixel(), PndEmcCluster::addDigi(), PndMasterRunAna::AddDigiOnlyTasks(), PndMasterRunAna::AddDigiTasks(), PndGemFindClustersTB::AddDigiToCluster(), PndGemFindClusters::AddDigiToCluster(), PndEmcCluster::addLocalMax(), PndGemFindClustersTB::AnalyzeClusters(), PndEmcClusterMoments::Centre1(), PndEmcClusterMoments::Centre2(), PndGemFindClustersTB::CheckCluster(), PndGemFindClustersTB::CompareDigiToClusters(), PndGemFindClusters::CompareDigiToClustersDigis(), PndGemFindClusters::CreateClusters(), PndGemFindClustersTB::CreateClusters(), PndSdsChargeWeightingAlgorithms::DigiCharge(), PndSdsIdealChargeConversion::DigiValueToCharge(), PndEmcClusterEnergySums::E9(), PndEmcClusterProperties::Energy(), PndEmcClusterEnergySums::energy(), PndMQSdsHitLoader::Exec(), for(), PndEmcDigiCaloDraw::GetEnergy(), PndEmcDigiCaloDraw::GetVector(), PndEmcClusterProperties::GravWhere(), PndEmcXClMoments::Init(), PndEmc2DLocMaxFinder::isALocalMax(), PndEmcClusterMoments::Major1(), PndEmcClusterMoments::Major2(), PndEmcClusterProperties::Major_axis(), PndEmcClusterProperties::Mass(), PndEmcCluster::Maxima(), PndEmcClusterMoments::Minor1(), PndEmcClusterMoments::Minor2(), PndEmcClusterMoments::Phi1(), PndEmcClusterMoments::Phi2(), PndEmcXClMoments::Print(), PndMvdPastaTorino::ReadTorinoDaqFrame(), reco_analys(), PndEmcCluster::removeDigi(), PndEmcClusterMoments::SecondMoment(), PndEmcClusterMoments::SecondMomentTP(), PndGemFindHits::SortDigis(), PndEmcClusterMoments::Theta1(), PndEmcClusterMoments::Theta2(), timeStructurePasta(), PndGemFindClustersTB::WriteClusters(), and PndCATracking::WriteMVDHits().

TH2F* hdedxvsp = new TH2F("hdedxvsp","dedx vs p",100,0.,1.5, 100,0.,40.)

Definition at line 38 of file checkdedx_helixhit.C.

TH2F* hdedxvsp_e = new TH2F("hdedxvsp_e","dedx vs p for e",100,0.,1.5, 100,0.,40.)

Definition at line 44 of file checkdedx_helixhit.C.

TH2F* hdedxvsp_k = new TH2F("hdedxvsp_k","dedx vs p for K",100,0.,1.5, 100,0.,40.)

Definition at line 45 of file checkdedx_helixhit.C.

TH2F* hdedxvsp_mu = new TH2F("hdedxvsp_mu","dedx vs p for #mu",100,0.,1.5, 100,0.,40.)

Definition at line 46 of file checkdedx_helixhit.C.

TH2F* hdedxvsp_p = new TH2F("hdedxvsp_p","dedx vs p for p",100,0.,1.5, 100,0.,40.)

Definition at line 42 of file checkdedx_helixhit.C.

TH2F* hdedxvsp_pi = new TH2F("hdedxvsp_pi","dedx vs p for #pi",100,0.,1.5, 100,0.,40.)

Definition at line 43 of file checkdedx_helixhit.C.

TH2F* hdedxvsp_reco = new TH2F("hdedxvsp_reco","dedx vs reco p",100,0.,1.5, 100,0.,40.)

Definition at line 49 of file checkdedx_helixhit.C.

TClonesArray* hh = new TClonesArray("PndSttHelixHit")

Definition at line 26 of file checkdedx_helixhit.C.

Referenced by PndDrcReco::CanvasSave(), and PndFTSCAGBTracker::FitTracks().

TClonesArray* matchtrack = new TClonesArray("PndSttTrackMatch")

Definition at line 32 of file checkdedx_helixhit.C.

TClonesArray* mctrack = new TClonesArray("PndMCTrack")

Definition at line 14 of file checkdedx_helixhit.C.

TFile* out_dedx = new TFile("out_dedx_helixhit.root", "RECREATE")

Definition at line 160 of file checkdedx_helixhit.C.

TClonesArray* pnt = new TClonesArray("PndSttPoint")
TH1F* samplenum = new TH1F("samplenum","number of sampling",50,0.,50.)

Definition at line 37 of file checkdedx_helixhit.C.

TStopwatch timer
Initial value:
{
gROOT->Reset()

Definition at line 1 of file checkdedx_helixhit.C.

TClonesArray* track = new TClonesArray("PndSttTrack")

Definition at line 30 of file checkdedx_helixhit.C.

TTree* treedigi = (TTree*) filedigi.Get("pndsim")
TTree* treemc = (TTree*) filerun.Get("pndsim")

Definition at line 11 of file checkdedx_helixhit.C.

TTree* treereco = (TTree*) filehelix.Get("pndsim")

Definition at line 25 of file checkdedx_helixhit.C.

Referenced by QAmacro_stt_4().