FairRoot/PandaRoot
Functions | Variables
checkhelixhit.C File Reference

Go to the source code of this file.

Functions

timer Start ()
 
TFile filerun ("testrun.root")
 
treepnt SetBranchAddress ("STTPoint",&pnt)
 
TFile filedigi ("testdigi.root")
 
treedigi SetBranchAddress ("STTHit",&digi)
 
TFile filehelix ("testreco.root")
 
treereco SetBranchAddress ("SttHelixHit",&hh)
 
treereco SetBranchAddress ("STTTrack",&track)
 
c Divide (1, 2)
 
treepnt GetEntry (evt)
 
c cd (1)
 
hxy Draw ()
 
c cd (2)
 
 if (!stttrack) continue
 
cout<< "evt"<< evt<< " track "
<< k<< " num hits "<< stttrack-> 
GetNofHelixHits ()
 

Variables

TStopwatch timer
 
TTree * treepnt = (TTree*) filerun.Get("pndsim")
 
TClonesArray * pnt = new TClonesArray("PndSttPoint")
 
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")
 
TCanvas * c = new TCanvas("c", "c", 0, 0, 600, 600)
 
TH2F * hxy = new TH2F("hxy","hxy",100,-42,42, 100,-42,42)
 
TH2F * hyz = new TH2F("hyz","hyz",100,0,50, 100,-40,110)
 
int evt = 0
 
