FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DrawHits Class Reference

#include <DrawHits.h>

Inheritance diagram for DrawHits:

Public Member Functions

 DrawHits ()
 
 DrawHits (Int_t verbose)
 
virtual ~DrawHits ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *option)
 
virtual void Finish ()
 
void RotBarCoordinate (TVector3 &vector, Int_t barID)
 
void SetTreeName (TString str)
 

Private Member Functions

void ProcessPhotonHit ()
 
void ProcessPhotonMC ()
 
void WriteToFile ()
 
void CreateHisto ()
 
void DrawHisto ()
 
void ProcessBarHit ()
 
void SetDefaultParameters ()
 
void SetPlotStyle ()
 
Bool_t InsideBar (Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t, Double_t)
 

Private Attributes

Int_t fDetectorID
 
Double_t fMass
 
Double_t fThetaC
 
Double_t fErrThetaC
 
Int_t fRefIndex
 
TClonesArray * fBarPointArray
 
TClonesArray * fPDPointArray
 
TClonesArray * fHitArray
 
TClonesArray * fPDHitArray
 
TClonesArray * fMCArray
 
TList * fHistoList
 
PndGeoDrcParfPar
 
PndGeoDrcfGeo
 Basic geometry data of barrel DRC. More...
 
Int_t fVerbose
 
Int_t nevents
 
Double_t xmcp
 
Double_t ymcp
 
Double_t zmcp
 
Double_t pxmc
 
Double_t pymc
 
Double_t pzmc
 
Float_t xhit
 
Float_t yhit
 
Double_t zhit
 
Double_t thit
 
Double_t xbar
 
Double_t ybar
 
Double_t zbar
 
Double_t pxMo
 
Double_t pyMo
 
Double_t pzMo
 
Double_t pxPho
 
Double_t pyPho
 
Double_t pzPho
 
Double_t xEnt
 
Double_t yEnt
 
Double_t zEnt
 
Double_t lam
 
Double_t fPhiRot
 
TVector3 fStartVertex
 
Double_t fPx
 
Double_t fPy
 
Double_t fPz
 
Double_t fXcross
 
Double_t fYcross
 
TVector3 fPphoB
 
Double_t fkxBar
 
Double_t fkyBar
 
Double_t fkzBar
 
TString fTreeName
 
TTree * phoTree
 
std::vector< TH1F * > histos
 
TH1F * currh
 
TGraph2D * map
 
TGraph2D * pop
 
TVector3 fPMo
 
TH1D * fhThetaC
 
TH2D * fhThetaCMass
 
TH2D * fhMomAng
 
TH2D * fhThetaCMomK
 
TH2D * fhThetaCMomP
 
TH2D * fhThetaCMomM
 
TH2D * fhThetaCMomE
 
TH1F * fhPhoTheta
 
TH2F * fhPDPlane
 
TH1D * fhCHrealMC
 
TH1D * fhCHreal
 
TH2D * fhCHlam
 
TH2D * fhCHlamMC
 
TH2D * fhCHlamE
 
TH2F * fhHitsD
 
TH1D * fhLambda
 
TH2D * fhXYPDHit
 
TH1D * fhLambdaMC
 
TH2D * fhXYPDMCPt
 
TH1D * fhPDTime
 
TH2D * fhXYPDHitKp
 
TH2D * fhXYPDHitKn
 
TH2D * fhXYPDHitpip
 
TH2D * fhXYPDHitpin
 
TH2D * fhXYPDHitmp
 
TH2D * fhXYPDHitmn
 
TH2D * fhXYPDMCPtKp
 
TH2D * fhXYPDMCPtKn
 
TH2D * fhXYPDMCPtpip
 
TH2D * fhXYPDMCPtpin
 
TH2D * fhXYPDMCPtmp
 
TH2D * fhXYPDMCPtmn
 

Detailed Description

DrawHits.h

Class for Analysising DRC Hits

Definition at line 47 of file DrawHits.h.

Constructor & Destructor Documentation

DrawHits::DrawHits ( )

Default constructor

Definition at line 48 of file DrawHits.cxx.

References fGeo.

49 :FairTask("DrawHits")
50 {
51  fGeo = new PndGeoDrc();
52 
53 }
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
Definition: DrawHits.h:98
DrawHits::DrawHits ( Int_t  verbose)

Constructor with verbosity

Definition at line 56 of file DrawHits.cxx.

References fGeo, fVerbose, and verbose.

57  :FairTask("DrawHits")
58 {
59  fVerbose = verbose;
60  fGeo = new PndGeoDrc();
61 }
#define verbose
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
Definition: DrawHits.h:98
Int_t fVerbose
Definition: DrawHits.h:104
DrawHits::~DrawHits ( )
virtual

Destructor

Definition at line 63 of file DrawHits.cxx.

References fGeo, and fHistoList.

64 {
65  if (fGeo) delete fGeo;
66  fHistoList->Delete();
67  delete fHistoList;
68 }
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
Definition: DrawHits.h:98
TList * fHistoList
Definition: DrawHits.h:94

Member Function Documentation

void DrawHits::CreateHisto ( )
private

Definition at line 358 of file DrawHits.cxx.

References fhCHlam, fhCHlamE, fhCHlamMC, fhCHreal, fhCHrealMC, fHistoList, fhLambda, fhLambdaMC, fhMomAng, fhPDPlane, fhPDTime, fhPhoTheta, fhThetaC, fhThetaCMass, fhThetaCMomE, fhThetaCMomK, fhThetaCMomM, fhThetaCMomP, fhXYPDHit, fhXYPDHitKn, fhXYPDHitKp, fhXYPDHitmn, fhXYPDHitmp, fhXYPDHitpin, fhXYPDHitpip, fhXYPDMCPt, fhXYPDMCPtKn, fhXYPDMCPtKp, fhXYPDMCPtmn, fhXYPDMCPtmp, fhXYPDMCPtpin, fhXYPDMCPtpip, fTreeName, phoTree, pxMo, pxPho, pyMo, pyPho, pzMo, pzPho, thit, xbar, xEnt, xhit, ybar, yEnt, yhit, zbar, zEnt, and zhit.

Referenced by Init().

