FairRoot/PandaRoot
Functions | Variables
reco_muo.C File Reference

Go to the source code of this file.

Functions

t AddFriend ("pndsim","points_combi.root")
 
t SetBranchAddress ("MdtTrk",&trk_array)
 
t SetBranchAddress ("MdtHit",&hit_array)
 
t SetBranchAddress ("MdtPoint",&point_array)
 
t SetBranchAddress ("MCTrack",&mc_array)
 
 for (Int_t j=0;j< t->GetEntriesFast();j++)
 
nHit Write ()
 
out Save ()
 

Variables

TFile * f2 = new TFile("points_combi.root")
 
TTree * t =(TTree *) f->Get("pndsim")
 
TClonesArray * trk_array =new TClonesArray("PndMdtTrk")
 
TClonesArray * hit_array =new TClonesArray("PndMdtHit")
 
TClonesArray * point_array =new TClonesArray("PndMdtPoint")
 
TClonesArray * mc_array =new TClonesArray("PndMCTrack")
 
PndEmcMapperemcMap =PndEmcMapper::Instance(1)
 
TFile * out = TFile::Open("reco_combi.root","RECREATE")
 
TNtuple * nHit = new TNtuple("nHit","nHit","evt:x:y:z:phi:theta:lay:mod:sec:xt:yt")
 
TNtuple * nHit0 = new TNtuple("nHit0","nHit0","evt:trk:x:y:z:phi:theta:lay:mod:sec:pdg:mot:xt:yt:phit:px:py:pz:y0:y1:y2:y3:y4:y5:y6:y7:y8:y9")
 
TNtuple * ext = new TNtuple("ext","ext","evt:trk:xt:yt:zt:lay:mod:sec:x:y:z:dist:angle")
 
PndMdtRecoParpar = new PndMdtRecoPar()
 

Function Documentation

t AddFriend ( "pndsim"  ,
"points_combi.root"   
)
for ( Int_t  j = 0; j< t->GetEntriesFast(); j++)

Definition at line 27 of file reco_muo.C.

References cos(), PndMdtTrk::GetHitBit(), PndMdtHit::GetLayerID(), PndMdtRecoPar::GetLayerPos(), PndMdtHit::GetModule(), PndMdtTrk::GetModule(), PndMCTrack::GetMotherID(), PndMCTrack::GetPdgCode(), PndMdtHit::GetSector(), hh, mom, pos, sin(), and sqrt().