cout<< "blue = Monte Carlo "
<< endl;cout<< "red = Helix
Hit "<< endl;cout<< "green
= Center Of Tubes "<< endl;for(Int_t
k=0;k< track->GetEntriesFast();k++){PndSttTrack
*stttrack=(PndSttTrack
*) track-> 
At (k)
 
Double_t d0 = stttrack->GetDist()
 
Double_t phi0 = stttrack->GetPhi()
 
Double_t R = stttrack->GetRad()
 
Double_t z0 = stttrack->GetZ()
 
Double_t tanl = stttrack->GetTanL()
 
Double_t h = -(Int_t) stttrack->GetCharge()
 
Double_t ptran = 0.003 * 2 * R
 
Double_t plong = ptran * tanl
 
Double_t ptot = sqrt(plong*plong + ptran*ptran)
 
Double_t x0 = (d0 + R) * cos(phi0)
 
Double_t y0 = (d0 + R) * sin(phi0)
 

Function Documentation

c cd ( )
c cd ( )
c Divide ( ,
 
)
hxy 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
TFile filedigi ( "testdigi.root"  )
TFile filehelix ( "testreco.root"  )
TFile filerun ( "testrun.root"  )
treepnt GetEntry ( evt  )
cout<< "evt" << evt << " track " << k << " num hits " << stttrack-> GetNofHelixHits ( )

TMarker *mrkpnt = new TMarker(mcpoint->GetYtot(), mcpoint->GetZtot(), 2); mrkpnt->SetMarkerColor(4); mrkpnt->Draw("SAME"); TMarker *mrkdigi = new TMarker(hit->GetY(), hit->GetZ(), 6); mrkdigi->SetMarkerColor(3); mrkdigi->Draw("SAME"); TMarker *mrkhh = new TMarker(helixhit->GetY(), helixhit->GetZ(), 5); mrkhh->SetMarkerColor(2); mrkhh->Draw("SAME");

Definition at line 73 of file checkhelixhit.C.

92  {
93  Int_t iHHit = stttrack->GetHelixHitIndex(j);
94  PndSttHelixHit *helixhit = (PndSttHelixHit*) hh->At(iHHit);
95 
96  Int_t hitindex = helixhit->GetHitIndex();
97  PndSttHit* hit = (PndSttHit*) digi->At(hitindex);
98  PndSttPoint *mcpoint = (PndSttPoint*) pnt->At(hit->GetRefIndex());
99 
100  c->cd(1);
101 
102  // points/hits
103  TMarker *mrkpnt = new TMarker(mcpoint->GetXtot(), mcpoint->GetYtot(), 2);
104  mrkpnt->SetMarkerColor(4);
105  mrkpnt->Draw("SAME");
106  TMarker *mrkdigi = new TMarker(hit->GetX(), hit->GetY(), 6);
107  mrkdigi->SetMarkerColor(3);
108  mrkdigi->Draw("SAME");
109  TMarker *mrkhh = new TMarker(helixhit->GetX(), helixhit->GetY(), 5);
110  mrkhh->SetMarkerColor(2);
111  mrkhh->Draw("SAME");
112 
113  c->cd(2);
114 
127  // cout << "MC " << mcpoint->GetXtot()
128  // << " " << mcpoint->GetYtot()
129  // << " " << mcpoint->GetZtot() << endl;
130 
131  // cout << "helixhit " << helixhit->GetX()
132  // << " " << helixhit->GetY()
133  // << " " << helixhit->GetZ() << endl;
134 
135 
136 
137  Double_t scoslMC = stttrack->CalculateScosl(mcpoint->GetXtot(), mcpoint->GetYtot());
138  TMarker *mrkpnt = new TMarker(scoslMC, mcpoint->GetZtot(), 2);
139  mrkpnt->SetMarkerColor(4);
140  mrkpnt->Draw("SAME");
141 
142  Double_t scoslH = stttrack->CalculateScosl(hit->GetX(), hit->GetY());
143  TMarker *mrkdigi = new TMarker(scoslH, hit->GetZ(), 6);
144  mrkdigi->SetMarkerColor(3);
145  // mrkdigi->Draw("SAME");
146 
147  Double_t scoslHH = stttrack->CalculateScosl(helixhit->GetX(), helixhit->GetY());
148  TMarker *mrkhh = new TMarker(scoslHH, helixhit->GetZ(), 5);
149  mrkhh->SetMarkerColor(2);
150  mrkhh->Draw("SAME");
151 
152  // cout << scoslMC<< " " << mcpoint->GetZtot() << endl;
153  }
Int_t GetHitIndex()
TClonesArray * digi
TClonesArray * pnt
Double_t GetYtot() const
Definition: PndSttPoint.h:55
Double_t GetZtot() const
Definition: PndSttPoint.h:56
Double_t
Double_t GetXtot() const
Definition: PndSttPoint.h:54
PndSdsMCPoint * hit
Definition: anasim.C:70
TClonesArray * hh
if ( stttrack)

Definition at line 4 of file checktubes.C.

4  {
5  file->Get("FairBaseParSet");
6  TGeoManager *geoMan = gGeoManager;
7  if(!geoMan) {
8  file->Get("FairGeoParSet");
9  geoMan = gGeoManager;
10  if(!geoMan) {
11  cout << "Could not find valid GeoManager. Abort now!" << endl;
12  exit(1);
13  }
14  }
15 
16  PndGeoSttPar *parameters = file.Get("PndGeoSttPar");
17  PndSttMapCreator *mapper = new PndSttMapCreator(parameters);
18  TClonesArray *fTubeArray = mapper->FillTubeArray();
19 
20  TCanvas *c = new TCanvas("c", "", 400, 0, 900, 900);
21  TH2F *h2 = new TH2F("h2", "", 100, -42, 42, 100, -42, 42);
22  h2->SetStats(kFALSE);
23  h2->Draw();
24 
25  TArc *arc = NULL;
26  TMarker *mrk = NULL;
27  PndSttTube *tube = NULL;
28  int itube = 0;
29  while(itube != -1) {
30  c->Clear();
31  c->Draw();
32  h2->Draw();
33 
34 
35  // draw all the tubes
36  for(itube = 1; itube < fTubeArray->GetEntriesFast(); itube++) {
37  tube = (PndSttTube*) fTubeArray->At(itube);
38  if(tube->IsParallel()) {
39  arc = new TArc(tube->GetPosition().X(), tube->GetPosition().Y(), 0.5);
40  arc->Draw("SAME");
41  }
42  else {
43  mrk = new TMarker(tube->GetPosition().X(), tube->GetPosition().Y(), 6);
44  mrk->Draw("SAME");
45  }
46  }
47  // ............................
48 
49 
50 
51  cout << "WHICH tube do you want to test? [to exit type -1]" << endl;
52  cin >> itube;
53  if(itube == -1) exit(0);
54  cout << "TESTING tube " << itube << endl;
55  tube = (PndSttTube*) fTubeArray.At(itube);
56  if(!tube) {
57  cout << "this tube does not exist" << endl;
58  continue;
59  }
60 
61  TArrayI neighborings = tube->GetNeighborings();
62  cout << "nof neighboring tubes: " << neighborings->GetSize() << endl;
63  arc = new TArc(tube->GetPosition().X(), tube->GetPosition().Y(), 0.5);
64  arc->SetFillColor(kYellow);
65  arc->Draw("SAME");
66 
67  for(int inei = 0; inei < neighborings.GetSize(); inei++) {
68  tube = (PndSttTube*) fTubeArray.At(neighborings.At(inei));
69  TVector3 position = tube->GetPosition();
70  cout << " " << neighborings.At(inei);
71  if(tube->IsParallel()) {
72  arc = new TArc(position.X(), position.Y(), 0.5);
73  arc->SetFillColor(3);
74  arc->Draw("SAME");
75  }
76  else {
77  mrk = new TMarker(position.X(), position.Y(), 6);
78 
79  TVector3 extr1 = position - tube->GetWireDirection() * tube->GetHalfLength();
80  TVector3 extr2 = position + tube->GetWireDirection() * tube->GetHalfLength();
81  // mrk = new TMarker(extr1.X(), extr1.Y(), 6);
82  // mrk = new TMarker(extr2.X(), extr2.Y(), 6);
83 
84  mrk->SetMarkerColor(3);
85  mrk->Draw("SAME");
86  }
87  }
88 
89  cout << endl;
90  c->Update();
91  c->Modified();
92  }
93 
94 }
TFile * file
Double_t GetHalfLength()
Definition: PndSttTube.cxx:99
exit(0)
TGeoManager * geoMan
TGeoManager * gGeoManager
TArrayI GetNeighborings()
Definition: PndSttTube.cxx:137
TVector3 GetPosition()
Definition: PndSttTube.cxx:87
TClonesArray * FillTubeArray()
bool IsParallel()
Definition: PndSttTube.h:66
TVector3 GetWireDirection()
Definition: PndSttTube.cxx:107
treepnt SetBranchAddress ( "STTPoint"  ,
pnt 
)
treedigi SetBranchAddress ( "STTHit"  ,
digi 
)
treereco SetBranchAddress ( "SttHelixHit"  ,
hh 
)
treereco SetBranchAddress ( "STTTrack"  ,
track 
)
timer Start ( )

Variable Documentation

cout<< "blue = Monte Carlo " << endl; cout << "red = Helix Hit " << endl; cout << "green = Center Of Tubes " << endl; for (Int_t k = 0; k < track->GetEntriesFast(); k++) { PndSttTrack *stttrack = (PndSttTrack*) track-> At(k)

Definition at line 56 of file checkhelixhit.C.

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

Definition at line 31 of file checkhelixhit.C.

Double_t d0 = stttrack->GetDist()
TClonesArray* digi = new TClonesArray("PndSttHit")

Definition at line 18 of file checkhelixhit.C.

int evt = 0
Double_t h = -(Int_t) stttrack->GetCharge()

Definition at line 64 of file checkhelixhit.C.

TClonesArray* hh = new TClonesArray("PndSttHelixHit")

Definition at line 24 of file checkhelixhit.C.

TH2F* hxy = new TH2F("hxy","hxy",100,-42,42, 100,-42,42)

Definition at line 33 of file checkhelixhit.C.

TH2F* hyz = new TH2F("hyz","hyz",100,0,50, 100,-40,110)

Definition at line 34 of file checkhelixhit.C.

Double_t phi0 = stttrack->GetPhi()
Double_t plong = ptran * tanl

Definition at line 67 of file checkhelixhit.C.

Referenced by PndSttTrackFitterQATask::Exec(), and GetEntriesFast().

TClonesArray* pnt = new TClonesArray("PndSttPoint")

Definition at line 11 of file checkhelixhit.C.

Double_t ptran = 0.003 * 2 * R

Definition at line 65 of file checkhelixhit.C.

Referenced by PndSttTrackFitterQATask::Exec(), and GetEntriesFast().

Double_t R = stttrack->GetRad()

Definition at line 61 of file checkhelixhit.C.

Referenced by PndMvdRiemannTrackFinderTaskEff::AddGhostTrack(), PndTrkLegendreSecTask2::AddHitToClusterByDistance(), PndTrkLegendreNew::AnalyticalFit2(), PndTrkTrackFinder::AnalyticalFit2(), PndTrkCombiLegendreTask::AnalyticalFit2(), angle(), PndSttTrackFinderReal::AssociateSkewHitsToXYTrack(), PndRiemannTrack::calcErrorS(), PndSttHitCorrector::CalculateTangentAngles(), GFKalman::chi2Increment(), PndTrkComparisonMCtruth::ComparisonwithMC(), PndTrkLegendreNew::CreateClusterAroundTrack(), PndTrkCombiLegendreTask::CreateClusterAroundTrack(), PndTrkTrackFinder::CreateClusterAroundTrack(), PndTrkCombiLegendreTask::CreateClusterAroundTrack2(), PndTrkCombiLegendreTask::CreateClusterAroundTrack3(), PndTrkLegendreSecTask::CreateClusterByDistance(), PndTrkLegendreTask::CreateClusterByDistance(), PndTrkLegendreSecTask2::CreateClusterByDistance(), createRootGeometry_beampipe(), PndTrkLegendreSecTask::CreateSkewHitList(), PndTrkLegendreTask::CreateSkewHitList(), PndTrkLegendreSecTask2::CreateSkewHitList(), PndTrkTrackFinder::CreateSkewHitList(), PndSttTrackFinderReal::disegnaSciTilHit(), PndSttTrackFinderReal::DoFind(), PndKFParticleFinderQA::Exec(), PndTrkLegendreNew::Exec(), PndTrkLegendreSecTask::Exec(), PndTrkLegendreSecTask2::Exec(), PndTrkLegendreTask::Exec(), PndTrkCombiLegendreTask::Exec(), PndTrkTrackFinder::Exec(), PndSciTAnaIdeal::Exec(), PndKFParticleFinderQA::FindEmcClusterMother(), PndTrkCTFindTrackInXY2::FindTrackInXYProjection(), PndSttMvdGemTracking::Fit(), PndTrkLegendreFits::FitHelixCylinder(), PndTrkLegendreFits::FitHelixCylinder2(), GetEntriesFast(), PndEmcErrorMatrix::GetErrorMatrix(), GFTools::getSmoothedChiSqu(), PndFTSCAGBTracker::InitialTrackApproximation(), PndSttTrackFinderReal::IntersectionCircle_Segment(), PndTrkLegendreNew::IntersectionFinder(), PndTrkTrackFinder::IntersectionFinder(), PndTrkCombiLegendreTask::IntersectionFinder(), PndTrkLegendreNew::LegendreFit(), PndTrkCombiLegendreTask::LegendreFit(), PndTrkTrackFinder::LegendreFit(), LoadManySimFiles(), PndTrkLegendreFits::LoadMatrix_FindMaximum(), PndTrkLegendreFits::LoadMatrix_FindMaximum2(), PndSttTrack::MomentumAtPoint(), mz_pp_to_leplep_vandewi_event(), mz_pp_to_leplep_vandewi_sigma_nonorm(), PndSttTrack::PCAToPoint(), PndSttTrackFinderReal::PndSttTrkFindCircles(), PndFsmTrack::Propagate(), PndFTSCAGBTracker::Refit_1(), RKTrackRep::RKutta(), PndRadMapBoxMesh::Transform(), PndTrkPlotMacros::WriteAllMacros(), PndTrkPlotMacros2::WriteAllMacros(), PndSttTrackFinderReal::WriteMacroSkewAssociatedHits(), PndSttTrackFinderReal::WriteMacroSkewAssociatedHitswithMC(), PndSttTrackFinderReal::WriteMacroSkewAssociatedHitswithRfromMC(), PndTrkPlotMacros::WriteMacroSttParallelAssociatedHitsandMvdwithMC(), PndTrkPlotMacros2::WriteMacroSttParallelAssociatedHitsandMvdwithMC(), PndSttHelixTrackFitter::XYFit(), PndSttHelixTrackFitter::XYFitThroughOrigin(), PndSttHelixTrackFitter::ZFinder(), and PndSttHelixTrackFitter::ZFinderThroughOrigin().

Double_t tanl = stttrack->GetTanL()
TStopwatch timer
Initial value:
{
gROOT->Reset()

Definition at line 1 of file checkhelixhit.C.

TClonesArray* track = new TClonesArray("PndSttTrack")

Definition at line 28 of file checkhelixhit.C.

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

Definition at line 17 of file checkhelixhit.C.

TTree* treepnt = (TTree*) filerun.Get("pndsim")

Definition at line 10 of file checkhelixhit.C.

Referenced by QAmacro_stt_4().

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

Definition at line 23 of file checkhelixhit.C.

Double_t x0 = (d0 + R) * cos(phi0)

Definition at line 70 of file checkhelixhit.C.

Referenced by PndTrkLegendreSecTask2::AddHitToClusterByDistance(), PndCATrackParam::BetheBlochGas(), PndCATrackParamVector::BetheBlochGas(), PndFTSCATrackParamVector::BetheBlochGas(), PndCATrackParam::BetheBlochGeant(), PndCATrackParamVector::BetheBlochGeant(), PndFTSCATrackParamVector::BetheBlochGeant(), PndRiemannTrack::calcIntersection(), PndSttTrack::CalculateScosl(), PndFTSCAParameters::CALocalToGlobal(), PndCATracking::CATrackParToFairTrackParP(), PndTrkCluster::CheckClusterAgainsV(), checkfile(), Chi2(), PndTrkTrack::ComputePhi(), PndTrkTrack::ComputePhiFrom(), PndTrkFitter::ConstrainedStraightLineFit(), PndTrkLegendreSecTask::CreateClusterByDistance(), PndTrkLegendreTask::CreateClusterByDistance(), PndTrkLegendreSecTask2::CreateClusterByDistance(), createRootGeoFileFwEndCap_2011(), TtCracowTask::distance2(), PndFTSCADisplay::DrawGBHits(), PndFTSCADisplay::DrawGBPoints(), PndFTSCADisplay::DrawGBTrackFast(), PndFTSCADisplay::DrawTrack(), PndSttMvdGemTracking::EvaluatePerformances(), PndDiscTaskReconstruction::Exec(), PndDiscTaskPID::Exec(), PndSciTAnaIdeal::Exec(), PndSttHelixTrackFitter::FindCorrectZ(), PndFTSCAGBTracker::FitTrack(), PndCATrackParam::GetDCAPoint(), PndCATrackParamVector::GetDCAPoint(), PndFTSCATrackParam::GetDCAPoint(), PndFTSCATrackParamVector::GetDCAPoint(), PndSciTAnaIdeal::GetDPhi(), GetEntriesFast(), PndSttMvdGemTracking::GetInitialParams(), PndTrkHit::GetXYDistanceFromTrack(), PndCAParameters::GlobalToCALocal(), PndFTSCAParameters::GlobalToCALocal(), PndSttHelixTrackFitter::Hough(), PndSttHelixTrackFitter::HoughThroughOrigin(), PndFTSCAParam::InitMagneticField(), PndGeoDskFLG::LineFunction(), PndMvdAdvancedPidAlgo::mpv(), PndHypAdvancedPidAlgo::mpv(), PndFsmMvdPid::mpv(), PndFsmMvd2::mpv(), PndGemSensor::PndGemSensor(), PndSttMvdGemTracking::Prefit(), propagate(), PndSttMvdGemTracking::PropagateToGemPlaneAsHelix(), PndCATrackParam::Rotate(), PndCATrackParamVector::Rotate(), PndFTSCATrackParamVector::Rotate(), trafo_matrix_test(), RhoKinHyperonVtxFitter::TransportToPoca(), PndSttHelixTrackFitter::ZFinder(), PndSttHelixTrackFitter::ZFinderThroughOrigin(), and PndSttMvdGemTracking::ZFit().

Double_t y0 = (d0 + R) * sin(phi0)

Definition at line 71 of file checkhelixhit.C.

Referenced by PndTrkLegendreSecTask2::AddHitToClusterByDistance(), PndRiemannTrack::calcIntersection(), PndSttTrack::CalculateScosl(), PndCATracking::CATrackParToFairTrackParP(), PndTrkCluster::CheckClusterAgainsV(), PndTrkCluster::ComputeCircle(), PndTrkTrack::ComputePhi(), PndTrkTrack::ComputePhiFrom(), PndTrkLegendreSecTask::CreateClusterByDistance(), PndTrkLegendreTask::CreateClusterByDistance(), PndTrkLegendreSecTask2::CreateClusterByDistance(), createRootGeoFileFwEndCap_2011(), PndTrkLegendreSecTask::CreateSkewHitList(), PndTrkLegendreTask::CreateSkewHitList(), PndTrkLegendreSecTask2::CreateSkewHitList(), PndTrkTrackFinder::CreateSkewHitList(), PndFTSCADisplay::DrawGBTrackFast(), PndFTSCADisplay::DrawTrack(), PndSttMvdGemTracking::EvaluatePerformances(), PndDiscTaskReconstruction::Exec(), PndDiscTaskPID::Exec(), PndTrkTrackFinder::Exec(), PndSciTAnaIdeal::Exec(), PndFTSCATrackParamVector::FilterWithMaterial(), PndSttHelixTrackFitter::FindCorrectZ(), PndFTSCAGBTracker::FitTrack(), PndCATrackParam::GetDCAPoint(), PndCATrackParamVector::GetDCAPoint(), PndFTSCATrackParam::GetDCAPoint(), PndFTSCATrackParamVector::GetDCAPoint(), PndSciTAnaIdeal::GetDPhi(), GetEntriesFast(), PndSttMvdGemTracking::GetInitialParams(), PndTrkHit::GetXYDistanceFromTrack(), PndSttHelixTrackFitter::Hough(), PndSttHelixTrackFitter::HoughThroughOrigin(), PndGeoDskFLG::LineFunction(), PndGemSensor::PndGemSensor(), PndSttMvdGemTracking::Prefit(), propagate(), PndSttMvdGemTracking::PropagateToGemPlaneAsHelix(), PndCATrackParam::Rotate(), PndCATrackParamVector::Rotate(), PndFTSCATrackParamVector::Rotate(), PndSttHelixTrackFitter::ZFinder(), PndSttHelixTrackFitter::ZFinderThroughOrigin(), and PndSttMvdGemTracking::ZFit().

Double_t z0 = stttrack->GetZ()