359 {
360  // Creation of the TTree to hold the data for Cherenkov angle
361  phoTree = new TTree(fTreeName, "tree to get cherenkov angle");
362  phoTree->Branch("HitX", &xhit, "HitX/D");
363  phoTree->Branch("HitY", &yhit, "HitY/D");
364  phoTree->Branch("HitZ", &zhit, "HitZ/D");
365  phoTree->Branch("HitT", &thit, "HitT/D");
366  phoTree->Branch("MotherPx", &pxMo, "MotherPx/D");
367  phoTree->Branch("MotherPy", &pyMo, "MotherPy/D");
368  phoTree->Branch("MotherPz", &pzMo, "MotherPz/D");
369  phoTree->Branch("InitPhoPx", &pxPho, "InitPhoPx/D");
370  phoTree->Branch("InitPhoPy", &pyPho, "InitPhoPy/D");
371  phoTree->Branch("InitPhoPz", &pzPho, "InitPhoPz/D");
372  phoTree->Branch("xEntry", &xEnt, "xEntry/D");
373  phoTree->Branch("yEntry", &yEnt, "yEntry/D");
374  phoTree->Branch("zEntry", &zEnt, "zEntry/D");
375  phoTree->Branch("xBar", &xbar, "xBar/D");
376  phoTree->Branch("yBar", &ybar, "yBar/D");
377  phoTree->Branch("zBar", &zbar, "zBar/D");
378 
379  // Histogram list
380  fHistoList = new TList();
381 
382  //Histogram for Bar Hits
383 
384  fhThetaC = new TH1D("fhThetaC", "Cherenkov Angle", 100, 0, 1);
385  fhThetaCMass = new TH2D("fhThetaCMass", " ThetaC vs. Mass", 100, 0, 1, 100, 0, 0.6);
386  fhThetaCMomK = new TH2D("fhThetaCMomK", " ThetaC vs. Mom", 100, 0, 8.0, 100, 0, 1.);
387  fhThetaCMomP = new TH2D("fhThetaCMomP", " ThetaC vs. Mom", 100, 0, 8.0, 100, 0, 1.);
388  fhThetaCMomM = new TH2D("fhThetaCMomM", " ThetaC vs. Mom", 100, 0, 8.0, 100, 0, 1.);
389  fhThetaCMomE = new TH2D("fhThetaCMomE", " ThetaC vs. Mom", 100, 0, 8.0, 100, 0, 1.);
390  fhMomAng = new TH2D("fhMomAng", " Mom vs. Angle", 100, 0, 140.0, 100, 0.0,8.0);
391  fhPhoTheta = new TH1F("fhPhoTheta","Number of photons as a function of initial track theta", 150, 0., 150.);
392  fhPDPlane = new TH2F("fhPDPlane", "pixels hit by photons", 338,-109.85,109.85, 338,-109.85,109.85);
393 
394  //Histogram for Hits in Photon Detector
395 
396  fhLambda =new TH1D("fhLambda", "No of Photons vs. Lambda", 200, 100, 1000);
397  fhPDTime =new TH1D("fhPDTime", "Time in ns", 100, 0, 500);
398  fhXYPDHit = new TH2D("fhXYPDHit", "XY distribution of Photon Hits", 1000, -110, 110, 1000, -110, 110);
399 
400  fhCHreal = new TH1D("fhCHreal","Generated Cherenkov angle, hits", 100, 0.78, 0.88);
401  fhCHlam = new TH2D("fhCHlam","Cherenkov angle as a function of lambda", 1000,0.,1000.,100,0.7,0.9);
402 
403 //Histogram for MCPoints in Photon Detector
404  fhXYPDMCPt = new TH2D("fhXYPDMCpt", "XY distribution of Photon MCPt", 1000, -110, 110, 1000, -110, 110);
405  fhLambdaMC =new TH1D("fhLambdaMC", "No of Photons vs. Lambda", 200, 100, 1000);
406 
407  fhCHrealMC = new TH1D("fhCHrealMC","Generated Cherenkov angle, MC",100, 0.78, 0.88);
408  fhCHlamMC = new TH2D("fhCHlamMC","Cherenkov angle as a function of lambda", 1000,0.,1000.,100,0.7,0.9);
409 
410  fhCHlamE = new TH2D("fhCHlamE","CHerenkov angle as a function of lambda", 1000,0.,1000.,100,0.7,0.9);
411 
412 //Histogram for visualization
413  fhXYPDMCPtKp = new TH2D("fhXYPDMCptKp", "XY distribution of Photon MCPt", 1000, -110, 110, 1000, -110, 110);
414  fhXYPDMCPtKn = new TH2D("fhXYPDMCptKn", "XY distribution of Photon MCPt", 1000, -110, 110, 1000, -110, 110);
415  fhXYPDMCPtpip = new TH2D("fhXYPDMCptpip", "XY distribution of Photon MCPt", 1000, -110, 110, 1000, -110, 110);
416  fhXYPDMCPtpin = new TH2D("fhXYPDMCptpin", "XY distribution of Photon MCPt", 1000, -110, 110, 1000, -110, 110);
417  fhXYPDMCPtmp = new TH2D("fhXYPDMCptmp", "XY distribution of Photon MCPt", 1000, -110, 110, 1000, -110, 110);
418  fhXYPDMCPtmn = new TH2D("fhXYPDMCptmn", "XY distribution of Photon MCPt", 1000, -110, 110, 1000, -110, 110);
419 
420  fhXYPDHitKp = new TH2D("fhXYPDHitKp", "XY distribution of Photon Hit", 1000, -110, 110, 1000, -110, 110);
421  fhXYPDHitKn = new TH2D("fhXYPDHitKn", "XY distribution of Photon Hit", 1000, -110, 110, 1000, -110, 110);
422  fhXYPDHitpip = new TH2D("fhXYPDHitpip", "XY distribution of Photon Hit", 1000, -110, 110, 1000, -110, 110);
423  fhXYPDHitpin = new TH2D("fhXYPDHitpin", "XY distribution of Photon Hit", 1000, -110, 110, 1000, -110, 110);
424  fhXYPDHitmp = new TH2D("fhXYPDHitmp", "XY distribution of Photon Hit", 1000, -110, 110, 1000, -110, 110);
425  fhXYPDHitmn = new TH2D("fhXYPDHitmn", "XY distribution of Photon Hit", 1000, -110, 110, 1000, -110, 110);
426 
427 
428  fHistoList->Add(fhThetaC);
429  fHistoList->Add(fhThetaCMass);
430  fHistoList->Add(fhThetaCMomK);
431  fHistoList->Add(fhThetaCMomP);
432  fHistoList->Add(fhThetaCMomM);
433  fHistoList->Add(fhThetaCMomE);
434  fHistoList->Add(fhMomAng);
435  fHistoList->Add(fhPhoTheta);
436  fHistoList->Add(fhPDPlane);
437 
438  fHistoList->Add(fhLambda);
439  fHistoList->Add(fhLambdaMC);
440  fHistoList->Add(fhXYPDHit);
441  fHistoList->Add(fhXYPDMCPt);
442  fHistoList->Add(fhPDTime);
443  fHistoList->Add(fhCHreal);
444  fHistoList->Add(fhCHrealMC);
445  fHistoList->Add(fhCHlam);
446  fHistoList->Add(fhCHlamMC);
447  fHistoList->Add(fhCHlamE);
448 }
TH2D * fhMomAng
Definition: DrawHits.h:171
TH2D * fhXYPDMCPtKp
Definition: DrawHits.h:201
TH2D * fhCHlam
Definition: DrawHits.h:181
TH2D * fhXYPDMCPt
Definition: DrawHits.h:191
TString fTreeName
Definition: DrawHits.h:161
Double_t pxPho
Definition: DrawHits.h:141
TH2D * fhXYPDMCPtmn
Definition: DrawHits.h:206
TH2D * fhThetaCMomE
Definition: DrawHits.h:175
Double_t zhit
Definition: DrawHits.h:133
TH1D * fhLambdaMC
Definition: DrawHits.h:190
TH2D * fhThetaCMomM
Definition: DrawHits.h:174
TH2D * fhXYPDHitKn
Definition: DrawHits.h:195
TH1D * fhCHrealMC
Definition: DrawHits.h:179
TH2F * fhPDPlane
Definition: DrawHits.h:178
TH2D * fhXYPDHitmn
Definition: DrawHits.h:199
TH2D * fhXYPDHitmp
Definition: DrawHits.h:198
TH2D * fhXYPDHitpin
Definition: DrawHits.h:197
TH2D * fhCHlamMC
Definition: DrawHits.h:182
Double_t xEnt
Definition: DrawHits.h:144
Double_t pyMo
Definition: DrawHits.h:139
TH2D * fhXYPDMCPtpip
Definition: DrawHits.h:203
Double_t zbar
Definition: DrawHits.h:137
TTree * phoTree
Definition: DrawHits.h:162
TH2D * fhXYPDMCPtmp
Definition: DrawHits.h:205
Double_t pyPho
Definition: DrawHits.h:142
Double_t ybar
Definition: DrawHits.h:136
TH2D * fhXYPDMCPtpin
Definition: DrawHits.h:204
TH2D * fhThetaCMomK
Definition: DrawHits.h:172
TH2D * fhXYPDHit
Definition: DrawHits.h:189
Double_t thit
Definition: DrawHits.h:134
TH2D * fhCHlamE
Definition: DrawHits.h:183
TH2D * fhXYPDMCPtKn
Definition: DrawHits.h:202
TH1D * fhCHreal
Definition: DrawHits.h:180
Double_t pzMo
Definition: DrawHits.h:140
TH1F * fhPhoTheta
Definition: DrawHits.h:177
TH1D * fhLambda
Definition: DrawHits.h:188
TH2D * fhXYPDHitpip
Definition: DrawHits.h:196
Double_t xbar
Definition: DrawHits.h:135
TH2D * fhXYPDHitKp
Definition: DrawHits.h:194
Float_t xhit
Definition: DrawHits.h:131
TList * fHistoList
Definition: DrawHits.h:94
TH1D * fhThetaC
Definition: DrawHits.h:169
TH2D * fhThetaCMass
Definition: DrawHits.h:170
TH2D * fhThetaCMomP
Definition: DrawHits.h:173
Float_t yhit
Definition: DrawHits.h:132
Double_t pxMo
Definition: DrawHits.h:138
Double_t zEnt
Definition: DrawHits.h:146
Double_t pzPho
Definition: DrawHits.h:143
Double_t yEnt
Definition: DrawHits.h:145
TH1D * fhPDTime
Definition: DrawHits.h:192
void DrawHits::DrawHisto ( )
private

