16 #include "FairTrackParH.h"
17 #include "FairMCApplication.h"
18 #include "FairRunAna.h"
19 #include "FairRootManager.h"
20 #include "FairRuntimeDb.h"
26 std::cerr <<
"<Error> PndPidCorrelator FSCINFO: FairTrackParH NULL pointer parameter."<<std::endl;
31 std::cerr <<
"<Error> PndPidCorrelator FSCINFO: pidCand NULL pointer parameter."<<std::endl;
36 if (
fVerbose>0) std::cout <<
"-W- PndPidCorrelator::GetFscInfo :: Skipping forward tracks propagation in forward direction" << std::endl;
43 Int_t emcIndex = -1, emcModuleCorr = -1, emcNCrystals = -1;
44 Float_t emcEloss = 0., emcElossCorr = 0., emcGLength = -1000;
45 Float_t emcQuality = 1000000;
47 TVector3 vertex(0., 0., 0.); TVector3 emcPos(0., 0., 0.);
50 Double_t Z20 = 0.0, Z53 = 0.0, secLatM = 0.00, E1 = 0., E9 = 0., E25 = 0.;
52 for (Int_t ee = 0; ee<fscEntries; ee++)
56 if (emcModule!=5)
continue;
61 if (mclist.size()==0)
continue;
62 if (mclist[0]!=pidCand->
GetMcIndex())
continue;
67 emcPos = fscHit->
where();
72 vertex.SetXYZ(-10000, -10000, -10000);
73 FairTrackParH *fRes=
new FairTrackParH();
78 vertex.SetXYZ(fRes->GetX(), fRes->GetY(), fRes->GetZ());
85 Float_t dist = (emcPos-vertex).Mag2();
86 if ( emcQuality > dist )
90 emcEloss = fscHit->
energy();
92 emcModuleCorr = emcModule;
96 secLatM = fscHit->
LatMom();
114 Float_t ntuple[] = {
static_cast<Float_t
>(vertex.X()), static_cast<Float_t>(vertex.Y()), static_cast<Float_t>(vertex.Z()), static_cast<Float_t>(vertex.Phi()),
115 static_cast<Float_t>(helix->GetMomentum().Mag()), static_cast<Float_t>(helix->GetQ()), static_cast<Float_t>(helix->GetMomentum().Theta()), static_cast<Float_t>(helix->GetZ()),
116 static_cast<Float_t>(emcPos.X()), static_cast<Float_t>(emcPos.Y()), static_cast<Float_t>(emcPos.Z()), static_cast<Float_t>(emcPos.Phi()),
117 dist, static_cast<Float_t>(vertex.DeltaPhi(emcPos)), static_cast<Float_t>(fscHit->
energy()), emcGLength, static_cast<Float_t>(emcModule)};
126 if ((emcQuality < fCorrPar->GetEmc12Cut()) || (
fIdeal && emcIndex!=-1))
void SetEmcNumberOfCrystals(Int_t val)
Short_t GetModule() const
void SetEmcModule(Int_t val)
void SetEmcClusterE1(Double_t val)
void SetEmcCalEnergy(Double_t val)
PndPidCorrPar * fCorrPar
PndRichHit TCA.
void SetEmcQuality(Double_t val)
virtual Double_t Energy(PndEmcCluster *clust, Int_t pid=22)=0
map< Int_t, Bool_t > fClusterList
const std::vector< Int_t > & GetMcList() const
Bool_t GetFscInfo(FairTrackParH *helix, PndPidCandidate *pid)
PndEmcAbsClusterCalibrator * fEmcCalibrator
FTS geometry parameters.
virtual Double_t E1() const
void SetEmcClusterE9(Double_t val)
void SetEmcIndex(Int_t val)
a cluster (group of neighboring crystals) of hit emc crystals
map< Int_t, Double_t > fClusterQ
TClonesArray * fEmcDigi
PndEmcBump TCA.
FairGeanePro * fGeanePropagator
Refitter for MDT tracks.
void SetEmcClusterE25(Double_t val)
Int_t NumberOfDigis() const
void SetEmcClusterLat(Double_t val)
virtual Double_t E25() const
virtual Double_t energy() const
virtual Double_t E9() const
void SetEmcClusterZ20(Double_t val)
void SetEmcClusterZ53(Double_t val)
void SetEmcRawEnergy(Double_t val)
TClonesArray * fEmcCluster
PndFtofPoint TCA.