28  {
29  t->GetEntry(j);
30 
31  for (Int_t hh=0; hh<hit_array->GetEntriesFast(); hh++)
32  {
33  PndMdtHit *mdtHit=(PndMdtHit*)hit_array->At(hh);
34  TVector3 pos(0.,0.,0.);
35  mdtHit->Position(pos);
36  Int_t layer = int((pos.Phi()*TMath::RadToDeg()+180+22.5)/45);
37  if (layer==8) layer = 0;
38 
39  Float_t xt, yt;
40 
41  xt = cos(-layer*45*TMath::DegToRad())*pos.X() - sin(-layer*45*TMath::DegToRad())*pos.Y();
42  yt = sin(-layer*45*TMath::DegToRad())*pos.X() + cos(-layer*45*TMath::DegToRad())*pos.Y();
43 
44 
45  nHit->Fill(j,pos.X(), pos.Y(), pos.Z(), pos.Phi(), pos.Theta(), mdtHit->GetLayerID(), mdtHit.GetModule(), mdtHit.GetSector(), xt, yt);
46  } // end of hit loop
47 
48  for (Int_t tt=0; tt<trk_array->GetEntriesFast(); tt++)
49  {
50  PndMdtTrk *trkHit=(PndMdtTrk*)trk_array->At(tt);
51  /*
52  if ( ( (trkHit->GetModule()==1) && (trkHit->GetHitBit()!=1023) ) ||
53  ( (trkHit->GetModule()==2) && (trkHit->GetHitBit()!=127) ) ||
54  (trkHit->GetModule()==10) ) continue;*/
55  if ( (trkHit->GetModule()!=1) || (trkHit->GetHitBit()!=1023) ) continue;
56 
57  //for (Int_t pp=0;pp<10;pp++) cout << trkHit->GetModule() << " " << pp << " " << trkHit->GetHitNumber(pp)<< endl;
58  PndMdtHit *hit0 = (PndMdtHit*)hit_array->At(trkHit->GetHitNumber(0));
59  PndMdtPoint *point0 = (PndMdtPoint*)point_array->At(hit0->GetRefIndex());
60  PndMCTrack *mc0 = (PndMCTrack*)mc_array->At(((PndMdtPoint*)point_array->At(hit0->GetRefIndex()))->GetTrackID());
61 
62  TVector3 pos0(0.,0.,0.);
63  hit0->Position(pos0);
64  TVector3 mom(point0->GetPx(),point0->GetPy(),point0->GetPz());
65  // mom = point0->GetMomentum();
66 
67  Float_t xt0, yt0;
68  xt0 = (cos(-hit0->GetSector()*45*TMath::DegToRad())*pos0.X() - sin(-hit0->GetSector()*45*TMath::DegToRad())*pos0.Y());
69  yt0 = sin(-hit0->GetSector()*45*TMath::DegToRad())*pos0.X() + cos(-hit0->GetSector()*45*TMath::DegToRad())*pos0.Y();
70  mom->SetPhi(mom.Phi()-hit0->GetSector()*45.*TMath::DegToRad());
71  if (mom.X()==0)
72  {
73  cout << "px == 0 errore"<< endl;
74  continue;
75  }
76  Float_t xlayer0 = -par->GetLayerPos(hit0->GetModule()-1,0);
77  Float_t yproj[10], zproj[10];
78  for (Int_t yy=0; yy<10; yy++)
79  {
80  Float_t xlayer = -par->GetLayerPos(hit0->GetModule()-1,yy);
81  yproj[yy] = yt0 + (xlayer - xt0) * mom.Y() / mom.X();
82  zproj[yy] = pos0.Z() + (xlayer - xt0) * mom.Z() / mom.X();
83 
84  PndMdtHit *testhit = (PndMdtHit*)hit_array->At(trkHit->GetHitNumber(yy));
85  TVector3 hpos(0.,0.,0.);
86  testhit->Position(hpos);
87  Float_t xt, yt;
88  xt = (cos(-hit0->GetSector()*45*TMath::DegToRad())*hpos.X() - sin(-hit0->GetSector()*45*TMath::DegToRad())*hpos.Y());
89  yt = sin(-hit0->GetSector()*45*TMath::DegToRad())*hpos.X() + cos(-hit0->GetSector()*45*TMath::DegToRad())*hpos.Y();
90  Float_t dist = sqrt(((yproj[yy]-yt0)*(yproj[yy]-yt0))+((zproj[yy]-hpos.Z())*(zproj[yy]-hpos.Z())));
91  TVector3 vext(xlayer-xlayer0,yproj[yy]-yt0,zproj[yy]-pos0.Z());
92  TVector3 vhit(xlayer-xlayer0,yt-yt0,hpos.Z()-pos0.Z());
93 
94  ext->Fill(j, tt,xlayer, yproj[yy], zproj[yy], testhit->GetLayerID(), hit0.GetModule(), hit0.GetSector(), xt, yt, hpos.Z(),dist,vext.Angle(vhit) );
95  }
96 
97  Float_t nhit0_nt[] = {
98  j,tt,pos0.X(), pos0.Y(), pos0.Z(), pos0.Phi(), pos0.Theta(),
99  hit0->GetLayerID(), hit0.GetModule(), hit0.GetSector(),
100  mc0->GetPdgCode(), mc0->GetMotherID(), xt0, yt0,mom.Phi()*TMath::RadToDeg(),
101  mom.X(), mom.Y(), mom.Z(),
102  yproj[0],yproj[1],yproj[2],yproj[3],yproj[4],yproj[5],yproj[6],yproj[7],yproj[8],yproj[9],
103 
104 
105  };
106 
107  nHit0->Fill(nhit0_nt);
108  } // end of MdtTrk loop
109 
110  } // end of event loop
PndMdtRecoPar * par
Definition: reco_muo.C:25
TVector3 pos
friend F32vec4 cos(const F32vec4 &a)
Definition: P4_F32vec4.h:112
Short_t GetLayerID() const
Definition: PndMdtHit.h:34
TClonesArray * point_array
Definition: reco_muo.C:13
TTree * t
Definition: reco_muo.C:4
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
Int_t GetHitBit() const
Definition: PndMdtTrk.h:46
Int_t GetPdgCode() const
Definition: PndMCTrack.h:73
Float_t GetLayerPos(Int_t mod, Int_t lay) const
Definition: PndMdtRecoPar.h:12
friend F32vec4 sin(const F32vec4 &a)
Definition: P4_F32vec4.h:111
Double_t mom
Definition: plot_dirc.C:14
TNtuple * nHit
Definition: reco_muo.C:22
Int_t GetModule() const
Definition: PndMdtTrk.h:48
TClonesArray * mc_array
Definition: reco_muo.C:16
Short_t GetSector() const
Definition: PndMdtHit.h:33
TNtuple * nHit0
Definition: reco_muo.C:23
TNtuple * ext
Definition: reco_muo.C:24
Short_t GetModule() const
Definition: PndMdtHit.h:32
TClonesArray * hh
Int_t GetMotherID() const
Definition: PndMCTrack.h:74
TClonesArray * hit_array
Definition: reco_muo.C:10
TClonesArray * trk_array
Definition: reco_muo.C:7
out Save ( )
t SetBranchAddress ( "MdtTrk"  ,
trk_array 
)
t SetBranchAddress ( "MdtHit"  ,
hit_array 
)
t SetBranchAddress ( "MdtPoint"  ,
point_array 
)
t SetBranchAddress ( "MCTrack"  ,
mc_array 
)
nHit Write ( )