Definition at line 465 of file DrawHits.cxx.

References cos(), Double_t, fhCHreal, fhCHrealMC, fhLambda, fhLambdaMC, fhMomAng, fhPDPlane, fhPDTime, fhPhoTheta, fhThetaCMass, fhThetaCMomE, fhThetaCMomK, fhThetaCMomM, fhThetaCMomP, fhXYPDHit, fhXYPDHitKn, fhXYPDHitKp, fhXYPDHitmn, fhXYPDHitmp, fhXYPDHitpin, fhXYPDHitpip, fhXYPDMCPt, fhXYPDMCPtKn, fhXYPDMCPtKp, fhXYPDMCPtmn, fhXYPDMCPtmp, fhXYPDMCPtpin, fhXYPDMCPtpip, i, leg, p1, p2, Pi, SetPlotStyle(), sin(), and theta.

Referenced by Finish().

466 {
467  Double_t deg=180.0/TMath::Pi();
468  TCanvas *C1= new TCanvas("C1","Cherenkov Angle vs. Mass ",500,500);
469  C1->Divide(1,1);
470  //Drawing Histo
471  C1->cd(1);
472  fhThetaCMass->SetMarkerColor(kBlue);
473  fhThetaCMass->SetMarkerStyle(20);
474  fhThetaCMass->SetMarkerSize(0.8);
475  fhThetaCMass->GetYaxis()->SetTitle("Mass (GeV/c^{2})");
476  fhThetaCMass->GetYaxis()->SetTitleOffset(1.0);
477  fhThetaCMass->GetXaxis()->SetTitle("#theta_{C} (rad)");
478  fhThetaCMass->SetTitle(0);
479  fhThetaCMass->SetStats(0);
480  fhThetaCMass->Draw();
481  C1->cd();
482  TCanvas *C1A= new TCanvas("C1A"," Mom vs. Cherenkov angle",500,500);
483  C1A->Divide(1,2);
484  C1A->cd(1);
485  fhThetaCMomK->SetMarkerColor(kBlue);
486  fhThetaCMomP->SetMarkerColor(kMagenta);
487  fhThetaCMomM->SetMarkerColor(kGreen);
488  fhThetaCMomE->SetMarkerColor(kBlack);
489  fhThetaCMomK->SetMarkerStyle(20);
490  fhThetaCMomK->SetMarkerSize(0.6);
491  fhThetaCMomP->SetMarkerStyle(20);
492  fhThetaCMomP->SetMarkerSize(0.6);
493  fhThetaCMomM->SetMarkerStyle(20);
494  fhThetaCMomM->SetMarkerSize(0.6);
495  fhThetaCMomE->SetMarkerStyle(20);
496  fhThetaCMomE->SetMarkerSize(0.6);
497  fhThetaCMomK->GetYaxis()->SetTitle("#theta_{C} (rad)");
498  fhThetaCMomK->GetYaxis()->SetTitleOffset(1.0);
499  fhThetaCMomK->GetXaxis()->SetTitle("p (GeV/c)");
500  fhThetaCMomK->SetTitle(0);
501  fhThetaCMomK->SetStats(0);
502  fhThetaCMomK->Draw();
503  fhThetaCMomM->Draw("same");
504  fhThetaCMomP->Draw("same");
505  fhThetaCMomE->Draw("same");
506  C1A->cd(2);
507  fhPhoTheta->Draw();
508 
509  TCanvas *C1B= new TCanvas("C1B"," Momentum vs. track angle",500,500);
510  C1B->Divide(1,1);
511  C1B->cd();
512  fhMomAng->SetMarkerColor(kBlue);
513  fhMomAng->SetMarkerStyle(20);
514  fhMomAng->SetMarkerSize(0.3);
515  fhMomAng->GetXaxis()->SetTitle("#theta (deg)");
516  fhMomAng->GetYaxis()->SetTitleOffset(1.0);
517  fhMomAng->GetYaxis()->SetTitle("p (GeV/c)");
518  fhMomAng->SetTitle(0);
519 // fhMomAng->SetStats(0);
520  fhMomAng->Draw();
521  C1B->cd();
522  TCanvas *C2= new TCanvas("C2","Photon Distribution" ,700,700);
523  C2->Divide(2,3);
524  C2->cd(1);
525  fhXYPDHit->SetMarkerColor(kBlue);
526  fhXYPDHit->SetMarkerStyle(20);
527  fhXYPDHit->SetMarkerSize(0.6);
528  fhXYPDHit->GetXaxis()->SetTitle("x_{Hit} (cm)");
529  fhXYPDHit->GetXaxis()->SetTitleOffset(1.0);
530  fhXYPDHit->GetYaxis()->SetTitle("y_{Hit} (cm)");
531  fhXYPDHit->SetTitle(0);
532  fhXYPDHit->Draw();
533  C2->cd(2);
534  fhXYPDMCPt->SetMarkerColor(kBlue);
535  fhXYPDMCPt->SetMarkerStyle(20);
536  fhXYPDMCPt->SetMarkerSize(0.6);
537  fhXYPDMCPt->GetXaxis()->SetTitle("x_{MC} (cm)");
538  fhXYPDMCPt->GetXaxis()->SetTitleOffset(1.0);
539  fhXYPDMCPt->GetYaxis()->SetTitle("y_{MC} (cm)");
540  fhXYPDMCPt->SetTitle(0);
541  fhXYPDMCPt->Draw();
542  C2->cd(3);
543  fhLambdaMC->SetLineColor(kBlue);
544  fhLambdaMC->SetMarkerStyle(20);
545  fhLambdaMC->SetMarkerSize(0.01);
546  fhLambdaMC->GetXaxis()->SetTitle("#lambda_{MC} (nm)");
547  fhLambdaMC->GetXaxis()->SetTitleOffset(1.0);
548  fhLambdaMC->GetYaxis()->SetTitle("Counts");
549  fhLambdaMC->SetTitle(0);
550 // fhLambdaMC->SetStats(0);
551  fhLambdaMC->Draw();
552  C2->cd(4);
553  fhLambda->SetLineColor(kRed);
554  fhLambda->SetMarkerStyle(20);
555  fhLambda->SetMarkerSize(0.01);
556  fhLambda->GetXaxis()->SetTitle("#lambda_{Hit} (nm)");
557  fhLambda->GetXaxis()->SetTitleOffset(1.0);
558  fhLambda->GetYaxis()->SetTitle("Counts");
559  fhLambda->SetTitle(0);
560 // fhLambda->SetStats(0);
561  fhLambda->Draw();
562  C2->cd(5);
563  fhCHrealMC->Draw();
564  fhCHrealMC->Fit("gaus");
565  C2->cd(6);
566  fhCHreal->Draw();
567  fhCHreal->Fit("gaus");
568  C2->cd();
569  TCanvas *C3= new TCanvas("C3","Time ",900,500);
570  C3->Divide();
571  //Drawing Histo
572  C3->cd();
573  fhPDTime->SetLineColor(kBlack);
574  fhPDTime->SetMarkerStyle(20);
575  fhPDTime->SetFillColor(2);
576  fhPDTime->GetXaxis()->SetTitle("Time (ns)");
577  fhPDTime->GetXaxis()->SetTitleOffset(1.0);
578  fhPDTime->GetYaxis()->SetTitle("Counts");
579  fhPDTime->SetTitle(0);
580  fhPDTime->Draw();
581  C3->cd();
582  TCanvas *C4= new TCanvas("C4"," ",500,500);
583  C4->Divide(1,1);
584  C4->cd(1);
585  fhXYPDHitKp->SetMarkerColor(kBlue);
586  fhXYPDHitKn->SetMarkerColor(kBlack);
587  fhXYPDHitmp->SetMarkerColor(kYellow);
588  fhXYPDHitmn->SetMarkerColor(kGreen);
589  fhXYPDHitpip->SetMarkerColor(kMagenta);
590  fhXYPDHitpin->SetMarkerColor(kRed);
591  fhXYPDHitKp->SetMarkerStyle(20);
592  fhXYPDHitKp->SetMarkerSize(0.6);
593  fhXYPDHitKn->SetMarkerStyle(20);
594  fhXYPDHitKn->SetMarkerSize(0.6);
595  fhXYPDHitpip->SetMarkerStyle(20);
596  fhXYPDHitpin->SetMarkerSize(0.6);
597  fhXYPDHitmp->SetMarkerStyle(20);
598  fhXYPDHitmn->SetMarkerSize(0.6);
599  fhXYPDHitKp->GetXaxis()->SetTitle("x_{Hit} (cm)");
600  fhXYPDHitKp->GetXaxis()->SetTitleOffset(1.0);
601  fhXYPDHitKp->GetYaxis()->SetTitle("y_{Hit} (cm)");
602  fhXYPDHitKp->SetTitle(0);
603  fhXYPDHitKp->Draw();
604  fhXYPDHitKn->Draw("same");
605  fhXYPDHitpip->Draw("same");
606  fhXYPDHitpip->Draw("same");
607  fhXYPDHitmp->Draw("same");
608  fhXYPDHitmn->Draw("same");
609  Double_t theta=11.25/deg;
610  Double_t rad_out=104.0; // PD outer radius
611  Double_t rad_in=50.53; // PD outer radius
612  Double_t rp_out=rad_out/cos(theta);
613  Double_t rp_in=rad_in/cos(theta);
614  Double_t xout[17], yout[17], xin[17], yin[17];
615  for(Int_t i=0; i<16; i++){
616  xout[i]=rp_out*cos(2.0*i*theta);
617  yout[i]=rp_out*sin(2.0*i*theta);
618  xin[i]=rp_in*cos(2.0*i*theta);
619  yin[i]=rp_in*sin(2.0*i*theta);
620  TLine *l1 =new TLine(xout[i],yout[i],xin[i],yin[i]);
621  l1->Draw("same");
622  }
623  xout[16]=xout[0];
624  yout[16]=yout[0];
625  xin[16]=xin[0];
626  yin[16]=yin[0];
627  TPolyLine *p1 =new TPolyLine(17,xout,yout);
628  p1->SetFillColor(kYellow);
629  p1->Draw("same");
630  TPolyLine *p2 =new TPolyLine(17,xin,yin);
631  p2->SetFillColor(0);
632  p2->Draw("same");
633  C4->cd();
634  TCanvas *C5= new TCanvas("C5"," ",500,500);
635  C5->Divide(1,1);
636  C5->cd(1);
637  fhXYPDMCPtKp->SetMarkerColor(kBlue);
638  fhXYPDMCPtKn->SetMarkerColor(kBlack);
639  fhXYPDMCPtmp->SetMarkerColor(kYellow);
640  fhXYPDMCPtmn->SetMarkerColor(kGreen);
641  fhXYPDMCPtpip->SetMarkerColor(kMagenta);
642  fhXYPDMCPtpin->SetMarkerColor(kRed);
643  fhXYPDMCPtKp->SetMarkerStyle(20);
644  fhXYPDMCPtKp->SetMarkerSize(0.6);
645  fhXYPDMCPtKn->SetMarkerStyle(20);
646  fhXYPDMCPtKn->SetMarkerSize(0.6);
647  fhXYPDMCPtpip->SetMarkerStyle(20);
648  fhXYPDMCPtpip->SetMarkerSize(0.6);
649  fhXYPDMCPtpin->SetMarkerSize(0.6);
650  fhXYPDMCPtpin->SetMarkerSize(0.6);
651  fhXYPDMCPtmp->SetMarkerStyle(20);
652  fhXYPDMCPtmp->SetMarkerSize(0.6);
653  fhXYPDMCPtmn->SetMarkerSize(0.6);
654  fhXYPDMCPtmn->SetMarkerSize(0.6);
655  fhXYPDMCPtKp->GetXaxis()->SetTitle("x_{MC} (cm)");
656  fhXYPDMCPtKp->GetXaxis()->SetTitleOffset(1.0);
657  fhXYPDMCPtKp->GetYaxis()->SetTitle("y_{MC} (cm)");
658  fhXYPDMCPtKp->SetTitle(0);
659  fhXYPDMCPtKp->Draw();
660  fhXYPDMCPtKn->Draw("same");
661  fhXYPDMCPtpip->Draw("same");
662  fhXYPDMCPtpip->Draw("same");
663  fhXYPDMCPtmp->Draw("same");
664  fhXYPDMCPtmn->Draw("same");
665  for(Int_t i=0; i<16; i++){
666  TLine *l2 =new TLine(xout[i],yout[i],xin[i],yin[i]);
667  l2->Draw("same");
668  }
669  p1->Draw("same");
670  p2->Draw("same");
671 
672  SetPlotStyle();
673  //TCanvas *C7= //[R.K.03/2017] unused variable
674  new TCanvas("C7","Full sim study",500,500);
675  fhPDPlane->SetMarkerStyle(20);
676  fhPDPlane->SetMarkerSize(0.3);
677  fhPDPlane->SetMarkerColor(8);
678  fhPDPlane->Draw();
679  //fhPDPlane->Draw("COL2Z");
680  for(Int_t i=0; i<16; i++){
681  TLine *l2 =new TLine(xout[i],yout[i],xin[i],yin[i]);
682  l2->Draw("same");
683  }
684  p1->Draw("same");
685  p2->Draw("same");
686  TLegend* leg = new TLegend(0.5,0.5,0.75,0.6);
687  leg->AddEntry(fhPDPlane,"other photons","p");
688  leg->SetTextSize(0.03);
689  leg->Draw("same");
690 
691 }
TH2D * fhMomAng
Definition: DrawHits.h:171
TH2D * fhXYPDMCPtKp
Definition: DrawHits.h:201
void SetPlotStyle()
Definition: DrawHits.h:107
TH2D * fhXYPDMCPt
Definition: DrawHits.h:191
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
TH2D * fhXYPDMCPtmn
Definition: DrawHits.h:206
TH2D * fhThetaCMomE
Definition: DrawHits.h:175
Int_t i
Definition: run_full.C:25
TH1D * fhLambdaMC
Definition: DrawHits.h:190
TH2D * fhThetaCMomM
Definition: DrawHits.h:174
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
TH2D * fhXYPDHitKn
Definition: DrawHits.h:195
TH1D * fhCHrealMC
Definition: DrawHits.h:179
TH2F * fhPDPlane
Definition: DrawHits.h:178
TH2D * fhXYPDHitmn
Definition: DrawHits.h:199
TH2D * fhXYPDHitmp
Definition: DrawHits.h:198
TH2D * fhXYPDHitpin
Definition: DrawHits.h:197
TH2D * fhXYPDMCPtpip
Definition: DrawHits.h:203
TH2D * fhXYPDMCPtmp
Definition: DrawHits.h:205
TH2D * fhXYPDMCPtpin
Definition: DrawHits.h:204
TH2D * fhThetaCMomK
Definition: DrawHits.h:172
TH2D * fhXYPDHit
Definition: DrawHits.h:189
Double_t
TH2D * fhXYPDMCPtKn
Definition: DrawHits.h:202
TH1D * fhCHreal
Definition: DrawHits.h:180
TPad * p2
Definition: hist-t7.C:117
TH1F * fhPhoTheta
Definition: DrawHits.h:177
TH1D * fhLambda
Definition: DrawHits.h:188
TH2D * fhXYPDHitpip
Definition: DrawHits.h:196
TPad * p1
Definition: hist-t7.C:116
TH2D * fhXYPDHitKp
Definition: DrawHits.h:194
TH2D * fhThetaCMass
Definition: DrawHits.h:170
TH2D * fhThetaCMomP
Definition: DrawHits.h:173
Double_t Pi
TH1D * fhPDTime
Definition: DrawHits.h:192
void DrawHits::Exec ( Option_t *  option)
virtual

