star-travex
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
StiScanHistsByVolume.cxx
Go to the documentation of this file.
1 #include <cmath>
2 
3 #include "TProfile2D.h"
4 
7 
8 
9 StiScanHistsByVolume::StiScanHistsByVolume(StiScanPrgOptions& prgOpts, const char* name, TDirectory* motherDir, bool doProjection, Option_t* option) :
10  StiScanHistContainer(prgOpts, name, motherDir, doProjection, option)
11 {
12 }
13 
14 
15 void StiScanHistsByVolume::FillHists(const TStiKalmanTrack &kalmTrack, const std::set<std::string> *volumeList)
16 {
17  // Take the first node with the smallest radius
18  const TStiKalmanTrackNode& dcaNode = kalmTrack.GetDcaNode();
19 
20  h("hTrackCountVsEtaVsPhi")->Fill(dcaNode.GetTrackP().Eta(), dcaNode.GetTrackP().Phi());
21  h("hTrackCountVsZVsPhi")->Fill(dcaNode.GetPosition().Z(), dcaNode.GetTrackP().Phi());
22 
23  for (const auto& kalmNode : kalmTrack.GetNodes())
24  {
25  if (volumeList && volumeList->size() && !kalmNode.MatchedVolName(*volumeList) ) continue;
26 
27  hNStepsVsPhiVsRVsZ->FillAsCumulative(kalmNode.GetNodeCenterRefAngle(), kalmNode.GetNodeRadius(), kalmNode.GetPosition().Z(), 1);
28  dynamic_cast<TProfile2D&>( *h("hELossVsEtaVsPhi_trk")).Fill(kalmNode.GetTrackP().Eta(), kalmNode.GetTrackP().Phi(), kalmNode.GetEnergyLosses());
29 
30  dynamic_cast<TProfile2D&>( *h("hELossVsEtaVsPhi")).Fill(kalmNode.GetPosition().Eta(), kalmNode.GetNodeCenterRefAngle(), kalmNode.GetEnergyLosses());
31  dynamic_cast<TProfile2D&>( *h("hELossVsZVsPhi")).Fill(kalmNode.GetPosition().Z(), kalmNode.GetNodeCenterRefAngle(), kalmNode.GetEnergyLosses());
32  dynamic_cast<TProfile2D&>( *h("hELossVsZVsR")).Fill(kalmNode.GetPosition().Z(), kalmNode.GetNodeRadius(), kalmNode.GetEnergyLosses());
33  dynamic_cast<TProfile2D&>( *h("hELossVsPhiVsR")).Fill(kalmNode.GetNodeCenterRefAngle(), kalmNode.GetNodeRadius(), kalmNode.GetEnergyLosses());
34  hELossVsPhiVsRVsZ->FillAsCumulative(kalmNode.GetNodeCenterRefAngle(), kalmNode.GetNodeRadius(), kalmNode.GetPosition().Z(), kalmNode.GetEnergyLosses());
35  hELossVsXVsYVsZ->FillAsCumulative(kalmNode.GetNodeCenterRefAngle(), kalmNode.GetNodeRadius(), kalmNode.GetPosition().Z(), kalmNode.GetEnergyLosses());
36  hDensityVsPhiVsRVsZ->Fill(kalmNode.GetNodeCenterRefAngle(), kalmNode.GetNodeRadius(), kalmNode.GetPosition().Z(), kalmNode.GetNodeMaterialDensity());
37  hRelRadLengthVsPhiVsRVsZ->FillAsCumulative(kalmNode.GetNodeCenterRefAngle(), kalmNode.GetNodeRadius(), kalmNode.GetPosition().Z(), kalmNode.GetNodeRelRadLength());
38  }
39 
44 }
Int_t FillAsCumulative(Double_t x, Double_t y, Double_t z, Double_t t)
Definition: Profile3D.cxx:43
const TVector3 & GetPosition() const
Profile3D * hRelRadLengthVsPhiVsRVsZ
virtual void FillHists(const TStiKalmanTrack &kalmTrack, const std::set< std::string > *volumeList=0)
void ResetBinCumulMode()
Definition: Profile3D.cxx:36
const TStiKalmanTrackNode & GetDcaNode() const
Processes and controls user options provided in the command line.
const std::set< TStiKalmanTrackNode > & GetNodes() const
StiScanHistsByVolume(StiScanPrgOptions &prgOpts, const char *name, TDirectory *motherDir=0, bool doProjection=false, Option_t *option="")
const TVector3 & GetTrackP() const