Variable Documentation

Definition at line 18 of file reco_muo.C.

TNtuple* ext = new TNtuple("ext","ext","evt:trk:xt:yt:zt:lay:mod:sec:x:y:z:dist:angle")
TFile* f2 = new TFile("points_combi.root")

Definition at line 3 of file reco_muo.C.

TClonesArray* hit_array =new TClonesArray("PndMdtHit")

Definition at line 10 of file reco_muo.C.

TClonesArray* mc_array =new TClonesArray("PndMCTrack")

Definition at line 16 of file reco_muo.C.

TNtuple* nHit = new TNtuple("nHit","nHit","evt:x:y:z:phi:theta:lay:mod:sec:xt:yt")

Definition at line 22 of file reco_muo.C.

TNtuple* nHit0 = new TNtuple("nHit0","nHit0","evt:trk:x:y:z:phi:theta:lay:mod:sec:pdg:mot:xt:yt:phit:px:py:pz:y0:y1:y2:y3:y4:y5:y6:y7:y8:y9")

Definition at line 23 of file reco_muo.C.

TFile* out = TFile::Open("reco_combi.root","RECREATE")

Definition at line 20 of file reco_muo.C.

Referenced by ana_check(), ana_check_psi(), ana_complete(), ana_day1(), ana_invariantmass_2pi_tpc(), ana_jpsi(), ana_MCOpt(), ana_multi(), ana_multikalman(), anaideal_complete(), AnalyseCombinedGammaFiles(), anaRadLength(), anatut_psi2s(), benchmark(), PndSttHitCorrector::CalcClassification(), Check_particle_path(), check_trackcand(), convert_geometry(), createCalibJuelichFeb02(), createFCalib(), PndMvdCreateDefaultApvMap::CreateFile(), PndPidMvaAssociatorTask::DoPidMatch(), PndFtsDataAccessor::Exec(), PndCATracking::Exec(), PndMvdAllDataEventAna::FillHitHistos(), PndKFParticleFinderQA::Finish(), FitGammaSpectra(), full_core_ntp(), gem_material_ana1(), PndHypCalcStrip::GetStrips(), PndLmdCalStrip::GetStrips(), PndSdsCalcStripDif::GetStrips(), PndSdsCalcStrip::GetStrips(), LimitsAlign(), LimitsAlign_misalignConstsSUM(), main(), materialana(), ModulesStat(), ModulesStatFast(), muon_barrel_strip_5bis(), newana_check_eta(), OmegaQuadrupoleFourEnergiesCombination(), operator<<(), PndSdsCalcPixel::operator<<(), PndSdsCalcPixelDif::operator<<(), pid_check(), PndRingSorter::Print(), PndMdtWaveform::Print(), PndSdsDigiStrip::Print(), PndMdtIGeometry::Print(), PndRiemannTrack::Print(), PndMapSorterTpl< TData >::PrintMap(), PndMapSorter::PrintMap(), PndEmcPSAFPGAFilterDelay::put(), run_ana_eta_c_stt(), run_ana_eta_c_stt_v2(), run_ana_eta_c_tpc(), run_ana_invariantmass_2pi_stt(), run_ana_invariantmass_2pi_tpc(), run_ana_invariantmass_4pi_stt(), run_ana_invariantmass_4pi_tpc(), run_ana_tpccombi(), SamplesSummaryAlign(), PndCAGBTracker::SaveHitsInFile(), PndCAGBTracker::SaveTracksInFile(), scattered_particles(), SenseAlign(), structure_analysis_emc(), test_check(), TimeStructure(), TOTALSummaryAlign(), toy_core_ntp(), track_check(), track_check_2pi_stt(), track_check_2pi_tpc(), track_check_4pi_stt(), track_check_4pi_tpc(), tut_ana(), tut_ana_comb(), tut_ana_d0(), tut_ana_d0_qahelper(), tut_ana_fast(), tut_ana_fit(), tut_ana_mcmatch(), tut_ana_ntp(), tut_ana_ntp_noqa(), tut_ana_ntp_qa(), tut_ana_pid(), VarCorrP(), PndSttDigiPar::write(), PndFtsDigiPar::write(), and PndLmdSensorAligner::writePairsToBinary().

Definition at line 25 of file reco_muo.C.

TClonesArray* point_array =new TClonesArray("PndMdtPoint")

Definition at line 13 of file reco_muo.C.

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

Definition at line 4 of file reco_muo.C.

TClonesArray* trk_array =new TClonesArray("PndMdtTrk")

Definition at line 7 of file reco_muo.C.

Referenced by check_trackcand().