Executed task

Definition at line 124 of file DrawHits.cxx.

References fDetectorID, nevents, ProcessBarHit(), ProcessPhotonHit(), and ProcessPhotonMC().

125 {
126 
127  nevents++;
128  fDetectorID = 0;
129 
130 
131  // fNHits = 0;
132  ProcessBarHit();
134  ProcessPhotonMC();
135 }
Int_t fDetectorID
Definition: DrawHits.h:84
void ProcessBarHit()
Definition: DrawHits.cxx:137
Int_t nevents
Definition: DrawHits.h:122
void ProcessPhotonMC()
Definition: DrawHits.cxx:203
void ProcessPhotonHit()
Definition: DrawHits.cxx:257
void DrawHits::Finish ( )
virtual

Finish task

Definition at line 457 of file DrawHits.cxx.

References DrawHisto(), and WriteToFile().

458 {
459  cout << "-I- DrawHits: Finish" << endl;
460 
461  WriteToFile();
462  DrawHisto();
463 }
void WriteToFile()
Definition: DrawHits.cxx:450
void DrawHisto()
Definition: DrawHits.cxx:465
InitStatus DrawHits::Init ( )
virtual

Definition at line 70 of file DrawHits.cxx.

References CreateHisto(), fBarPointArray, fHitArray, fMCArray, fPDHitArray, fPDPointArray, and nevents.

71 {
72  cout << " ---------- INITIALIZATION ------------" << endl;
73  nevents = 0;
74  // Get RootManager
75  FairRootManager* ioman = FairRootManager::Instance();
76  if ( ! ioman ) {
77  cout << "-E- DrawHits::Init: "
78  << "RootManager not instantiated!" << endl;
79  return kFATAL;
80  }
81 
82  // Get input array
83  fMCArray = (TClonesArray*) ioman->GetObject("MCTrack");
84  if ( ! fMCArray ) {
85  cout << "-W- DrawHits::Init: "
86  << "No MCTrack array!" << endl;
87  return kERROR;
88  }
89  // Get input array
90  fBarPointArray = (TClonesArray*) ioman->GetObject("DrcBarPoint");
91  if ( ! fBarPointArray ) {
92  cout << "-W- DrawHits::Init: "
93  << "No DrcBarPoint array!" << endl;
94  return kERROR;
95  }
96  // Get Photon point array
97  fPDPointArray = (TClonesArray*) ioman->GetObject("DrcPDPoint");
98  if ( ! fPDPointArray ) {
99  cout << "-W- DrawHits::Init: "
100  << "No DrcPDPoint array!" << endl;
101  return kERROR;
102  }
103  // Get input array
104  fHitArray = (TClonesArray*) ioman->GetObject("DrcHit");
105  if ( ! fHitArray ) {
106  cout << "-W- DrawHits::Init: "
107  << "No DrcHit array!" << endl;
108  return kERROR;
109  }
110  // Get input array
111  fPDHitArray = (TClonesArray*) ioman->GetObject("DrcPDHit");
112  if ( ! fPDHitArray ) {
113  cout << "-W- DrawHits::Init: "
114  << "No DrcPDHit array!" << endl;
115  return kERROR;
116  }
117 
118  cout << "-I- DrawHits: Intialization successfull" << endl;
119  CreateHisto();
120  return kSUCCESS;
121 
122 }
TClonesArray * fBarPointArray
Definition: DrawHits.h:89
TClonesArray * fMCArray
Definition: DrawHits.h:93
TClonesArray * fHitArray
Definition: DrawHits.h:91
Int_t nevents
Definition: DrawHits.h:122
TClonesArray * fPDHitArray
Definition: DrawHits.h:92
void CreateHisto()
Definition: DrawHits.cxx:358
TClonesArray * fPDPointArray
Definition: DrawHits.h:90
Bool_t DrawHits::InsideBar ( Double_t  ,
Double_t  ,
Double_t  ,
Double_t  ,
Double_t  ,
Double_t  ,
Double_t  ,
Double_t  ,
Double_t  ,
Double_t   
)
private
void DrawHits::ProcessBarHit ( )
private

Definition at line 137 of file DrawHits.cxx.

References Double_t, fBarPointArray, fErrThetaC, fHitArray, fhMomAng, fhThetaC, fhThetaCMass, fhThetaCMomE, fhThetaCMomK, fhThetaCMomM, fhThetaCMomP, fMCArray, fThetaC, fVerbose, PndDrcBarPoint::GetMass(), PndMCTrack::GetMotherID(), PndMCTrack::GetPdgCode(), PndDrcHit::GetRefIndex(), PndDrcBarPoint::GetThetaC(), hit(), nevents, Pi, printf(), pt(), sqrt(), tr, xbar, xEnt, ybar, yEnt, zbar, and zEnt.

Referenced by Exec().

138 {
139  PndDrcBarPoint* pt=NULL;
140  PndDrcHit* hit=NULL;
141  PndMCTrack* tr = NULL;
142  Double_t deg=180.0/TMath::Pi();
143 
144  // Loop over PndDrcHit
145  for(Int_t j=0; j<fHitArray->GetEntriesFast(); j++) {
146  //for(Int_t j=0; j<fBarPointArray->GetEntriesFast(); j++) {
147  if (fVerbose > 1) printf("\n\n=====> Event No. %d\n", nevents);
148 
149  hit = (PndDrcHit*)fHitArray->At(j);
150 
151  Double_t xH = hit->GetX();
152  Double_t yH = hit->GetY();
153  Double_t zH = hit->GetZ();
154 
155  Int_t mcRef= hit->GetRefIndex();
156  pt= (PndDrcBarPoint*)fBarPointArray->At(mcRef);
157  // pt= (PndDrcBarPoint*)fBarPointArray->At(j);
158  Int_t chtrID= pt->GetTrackID();
159  tr = (PndMCTrack*)fMCArray->At(chtrID);
160  Int_t chtrPdg= tr->GetPdgCode();
161  Int_t chtrMid=tr->GetMotherID();
162 
163  Double_t trPx = pt->GetPx();
164  Double_t trPy = pt->GetPy();
165  Double_t trPz = pt->GetPz();
166  Double_t trP = sqrt(trPx*trPx + trPy*trPy +trPz*trPz);
167  Double_t mass = pt->GetMass();
168  //Double_t energy = sqrt(trP*trP + mass*mass); //[R.K. 01/2017] unused variable?
169 
170  // for my tree phoTree:
171  xEnt = pt->GetX();
172  yEnt = pt->GetY();
173  zEnt = pt->GetZ();
174 
175  xbar = xH;
176  ybar = yH;
177  zbar = zH;
178 
179  //phoTree->Fill();
180  TVector3 barmom;
181  pt->Momentum(barmom);
182  Double_t angIn= barmom.Theta();
183  Double_t angDeg=angIn*deg;
184 
185  fThetaC = gRandom->Gaus(pt->GetThetaC(),0.008);
186  fErrThetaC = 0.; //rad
187 
188  if(abs(chtrPdg) == 321)fhThetaCMomK->Fill(trP,fThetaC);
189  if(abs(chtrPdg) == 211)fhThetaCMomP->Fill(trP,fThetaC);
190  if(abs(chtrPdg) == 13)fhThetaCMomM->Fill(trP,fThetaC);
191  if(abs(chtrPdg) == 11)fhThetaCMomE->Fill(trP,fThetaC);
192  if(chtrMid == -1){
193  fhMomAng->Fill(angDeg,trP);
194  cout<<"ang = "<<angDeg<<", mom = "<<trP<<endl;
195 
196  }//prim particle
197  fhThetaC->Fill(fThetaC);
198  fhThetaCMass->Fill(fThetaC,mass);
199 
200  }
201 }
TH2D * fhMomAng
Definition: DrawHits.h:171
Double_t GetMass() const
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
TClonesArray * fBarPointArray
Definition: DrawHits.h:89
TH2D * fhThetaCMomE
Definition: DrawHits.h:175
TClonesArray * fMCArray
Definition: DrawHits.h:93
TClonesArray * fHitArray
Definition: DrawHits.h:91
TH2D * fhThetaCMomM
Definition: DrawHits.h:174
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Int_t GetPdgCode() const
Definition: PndMCTrack.h:73
Double_t fThetaC
Definition: DrawHits.h:86
Double_t fErrThetaC
Definition: DrawHits.h:86
Double_t xEnt
Definition: DrawHits.h:144
Int_t nevents
Definition: DrawHits.h:122
Double_t GetThetaC() const
TString pt(TString pts, TString exts="px py pz")
Definition: invexp.C:133
Double_t zbar
Definition: DrawHits.h:137
Double_t ybar
Definition: DrawHits.h:136
TH2D * fhThetaCMomK
Definition: DrawHits.h:172
Double_t
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
Definition: hit.C:1
Int_t fVerbose
Definition: DrawHits.h:104
virtual Int_t GetRefIndex()
Definition: PndDrcHit.h:44
Double_t xbar
Definition: DrawHits.h:135
TH1D * fhThetaC
Definition: DrawHits.h:169
TH2D * fhThetaCMass
Definition: DrawHits.h:170
TH2D * fhThetaCMomP
Definition: DrawHits.h:173
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
Double_t Pi
Double_t zEnt
Definition: DrawHits.h:146
Double_t yEnt
Definition: DrawHits.h:145
void DrawHits::ProcessPhotonHit ( )
private

Definition at line 257 of file DrawHits.cxx.

References Double_t, fhCHlam, fhCHreal, fhLambda, fhPDTime, fhPhoTheta, fhXYPDHit, fhXYPDHitKn, fhXYPDHitKp, fhXYPDHitmn, fhXYPDHitmp, fhXYPDHitpin, fhXYPDHitpip, fMCArray, fPDHitArray, fPDPointArray, fPMo, fPx, fPy, fPz, fStartVertex, fVerbose, fXcross, fYcross, PndMCTrack::GetMomentum(), PndMCTrack::GetMotherID(), PndMCTrack::GetPdgCode(), PndDrcPDHit::GetRefIndex(), PndMCTrack::GetStartVertex(), PndDrcPDHit::GetTime(), nevents, Pi, pxMo, pxPho, pyMo, pyPho, pzMo, pzPho, sqrt(), thit, tr, xhit, yhit, and zhit.

Referenced by Exec().

258 {
259  PndDrcPDPoint* Ppt=NULL;
260  PndDrcPDHit* pdhit=NULL;
261  PndMCTrack* tr = NULL;
262  PndMCTrack* trMr;
263  if (fVerbose > 0) {
264  cout <<" Number of Detected Photon Hits : "<<fPDHitArray->GetEntries()<<endl;
265  }
266 
267 // Loop over PndDrcPDHits
268  for(Int_t k=0; k<fPDHitArray->GetEntriesFast(); k++) {
269 
270  pdhit = (PndDrcPDHit*)fPDHitArray->At(k);
271 
272  Int_t mcPDRef= pdhit->GetRefIndex();
273  Ppt = (PndDrcPDPoint*)fPDPointArray->At(mcPDRef);
274 
275  Int_t trID= Ppt->GetTrackID();
276  tr = (PndMCTrack*)fMCArray->At(trID);
277 
278  Int_t trMID=tr->GetMotherID();
279 
280  trMr = (PndMCTrack*)fMCArray->At(trMID);
281  Int_t trMpdg=trMr->GetPdgCode();
282 
283  if(trMr->GetMotherID()==-1){
284 
285 
286  Double_t xPHit= pdhit->GetX();
287  Double_t yPHit= pdhit->GetY();
288  Double_t zPHit= pdhit->GetZ();
289  Double_t time = pdhit->GetTime();
290 
291  // for my tree:
292  xhit = xPHit;
293  yhit = yPHit;
294  zhit = zPHit;
295  thit = time;
296 
297  pxMo = trMr->GetMomentum().X();
298  pyMo = trMr->GetMomentum().Y();
299  pzMo = trMr->GetMomentum().Z();
300  fPMo.SetXYZ(pxMo, pyMo, pzMo);
301 
302  fhPhoTheta->Fill(fPMo.Theta()/3.1415*180.);
303 
304  pxPho = tr->GetMomentum().X(); // initial momentum of a photon
305  pyPho = tr->GetMomentum().Y();
306  pzPho = tr->GetMomentum().Z();
307 
309 
310  // momentum of a photon on the PD Plane
311  fPx= Ppt->GetPx();
312  fPy= Ppt->GetPy();
313  fPz= Ppt->GetPz();
314 
315  // extrapolation of momentum on the PD Plane to the bar:
316  fXcross = xPHit - fPx/fPz*(120. + zPHit);
317  fYcross = yPHit - fPy/fPz*(120. + zPHit);
318 
319  //phoTree->Fill();
320  // ------------
321 
322  //Double_t xP= Ppt->GetX(); //[R.K. 01/2017] unused variable?
323  //Double_t yP= Ppt->GetY(); //[R.K. 01/2017] unused variable?
324  //Double_t zP= Ppt->GetZ(); //[R.K. 01/2017] unused variable?
325 
326  Double_t PPx= Ppt->GetPx();
327  Double_t PPy= Ppt->GetPy();
328  Double_t PPz= Ppt->GetPz();
329  Double_t etot = sqrt(PPx*PPx + PPy*PPy +PPz*PPz);
330  //Double_t nRefrac=1.467; //[R.K. 01/2017] unused variable?
331  //Double_t lambdah=197.0*2.0*TMath::Pi()/nRefrac/(etot*1.0E9);//wavelength of photon in nm
332  Double_t lambdah=197.0*2.0*TMath::Pi()/(etot*1.0E9);
333 
334  fhPDTime->Fill(time);
335  //if(lambdah > 350. && lambdah < 600.){
336  fhLambda->Fill(lambdah);
337  TVector3 photon1;
338  TVector3 mother1;
339  photon1.SetXYZ(tr->GetMomentum().X(), tr->GetMomentum().Y(), tr->GetMomentum().Z());
340  mother1.SetXYZ(trMr->GetMomentum().X(), trMr->GetMomentum().Y(), trMr->GetMomentum().Z());
341  fhCHreal->Fill(photon1.Angle(mother1));
342  fhCHlam->Fill(lambdah, photon1.Angle(mother1));
343  //}
344 
345  fhXYPDHit->Fill(xPHit,yPHit);
346 
347  if( nevents == 1 && trMpdg ==321)fhXYPDHitKp->Fill(xPHit,yPHit);
348  if( nevents == 1 && trMpdg ==-321)fhXYPDHitKn->Fill(xPHit,yPHit);
349  if( nevents == 1 && trMpdg ==211)fhXYPDHitpip->Fill(xPHit,yPHit);
350  if( nevents == 1 && trMpdg ==-211)fhXYPDHitpin->Fill(xPHit,yPHit);
351  if( nevents == 1 && trMpdg ==13)fhXYPDHitmp->Fill(xPHit,yPHit);
352  if( nevents == 1 && trMpdg ==-13)fhXYPDHitmn->Fill(xPHit,yPHit);
353  }// photon from primary particle
354  }// photon hits
355 }
TH2D * fhCHlam
Definition: DrawHits.h:181
Double_t pxPho
Definition: DrawHits.h:141
Double_t zhit
Definition: DrawHits.h:133
TClonesArray * fMCArray
Definition: DrawHits.h:93
TVector3 fPMo
Definition: DrawHits.h:167
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Int_t GetPdgCode() const
Definition: PndMCTrack.h:73
TH2D * fhXYPDHitKn
Definition: DrawHits.h:195
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
TH2D * fhXYPDHitmn
Definition: DrawHits.h:199
TH2D * fhXYPDHitmp
Definition: DrawHits.h:198
TH2D * fhXYPDHitpin
Definition: DrawHits.h:197
Int_t nevents
Definition: DrawHits.h:122
Double_t pyMo
Definition: DrawHits.h:139
TClonesArray * fPDHitArray
Definition: DrawHits.h:92
virtual Double_t GetTime()
Definition: PndDrcPDHit.h:55
Double_t fPx
Definition: DrawHits.h:151
virtual Int_t GetRefIndex()
Definition: PndDrcPDHit.h:57
Double_t pyPho
Definition: DrawHits.h:142
TH2D * fhXYPDHit
Definition: DrawHits.h:189
Double_t
Double_t thit
Definition: DrawHits.h:134
TH1D * fhCHreal
Definition: DrawHits.h:180
Double_t pzMo
Definition: DrawHits.h:140
Double_t fPy
Definition: DrawHits.h:152
Double_t fYcross
Definition: DrawHits.h:155
TH1F * fhPhoTheta
Definition: DrawHits.h:177
TH1D * fhLambda
Definition: DrawHits.h:188
Int_t fVerbose
Definition: DrawHits.h:104
TH2D * fhXYPDHitpip
Definition: DrawHits.h:196
Double_t fXcross
Definition: DrawHits.h:154
TClonesArray * fPDPointArray
Definition: DrawHits.h:90
TH2D * fhXYPDHitKp
Definition: DrawHits.h:194
Float_t xhit
Definition: DrawHits.h:131
TVector3 fStartVertex
Definition: DrawHits.h:150
TVector3 GetStartVertex() const
Definition: PndMCTrack.h:76
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
Float_t yhit
Definition: DrawHits.h:132
Double_t Pi
Double_t pxMo
Definition: DrawHits.h:138
Double_t pzPho
Definition: DrawHits.h:143
Double_t fPz
Definition: DrawHits.h:153
TH1D * fhPDTime
Definition: DrawHits.h:192
void DrawHits::ProcessPhotonMC ( )
private

Definition at line 203 of file DrawHits.cxx.

References Double_t, fhCHlamMC, fhCHrealMC, fhLambdaMC, fhXYPDMCPt, fhXYPDMCPtKn, fhXYPDMCPtKp, fhXYPDMCPtmn, fhXYPDMCPtmp, fhXYPDMCPtpin, fhXYPDMCPtpip, fMCArray, fPDPointArray, PndMCTrack::GetMomentum(), PndMCTrack::GetMotherID(), PndMCTrack::GetPdgCode(), lambda(), nevents, Pi, and sqrt().

Referenced by Exec().

204 {
205  //Double_t deg=180.0/TMath::Pi(); //[R.K. 01/2017] unused variable?
206 
207 
208  PndMCTrack* ptr = NULL;
209  PndMCTrack* trMr=NULL;
210  for(Int_t l=0; l<fPDPointArray->GetEntriesFast(); l++) {
211  PndDrcPDPoint *Ppt = (PndDrcPDPoint*)fPDPointArray->At(l);
212  Int_t trID= Ppt->GetTrackID();
213  ptr = (PndMCTrack*)fMCArray->At(trID);
214 
215  Int_t trMID=ptr->GetMotherID();
216  trMr = (PndMCTrack*)fMCArray->At(trMID);
217  Int_t trMpdg=trMr->GetPdgCode();
218 
219  if(trMr->GetMotherID()==-1){
220 
221  Double_t xP= Ppt->GetX();
222  Double_t yP= Ppt->GetY();
223  //Double_t zP= Ppt->GetZ(); //[R.K. 01/2017] unused variable?
224 
225  fhXYPDMCPt->Fill(xP,yP);
226  if( nevents==1 && trMpdg ==321)fhXYPDMCPtKp->Fill(xP,yP);
227  if( nevents==1 && trMpdg ==-321)fhXYPDMCPtKn->Fill(xP,yP);
228  if( nevents==1 && trMpdg ==211)fhXYPDMCPtpip->Fill(xP,yP);
229  if( nevents==1 && trMpdg ==-211)fhXYPDMCPtpin->Fill(xP,yP);
230  if( nevents==1 && trMpdg ==13)fhXYPDMCPtmp->Fill(xP,yP);
231  if( nevents ==1 && trMpdg ==-13)fhXYPDMCPtmn->Fill(xP,yP);
232 
233  // Momentum of photon at PD point
234  Double_t Pfx= Ppt->GetPx();
235  Double_t Pfy= Ppt->GetPy();
236  Double_t Pfz= Ppt->GetPz();
237  //Double_t Pf = sqrt(Pfx*Pfx + Pfy*Pfy +Pfz*Pfz); //[R.K. 01/2017] unused variable?
238  Double_t etot = sqrt(Pfx*Pfx + Pfy*Pfy +Pfz*Pfz);
239  //Double_t nRefrac=1.467; //[R.K. 01/2017] unused variable?
240  //Double_t lambda=197.0*2.0*TMath::Pi()/nRefrac/(etot*1.0E9);//wavelength of photon in nm
241  Double_t lambda=197.0*2.0*TMath::Pi()/(etot*1.0E9);
242 
243  //if(lambda > 350. && lambda < 600.){
244  fhLambdaMC->Fill(lambda);
245  TVector3 photon;
246  TVector3 mother;
247  photon.SetXYZ(ptr->GetMomentum().X(), ptr->GetMomentum().Y(), ptr->GetMomentum().Z());
248  mother.SetXYZ(trMr->GetMomentum().X(), trMr->GetMomentum().Y(), trMr->GetMomentum().Z());
249  fhCHrealMC->Fill(photon.Angle(mother));
250  fhCHlamMC->Fill(lambda,mother.Angle(photon));
251  //}
252  }// Prim particle
253  }//Photon points
254 
255 }
TH2D * fhXYPDMCPtKp
Definition: DrawHits.h:201
TH2D * fhXYPDMCPt
Definition: DrawHits.h:191
TH2D * fhXYPDMCPtmn
Definition: DrawHits.h:206
TClonesArray * fMCArray
Definition: DrawHits.h:93
TH1D * fhLambdaMC
Definition: DrawHits.h:190
Double_t lambda(Double_t x, Double_t y, Double_t z)
Definition: drawdal.C:48
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Int_t GetPdgCode() const
Definition: PndMCTrack.h:73
TVector3 GetMomentum() const
Definition: PndMCTrack.h:78
TH1D * fhCHrealMC
Definition: DrawHits.h:179
TH2D * fhCHlamMC
Definition: DrawHits.h:182
Int_t nevents
Definition: DrawHits.h:122
TH2D * fhXYPDMCPtpip
Definition: DrawHits.h:203
TH2D * fhXYPDMCPtmp
Definition: DrawHits.h:205
TH2D * fhXYPDMCPtpin
Definition: DrawHits.h:204
Double_t
TH2D * fhXYPDMCPtKn
Definition: DrawHits.h:202
TClonesArray * fPDPointArray
Definition: DrawHits.h:90
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
Double_t Pi
void DrawHits::RotBarCoordinate ( TVector3 &  vector,
Int_t  barID 
)

Rotation in Bar Co-ordinate System

void DrawHits::SetDefaultParameters ( )
private

Set the parameters to the default values.

void DrawHits::SetPlotStyle ( )
inlineprivate

Definition at line 107 of file DrawHits.h.

References Double_t.

Referenced by DrawHisto().

108  {
109  const Int_t NRGBs = 5;
110  const Int_t NCont = 255;
111 
112  Double_t stops[NRGBs] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
113  Double_t red[NRGBs] = { 0.00, 0.00, 0.87, 1.00, 0.51 };
114  Double_t green[NRGBs] = { 0.00, 0.81, 1.00, 0.20, 0.00 };
115  Double_t blue[NRGBs] = { 0.51, 1.00, 0.12, 0.00, 0.00 };
116  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
117  gStyle->SetNumberContours(NCont);
118  }
Double_t
void DrawHits::SetTreeName ( TString  str)
inline

Definition at line 71 of file DrawHits.h.

References fTreeName.

71 {fTreeName = str;}
TString fTreeName
Definition: DrawHits.h:161
void DrawHits::WriteToFile ( )
private

Definition at line 450 of file DrawHits.cxx.

References fHistoList, next, and phoTree.

Referenced by Finish().

451 {
452  phoTree->Write();
453  TIter next(fHistoList);
454  while ( TH1* histo = ((TH1*)next()) ) histo->Write();
455 }
TTree * phoTree
Definition: DrawHits.h:162
TList * fHistoList
Definition: DrawHits.h:94
static int next[96]
Definition: ranlxd.cxx:374

Member Data Documentation

TH1F* DrawHits::currh
private

Definition at line 164 of file DrawHits.h.

TClonesArray* DrawHits::fBarPointArray
private

Definition at line 89 of file DrawHits.h.

Referenced by Init(), and ProcessBarHit().

Int_t DrawHits::fDetectorID
private

Definition at line 84 of file DrawHits.h.

Referenced by Exec().

Double_t DrawHits::fErrThetaC
private

Definition at line 86 of file DrawHits.h.

Referenced by ProcessBarHit().

PndGeoDrc* DrawHits::fGeo
private

Basic geometry data of barrel DRC.

Definition at line 98 of file DrawHits.h.

Referenced by DrawHits(), and ~DrawHits().

TH2D* DrawHits::fhCHlam
private

Definition at line 181 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhCHlamE
private

Definition at line 183 of file DrawHits.h.

Referenced by CreateHisto().

TH2D* DrawHits::fhCHlamMC
private

Definition at line 182 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonMC().

TH1D* DrawHits::fhCHreal
private

Definition at line 180 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH1D* DrawHits::fhCHrealMC
private

Definition at line 179 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2F* DrawHits::fhHitsD
private

Definition at line 186 of file DrawHits.h.

TList* DrawHits::fHistoList
private

Definition at line 94 of file DrawHits.h.

Referenced by CreateHisto(), WriteToFile(), and ~DrawHits().

TClonesArray* DrawHits::fHitArray
private

Definition at line 91 of file DrawHits.h.

Referenced by Init(), and ProcessBarHit().

TH1D* DrawHits::fhLambda
private

Definition at line 188 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH1D* DrawHits::fhLambdaMC
private

Definition at line 190 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2D* DrawHits::fhMomAng
private

Definition at line 171 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessBarHit().

TH2F* DrawHits::fhPDPlane
private

Definition at line 178 of file DrawHits.h.

Referenced by CreateHisto(), and DrawHisto().

TH1D* DrawHits::fhPDTime
private

Definition at line 192 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH1F* DrawHits::fhPhoTheta
private

Definition at line 177 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH1D* DrawHits::fhThetaC
private

Definition at line 169 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessBarHit().

TH2D* DrawHits::fhThetaCMass
private

Definition at line 170 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessBarHit().

TH2D* DrawHits::fhThetaCMomE
private

Definition at line 175 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessBarHit().

TH2D* DrawHits::fhThetaCMomK
private

Definition at line 172 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessBarHit().

TH2D* DrawHits::fhThetaCMomM
private

Definition at line 174 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessBarHit().

TH2D* DrawHits::fhThetaCMomP
private

Definition at line 173 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessBarHit().

TH2D* DrawHits::fhXYPDHit
private

Definition at line 189 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhXYPDHitKn
private

Definition at line 195 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhXYPDHitKp
private

Definition at line 194 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhXYPDHitmn
private

Definition at line 199 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhXYPDHitmp
private

Definition at line 198 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhXYPDHitpin
private

Definition at line 197 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhXYPDHitpip
private

Definition at line 196 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonHit().

TH2D* DrawHits::fhXYPDMCPt
private

Definition at line 191 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2D* DrawHits::fhXYPDMCPtKn
private

Definition at line 202 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2D* DrawHits::fhXYPDMCPtKp
private

Definition at line 201 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2D* DrawHits::fhXYPDMCPtmn
private

Definition at line 206 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2D* DrawHits::fhXYPDMCPtmp
private

Definition at line 205 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2D* DrawHits::fhXYPDMCPtpin
private

Definition at line 204 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

TH2D* DrawHits::fhXYPDMCPtpip
private

Definition at line 203 of file DrawHits.h.

Referenced by CreateHisto(), DrawHisto(), and ProcessPhotonMC().

Double_t DrawHits::fkxBar
private

Definition at line 157 of file DrawHits.h.

Double_t DrawHits::fkyBar
private

Definition at line 158 of file DrawHits.h.

Double_t DrawHits::fkzBar
private

Definition at line 159 of file DrawHits.h.

Double_t DrawHits::fMass
private

Definition at line 85 of file DrawHits.h.

TClonesArray* DrawHits::fMCArray
private

Definition at line 93 of file DrawHits.h.

Referenced by Init(), ProcessBarHit(), ProcessPhotonHit(), and ProcessPhotonMC().

PndGeoDrcPar* DrawHits::fPar
private

Definition at line 96 of file DrawHits.h.

TClonesArray* DrawHits::fPDHitArray
private

Definition at line 92 of file DrawHits.h.

Referenced by Init(), and ProcessPhotonHit().

TClonesArray* DrawHits::fPDPointArray
private

Definition at line 90 of file DrawHits.h.

Referenced by Init(), ProcessPhotonHit(), and ProcessPhotonMC().

Double_t DrawHits::fPhiRot
private

Definition at line 149 of file DrawHits.h.

TVector3 DrawHits::fPMo
private

Definition at line 167 of file DrawHits.h.

Referenced by ProcessPhotonHit().

TVector3 DrawHits::fPphoB
private

Definition at line 156 of file DrawHits.h.

Double_t DrawHits::fPx
private

Definition at line 151 of file DrawHits.h.

Referenced by ProcessPhotonHit().

Double_t DrawHits::fPy
private

Definition at line 152 of file DrawHits.h.

Referenced by ProcessPhotonHit().

Double_t DrawHits::fPz
private

Definition at line 153 of file DrawHits.h.

Referenced by ProcessPhotonHit().

Int_t DrawHits::fRefIndex
private

Definition at line 87 of file DrawHits.h.

TVector3 DrawHits::fStartVertex
private

Definition at line 150 of file DrawHits.h.

Referenced by ProcessPhotonHit().

Double_t DrawHits::fThetaC
private

Definition at line 86 of file DrawHits.h.

Referenced by ProcessBarHit().

TString DrawHits::fTreeName
private

Definition at line 161 of file DrawHits.h.

Referenced by CreateHisto(), and SetTreeName().

Int_t DrawHits::fVerbose
private

Verbosity level

Definition at line 104 of file DrawHits.h.

Referenced by DrawHits(), ProcessBarHit(), and ProcessPhotonHit().

Double_t DrawHits::fXcross
private

Definition at line 154 of file DrawHits.h.

Referenced by ProcessPhotonHit().

Double_t DrawHits::fYcross
private

Definition at line 155 of file DrawHits.h.

Referenced by ProcessPhotonHit().

std::vector<TH1F*> DrawHits::histos
private

Definition at line 163 of file DrawHits.h.

Double_t DrawHits::lam
private

Definition at line 147 of file DrawHits.h.

TGraph2D* DrawHits::map
private

Definition at line 165 of file DrawHits.h.

Int_t DrawHits::nevents
private

Definition at line 122 of file DrawHits.h.

Referenced by Exec(), Init(), ProcessBarHit(), ProcessPhotonHit(), and ProcessPhotonMC().

TTree* DrawHits::phoTree
private

Definition at line 162 of file DrawHits.h.

Referenced by CreateHisto(), and WriteToFile().

TGraph2D* DrawHits::pop
private

Definition at line 166 of file DrawHits.h.

Double_t DrawHits::pxmc
private

Definition at line 128 of file DrawHits.h.

Double_t DrawHits::pxMo
private

Definition at line 138 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::pxPho
private

Definition at line 141 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::pymc
private

Definition at line 129 of file DrawHits.h.

Double_t DrawHits::pyMo
private

Definition at line 139 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::pyPho
private

Definition at line 142 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::pzmc
private

Definition at line 130 of file DrawHits.h.

Double_t DrawHits::pzMo
private

Definition at line 140 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::pzPho
private

Definition at line 143 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::thit
private

Definition at line 134 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::xbar
private

Definition at line 135 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessBarHit().

Double_t DrawHits::xEnt
private

Definition at line 144 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessBarHit().

Float_t DrawHits::xhit
private

Definition at line 131 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::xmcp
private

Definition at line 125 of file DrawHits.h.

Double_t DrawHits::ybar
private

Definition at line 136 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessBarHit().

Double_t DrawHits::yEnt
private

Definition at line 145 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessBarHit().

Float_t DrawHits::yhit
private

Definition at line 132 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::ymcp
private

Definition at line 126 of file DrawHits.h.

Double_t DrawHits::zbar
private

Definition at line 137 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessBarHit().

Double_t DrawHits::zEnt
private

Definition at line 146 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessBarHit().

Double_t DrawHits::zhit
private

Definition at line 133 of file DrawHits.h.

Referenced by CreateHisto(), and ProcessPhotonHit().

Double_t DrawHits::zmcp
private

Definition at line 127 of file DrawHits.h.


The documentation for this class was generated from the following files: