diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx index 9fddc6511afaaa0c2975d8bd0fe174b5963b0b90..9a1a52d6368bce76b1746587a3938704b8e6fb1d 100644 --- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx +++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.cxx @@ -33,8 +33,7 @@ ClassImp(PairAnalysisVarManager) - const char* PairAnalysisVarManager::fgkParticleNames[PairAnalysisVarManager:: - kNMaxValuesMC][3] = { + const char* PairAnalysisVarManager::fgkParticleNames[PairAnalysisVarManager::kNMaxValuesMC][3] = { {"None", "", ""}, // Constant information {"MEL", "m_{e}", "(GeV/#it{c}^{2})"}, @@ -88,9 +87,7 @@ ClassImp(PairAnalysisVarManager) {"M", "m_{inv}", "(GeV/#it{c}^{2})"}, {"Charge", "q", "(e)"}, {"Mt", "#it{m}_{T}", "(GeV/#it{c}^{2})"}, - {"Chi2NDFtoVtx", - "#chi^{2}/^{}N_{df}^{track#leftrightarrowvtx}", - "(#sigma)"}, + {"Chi2NDFtoVtx", "#chi^{2}/^{}N_{df}^{track#leftrightarrowvtx}", "(#sigma)"}, {"ImpactParXY", "#it{dca}_{xy}", "(cm)"}, {"ImpactParZ", "#it{dca}_{z}", "(cm)"}, {"InclAngle", "#alpha_{incl}", "(rad.)"}, @@ -170,7 +167,7 @@ ClassImp(PairAnalysisVarManager) {"MUCHChi2NDF", "#chi^{2}/^{}N_{df}^{MUCH}", ""}, // technical information {"RndmTrack", "P", ""}, - {"PRes", "", ""}, + {"PRes", "", ""}, // Pair specific variables {"Chi2NDF", "#chi^{2}/^{}ndf", ""}, @@ -266,9 +263,8 @@ ClassImp(PairAnalysisVarManager) {"RvMC", "Sqrt(x_{vtx}^{2}_{MC}+y_{vtx}^{2}_{MC})", "(cm)"}, {"ZvMC", "z_{vtx}^{MC}", "(cm)"}, {"PhivMC", "#phi_{vtx}^{MC}", "(rad.)"}, - {"ThetavMC", - "#theta_{vtx}^{MC}" - "(rad.)"}, + {"ThetavMC", "#theta_{vtx}^{MC}" + "(rad.)"}, {"OneOverPtMC", "1/^{}#it{p}_{T}^{MC}", "(GeV/#it{c})^{-1}"}, {"PhiMC", "#phi^{MC}", "(rad.)"}, {"ThetaMC", "#theta^{MC}", "(rad.)"}, @@ -337,15 +333,14 @@ CbmKFVertex* PairAnalysisVarManager::fgKFVertex = 0x0; CbmVertex* PairAnalysisVarManager::fgVertexMC = 0x0; //CbmStsKFTrackFitter* PairAnalysisVarManager::fgKFFitter = 0x0; //CbmL1PFFitter* PairAnalysisVarManager::fgL1Fitter = 0x0; -TBits* PairAnalysisVarManager::fgFillMap = 0x0; -Int_t PairAnalysisVarManager::fgCurrentRun = -1; -Double_t PairAnalysisVarManager::fgData[PairAnalysisVarManager::kNMaxValuesMC] = - {0.}; -TFormula* PairAnalysisVarManager::fgFormula[kNMaxValuesMC] = {0x0}; +TBits* PairAnalysisVarManager::fgFillMap = 0x0; +Int_t PairAnalysisVarManager::fgCurrentRun = -1; +Double_t PairAnalysisVarManager::fgData[PairAnalysisVarManager::kNMaxValuesMC] = {0.}; +TFormula* PairAnalysisVarManager::fgFormula[kNMaxValuesMC] = {0x0}; //________________________________________________________________ -PairAnalysisVarManager::PairAnalysisVarManager() - : TNamed("PairAnalysisVarManager", "PairAnalysisVarManager") { +PairAnalysisVarManager::PairAnalysisVarManager() : TNamed("PairAnalysisVarManager", "PairAnalysisVarManager") +{ // // Default constructor // @@ -357,9 +352,8 @@ PairAnalysisVarManager::PairAnalysisVarManager() } //________________________________________________________________ -PairAnalysisVarManager::PairAnalysisVarManager(const char* name, - const char* title) - : TNamed(name, title) { +PairAnalysisVarManager::PairAnalysisVarManager(const char* name, const char* title) : TNamed(name, title) +{ // // Named constructor // @@ -371,7 +365,8 @@ PairAnalysisVarManager::PairAnalysisVarManager(const char* name, } //________________________________________________________________ -PairAnalysisVarManager::~PairAnalysisVarManager() { +PairAnalysisVarManager::~PairAnalysisVarManager() +{ // // Default destructor // @@ -381,7 +376,8 @@ PairAnalysisVarManager::~PairAnalysisVarManager() { } //________________________________________________________________ -UInt_t PairAnalysisVarManager::GetValueType(const char* valname) { +UInt_t PairAnalysisVarManager::GetValueType(const char* valname) +{ // // Get value type by value name // @@ -394,7 +390,8 @@ UInt_t PairAnalysisVarManager::GetValueType(const char* valname) { } //________________________________________________________________ -UInt_t PairAnalysisVarManager::GetValueTypeMC(UInt_t var) { +UInt_t PairAnalysisVarManager::GetValueTypeMC(UInt_t var) +{ // // Get MC value type by standard value name // diff --git a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h index afcdf420a1e994d93a0f2d425580f596d88767a8..902e46cddf15043130af01c4479174d20a738424 100644 --- a/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h +++ b/analysis/PWGDIL/dielectron/papaframework/PairAnalysisVarManager.h @@ -12,43 +12,41 @@ //# # //############################################################# -#include <TDatabasePDG.h> -#include <TNamed.h> -#include <TPDGCode.h> - -#include <TBits.h> -#include <TFormula.h> -#include <TMatrixFSym.h> -#include <TRandom3.h> -#include <TVector2.h> -#include <TVector3.h> - #include <CbmCluster.h> +#include <CbmDefs.h> +#include <CbmGlobalTrack.h> +#include <CbmKFVertex.h> +#include <CbmMCTrack.h> #include <CbmMuchPixelHit.h> +#include <CbmMuchTrack.h> #include <CbmMvdHit.h> #include <CbmPixelHit.h> #include <CbmRichElectronIdAnn.h> #include <CbmRichHit.h> +#include <CbmRichRing.h> #include <CbmStsHit.h> +#include <CbmStsTrack.h> #include <CbmTofHit.h> +#include <CbmTrackMatchNew.h> #include <CbmTrdCluster.h> #include <CbmTrdHit.h> -#include <FairRootManager.h> +#include <CbmTrdTrack.h> +#include <CbmVertex.h> +#include <FairMCEventHeader.h> #include <FairMCPoint.h> +#include <FairRootManager.h> #include <FairTrackParam.h> -#include <CbmDefs.h> -#include <CbmGlobalTrack.h> -#include <CbmKFVertex.h> -#include <CbmMCTrack.h> -#include <CbmMuchTrack.h> -#include <CbmRichRing.h> -#include <CbmStsTrack.h> -#include <CbmTrackMatchNew.h> -#include <CbmTrdTrack.h> -#include <CbmVertex.h> -#include <FairMCEventHeader.h> +#include <TBits.h> +#include <TDatabasePDG.h> +#include <TFormula.h> +#include <TMatrixFSym.h> +#include <TNamed.h> +#include <TPDGCode.h> +#include <TRandom3.h> +#include <TVector2.h> +#include <TVector3.h> //#include "L1Field.h" @@ -61,25 +59,25 @@ #include "PairAnalysisPair.h" #include "PairAnalysisPairLV.h" #include "PairAnalysisTrack.h" - #include "assert.h" //________________________________________________________________ class PairAnalysisVarManager : public TNamed { public: - enum ValueTypes { + enum ValueTypes + { // Constant information - kMEL = 1, // pdg mass of electrons - kMMU, // pdg mass of muons - kMPI, // pdg mass of pions - kMKA, // pdg mass of kaons - kMPR, // pdg mass of protons - kMK0, // pdg mass of neutral kaons - kMLA, // pdg mass of lambdas - kMPair, // pdg mass of pair - kEbeam, // beam energy - kThermalScaling, // scaling for uniform mass distributions + kMEL = 1, // pdg mass of electrons + kMMU, // pdg mass of muons + kMPI, // pdg mass of pions + kMKA, // pdg mass of kaons + kMPR, // pdg mass of protons + kMK0, // pdg mass of neutral kaons + kMLA, // pdg mass of lambdas + kMPair, // pdg mass of pair + kEbeam, // beam energy + kThermalScaling, // scaling for uniform mass distributions kConstMax, // Hit specific variables kPosX = kConstMax, // X position [cm] @@ -124,9 +122,9 @@ public: kCharge, // charge kMt, // transverse mass sqrt(m^2+pt^2) kChi2NDFtoVtx, // chi2/ndf impact parameter STS(+MVD) track to primary vertex in (sigmas) - kImpactParXY, // Impact parameter in XY plane - kImpactParZ, // Impact parameter in Z - kInclAngle, // inclination angle + kImpactParXY, // Impact parameter in XY plane + kImpactParZ, // Impact parameter in Z + kInclAngle, // inclination angle kParticleMax, // Track specific variables // global track @@ -157,17 +155,17 @@ public: kTrdPhiCorr, // correction factor for phi track angle // kTrdTrackLength, // track length in cm of the trd tracklet // sts track information - kMvdhasEntr, // weather track enters first MVD station - kMvdHits, // number of MVD hits - kMvdHitClosest, - kStsHitClosest, - kMvdHitClosestOpeningAngle, - kStsHitClosestOpeningAngle, - kMvdHitClosestMom, - kStsHitClosestMom, - kMvdFirstHitPosZ, // position of the first hit in the MVD (cm) - kMvdFirstExtX, // x-position of the extrapolated track at the first MVD station (cm) - kMvdFirstExtY, // y-position of the extrapolated track at the first MVD station (cm) + kMvdhasEntr, // weather track enters first MVD station + kMvdHits, // number of MVD hits + kMvdHitClosest, // Distance to the closest hit in the firstreconstructed MVD station + kStsHitClosest, // Distance to the closest hit in the firstreconstructed STS station + kMvdHitClosestOpeningAngle, // opening angle calculated between the reconstructed track and the track associated to the closest hit in the first mvd station + kStsHitClosestOpeningAngle, // opening angle calculated between the reconstructed track and the track associated to the closest hit in the first sts station + kMvdHitClosestMom, // sqrt( p_rec * p_closest_mvd) + kStsHitClosestMom, // sqrt( p_rec * p_closest_sts) + kMvdFirstHitPosZ, // position of the first hit in the MVD (cm) + kMvdFirstExtX, // x-position of the extrapolated track at the first MVD station (cm) + kMvdFirstExtY, // y-position of the extrapolated track at the first MVD station (cm) // kImpactParZ, // Impact parameter of track at target z, in units of its error kStsHits, // number of STS hits kStsMvdHits, // number of STS hits @@ -181,20 +179,20 @@ public: kStsZv, // STS point: z-coordinate kStsFirstHitPosZ, // position of the first hit in the STS (cm) // rich ring information - kRichhasProj, // weather rich ring has a projection onto the pmt plane - kRichPidANN, // PID value Artificial Neural Network (ANN-method) - kRichHitsOnRing, // number of RICH hits on the ring - kRichHits, // number of RICH hits (ANN input) - kRichChi2NDF, // chi2/ndf ring fit (ANN input) - kRichRadius, // ring radius - kRichAxisA, // major semi-axis (ANN input) - kRichAxisB, // minor semi-axis (ANN input) - kRichCenterX, // ring center in x - kRichCenterY, // ring center in y - kRichDistance, // distance between ring center and track (ANN input) - kRichRadialPos, // radial psoition = sqrt(x**2+abs(y-110)**2), (ANN input) + kRichhasProj, // weather rich ring has a projection onto the pmt plane + kRichPidANN, // PID value Artificial Neural Network (ANN-method) + kRichHitsOnRing, // number of RICH hits on the ring + kRichHits, // number of RICH hits (ANN input) + kRichChi2NDF, // chi2/ndf ring fit (ANN input) + kRichRadius, // ring radius + kRichAxisA, // major semi-axis (ANN input) + kRichAxisB, // minor semi-axis (ANN input) + kRichCenterX, // ring center in x + kRichCenterY, // ring center in y + kRichDistance, // distance between ring center and track (ANN input) + kRichRadialPos, // radial psoition = sqrt(x**2+abs(y-110)**2), (ANN input) kRichRadialAngle, // radial angle (0||1||2)*pi +- atan( abs((+-100-y)/-x) ), (ANN input) - kRichPhi, // phi rotation angle of ellipse (ANN input) + kRichPhi, // phi rotation angle of ellipse (ANN input) // tof track information kTofHits, // number of TOF hits // much track information @@ -203,7 +201,7 @@ public: kMuchChi2NDF, // chi2/ndf MUCH // technical variables kRndmTrack, // randomly created number (used to apply special selection cuts) - kPRes, // momentum resolution + kPRes, // momentum resolution kTrackMax, // Pair specific variables @@ -215,53 +213,53 @@ public: kArmAlpha, // Armenteros-Podolanski alpha kArmPt, // Armenteros-Podolanski pt // helicity picture: Z-axis is considered the direction of the mother's 3-momentum vector - kThetaHE, // theta in mother's rest frame in the helicity picture - kPhiHE, // phi in mother's rest frame in the helicity picture - kThetaSqHE, // squared value of kThetaHE - kCos2PhiHE, // Cosine of 2*phi in mother's rest frame in the helicity picture + kThetaHE, // theta in mother's rest frame in the helicity picture + kPhiHE, // phi in mother's rest frame in the helicity picture + kThetaSqHE, // squared value of kThetaHE + kCos2PhiHE, // Cosine of 2*phi in mother's rest frame in the helicity picture kCosTilPhiHE, // Shifted phi depending on kThetaHE // Collins-Soper picture: Z-axis is considered the direction of the vectorial difference between // the 3-mom vectors of target and projectile beams - kThetaCS, // theta in mother's rest frame in Collins-Soper picture - kPhiCS, // phi in mother's rest frame in Collins-Soper picture - kThetaSqCS, // squared value of kThetaCS - kCos2PhiCS, // Cosine of 2*phi in mother's rest frame in the Collins-Soper picture - kCosTilPhiCS, // Shifted phi depending on kThetaCS - kPsiPair, // phi in mother's rest frame in Collins-Soper picture - kStsMvdFirstDaughter, // number of STS and MVD hits of the first daughter particle - kStsMvdSecondDaughter, // number of STS and MVD hits - kStsMvdTrdFirstDaughter, // number of STS and MVD hitsof the first daughter particle - kStsMvdTrdSecondDaughter, // number of STS and MVD hits + kThetaCS, // theta in mother's rest frame in Collins-Soper picture + kPhiCS, // phi in mother's rest frame in Collins-Soper picture + kThetaSqCS, // squared value of kThetaCS + kCos2PhiCS, // Cosine of 2*phi in mother's rest frame in the Collins-Soper picture + kCosTilPhiCS, // Shifted phi depending on kThetaCS + kPsiPair, // phi in mother's rest frame in Collins-Soper picture + kStsMvdFirstDaughter, // number of STS and MVD hits of the first daughter particle + kStsMvdSecondDaughter, // number of STS and MVD hits + kStsMvdTrdFirstDaughter, // number of STS and MVD hitsof the first daughter particle + kStsMvdTrdSecondDaughter, // number of STS and MVD hits kStsMvdRichFirstDaughter, // number of STS and MVD hitsof the first daughter particle kStsMvdRichSecondDaughter, // number of STS and MVD hits - kStsFirstDaughter, // number of STS hits of the first daughter particle - kStsSecondDaughter, // number of STS hits of the second daughter particle - kMvdFirstDaughter, // number of MVD hits of the first daughter particle - kMvdSecondDaughter, // number of MVD hits of the second daughter particle - kTrdFirstDaughter, // number of TRD hits of the first daughter particle - kTrdSecondDaughter, // number of TRD hits of the second daughter particle - kRichFirstDaughter, // number of RICH hits of the first daughter particle - kRichSecondDaughter, // number of RICH hits of the second daughter particle - kStsHitDist, // distance to the closest hit in the first sts station - kMvdHitDist, // distance to the closest hit in the first mvd station + kStsFirstDaughter, // number of STS hits of the first daughter particle + kStsSecondDaughter, // number of STS hits of the second daughter particle + kMvdFirstDaughter, // number of MVD hits of the first daughter particle + kMvdSecondDaughter, // number of MVD hits of the second daughter particle + kTrdFirstDaughter, // number of TRD hits of the first daughter particle + kTrdSecondDaughter, // number of TRD hits of the second daughter particle + kRichFirstDaughter, // number of RICH hits of the first daughter particle + kRichSecondDaughter, // number of RICH hits of the second daughter particle + kStsHitDist, // distance to the closest hit in the first sts station + kMvdHitDist, // distance to the closest hit in the first mvd station kPhivPair, // angle between ee plane and the magnetic field (can be useful for conversion rejection) - kLegDist, // distance of the legs - kLegDistXY, // distance of the legs in XY - kDeltaEta, // Absolute value of Delta Eta for the legs - kDeltaPhi, // Absolute value of Delta Phi for the legs - kLegsP, // sqrt of p_leg1*p_leg2 - kMerr, // error of mass calculation - kDCA, // distance of closest approach TODO: not implemented yet - kPairType, // type of the pair, like like sign ++ unlikesign ... - kMomAsymDau1, // momentum fraction of daughter1 - kMomAsymDau2, // momentum fraction of daughter2 - kPairEff, // pair efficiency - kOneOverPairEff, // 1 / pair efficiency (correction factor) + kLegDist, // distance of the legs + kLegDistXY, // distance of the legs in XY + kDeltaEta, // Absolute value of Delta Eta for the legs + kDeltaPhi, // Absolute value of Delta Phi for the legs + kLegsP, // sqrt of p_leg1*p_leg2 + kMerr, // error of mass calculation + kDCA, // distance of closest approach TODO: not implemented yet + kPairType, // type of the pair, like like sign ++ unlikesign ... + kMomAsymDau1, // momentum fraction of daughter1 + kMomAsymDau2, // momentum fraction of daughter2 + kPairEff, // pair efficiency + kOneOverPairEff, // 1 / pair efficiency (correction factor) kOneOverPairEffSq, // 1 / pair efficiency squared (correction factor) - kRndmPair, // radomly created number (used to apply special signal reduction cuts) - kPairs, // number of Ev1PM pair candidates after all cuts - kPairMax, // + kRndmPair, // radomly created number (used to apply special signal reduction cuts) + kPairs, // number of Ev1PM pair candidates after all cuts + kPairMax, // // Event specific variables kXvPrim = kPairMax, /// prim vertex [cm] @@ -333,21 +331,21 @@ public: kTofHitsMC, // number of TOF hits kMuchHitsMC, // number of MUCH hits kRichHitsMC, // number of RICH hits - kTrdMCTracks, // number of TRD MC Points in reconstructed track - kRichMCPoints, // number of TRD MC Points in reconstructed track - kTrdTrueHits, // number of true TRD hits in reconstructed track - kTrdDistHits, // number of distorted TRD hits in reconstructed track - kTrdFakeHits, // number of fake TRD hits in reconstructed track - kTrdDistortion, // level of distortion of reconstructed track [0,1] - kStsTrueHits, // number of true STS hits in reconstructed track - kStsDistHits, // number of distorted STS hits in reconstructed track - kStsFakeHits, // number of fake STS hits in reconstructed track - kTrdisMC, // status bit for matching btw. glbl. and local MC track - kMvdisMC, // status bit for matching btw. glbl. and local MC track - kStsisMC, // status bit for matching btw. glbl. and local MC track - kMuchisMC, // status bit for matching btw. glbl. and local MC track - kRichisMC, // status bit for matching btw. glbl. and local MC track - kTofisMC, // status bit for matching btw. glbl. and local MC track + kTrdMCTracks, // number of TRD MC Points in reconstructed track + kRichMCPoints, // number of TRD MC Points in reconstructed track + kTrdTrueHits, // number of true TRD hits in reconstructed track + kTrdDistHits, // number of distorted TRD hits in reconstructed track + kTrdFakeHits, // number of fake TRD hits in reconstructed track + kTrdDistortion, // level of distortion of reconstructed track [0,1] + kStsTrueHits, // number of true STS hits in reconstructed track + kStsDistHits, // number of distorted STS hits in reconstructed track + kStsFakeHits, // number of fake STS hits in reconstructed track + kTrdisMC, // status bit for matching btw. glbl. and local MC track + kMvdisMC, // status bit for matching btw. glbl. and local MC track + kStsisMC, // status bit for matching btw. glbl. and local MC track + kMuchisMC, // status bit for matching btw. glbl. and local MC track + kRichisMC, // status bit for matching btw. glbl. and local MC track + kTofisMC, // status bit for matching btw. glbl. and local MC track kTrackMaxMC, // Pair specific MC variables @@ -365,12 +363,11 @@ public: kZvPrimMC, /// MC vertex [cm] kStsMatches, // number of matched STS tracks kTrdMatches, // number of matched TRD tracks - kVageMatches, // number of MC tracks (STS) matched to multiple reconstr. track - kTotalTRDHitsMC, // size of trd MC point array - kImpactParam, // impact parameter from MC header - kNPrimMC, // primary particles from MC header + kVageMatches, // number of MC tracks (STS) matched to multiple reconstr. track + kTotalTRDHitsMC, // size of trd MC point array + kImpactParam, // impact parameter from MC header + kNPrimMC, // primary particles from MC header kNMaxValuesMC - }; @@ -382,50 +379,33 @@ public: static void InitFitter(); static void Fill(const TObject* particle, Double_t* const values); - static void FillVarMCParticle(const CbmMCTrack* p1, - const CbmMCTrack* p2, - Double_t* const values); + static void FillVarMCParticle(const CbmMCTrack* p1, const CbmMCTrack* p2, Double_t* const values); static void FillSum(const TObject* particle, Double_t* const values); - static void CalculateHitTypes(const PairAnalysisTrack* track, - ECbmModuleId idet, - Int_t* trueH, - Int_t* distH, + static void CalculateHitTypes(const PairAnalysisTrack* track, ECbmModuleId idet, Int_t* trueH, Int_t* distH, Int_t* fakeH); // Setter static void SetFillMap(TBits* map) { fgFillMap = map; } static void SetEvent(PairAnalysisEvent* const ev); - static void - SetEventData(const Double_t data[PairAnalysisVarManager::kNMaxValuesMC]); + static void SetEventData(const Double_t data[PairAnalysisVarManager::kNMaxValuesMC]); static void SetValue(ValueTypes var, Double_t val) { fgData[var] = val; } // Getter static PairAnalysisEvent* GetCurrentEvent() { return fgEvent; } static const CbmKFVertex* GetKFVertex() { return fgKFVertex; } - static const char* GetValueName(Int_t i) { - return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][0] : ""; - } - static const char* GetValueLabel(Int_t i) { - return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][1] : ""; - } - static const char* GetValueUnit(Int_t i) { - return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][2] : ""; - } + static const char* GetValueName(Int_t i) { return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][0] : ""; } + static const char* GetValueLabel(Int_t i) { return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][1] : ""; } + static const char* GetValueUnit(Int_t i) { return (i >= 0 && i < kNMaxValuesMC) ? fgkParticleNames[i][2] : ""; } static Double_t* GetData() { return fgData; } static Double_t GetValue(ValueTypes val) { return fgData[val]; } static UInt_t GetValueType(const char* valname); static UInt_t GetValueTypeMC(UInt_t var); - static UInt_t* GetArray(ValueTypes var0, - ValueTypes var1 = kNMaxValuesMC, - ValueTypes var2 = kNMaxValuesMC, - ValueTypes var3 = kNMaxValuesMC, - ValueTypes var4 = kNMaxValuesMC, - ValueTypes var5 = kNMaxValuesMC, - ValueTypes var6 = kNMaxValuesMC, - ValueTypes var7 = kNMaxValuesMC, - ValueTypes var8 = kNMaxValuesMC, + static UInt_t* GetArray(ValueTypes var0, ValueTypes var1 = kNMaxValuesMC, ValueTypes var2 = kNMaxValuesMC, + ValueTypes var3 = kNMaxValuesMC, ValueTypes var4 = kNMaxValuesMC, + ValueTypes var5 = kNMaxValuesMC, ValueTypes var6 = kNMaxValuesMC, + ValueTypes var7 = kNMaxValuesMC, ValueTypes var8 = kNMaxValuesMC, ValueTypes var9 = kNMaxValuesMC); // data member @@ -437,50 +417,38 @@ private: static const char* fgkParticleNames[kNMaxValuesMC][3]; // variable names //static const char* fgkParticleNamesMC[kNMaxValuesMC]; // MC variable names static PairAnalysisEvent* fgEvent; // current event pointer - static CbmKFVertex* - fgKFVertex; // kf vertex @TODO: OBSOLETE/UNUSED? - static CbmVertex* fgVertexMC; // MC vertex + static CbmKFVertex* fgKFVertex; // kf vertex @TODO: OBSOLETE/UNUSED? + static CbmVertex* fgVertexMC; // MC vertex // static CbmStsKFTrackFitter*fgKFFitter; // kf fitter // static CbmL1PFFitter *fgL1Fitter; // L1 fitter static TBits* fgFillMap; // map for filling variables static Int_t fgCurrentRun; // current run number // fill functions - static Bool_t Req(ValueTypes var) { - return (fgFillMap ? fgFillMap->TestBitNumber(var) : kTRUE); - } + static Bool_t Req(ValueTypes var) { return (fgFillMap ? fgFillMap->TestBitNumber(var) : kTRUE); } static void FillVarConstants(Double_t* const values); - static void FillVarPairAnalysisEvent(const PairAnalysisEvent* event, - Double_t* const values); + static void FillVarPairAnalysisEvent(const PairAnalysisEvent* event, Double_t* const values); static void FillVarVertex(const CbmVertex* vertex, Double_t* const values); - static void FillVarPairAnalysisTrack(const PairAnalysisTrack* track, - Double_t* const values); - static void FillVarGlobalTrack(const CbmGlobalTrack* track, - Double_t* const values); + static void FillVarPairAnalysisTrack(const PairAnalysisTrack* track, Double_t* const values); + static void FillVarGlobalTrack(const CbmGlobalTrack* track, Double_t* const values); static void FillVarStsTrack(const CbmStsTrack* track, Double_t* const values); - static void FillVarMuchTrack(const CbmMuchTrack* track, - Double_t* const values); + static void FillVarMuchTrack(const CbmMuchTrack* track, Double_t* const values); static void FillVarTrdTrack(const CbmTrdTrack* track, Double_t* const values); static void FillVarRichRing(const CbmRichRing* track, Double_t* const values); - static void FillVarMCTrack(const CbmMCTrack* particle, - Double_t* const values); - static void FillVarPairAnalysisPair(const PairAnalysisPair* pair, - Double_t* const values); + static void FillVarMCTrack(const CbmMCTrack* particle, Double_t* const values); + static void FillVarPairAnalysisPair(const PairAnalysisPair* pair, Double_t* const values); static void FillVarMvdHit(const CbmMvdHit* hit, Double_t* const values); static void FillVarStsHit(const CbmStsHit* hit, Double_t* const values); - static void FillVarMuchHit(const CbmMuchPixelHit* hit, - Double_t* const values); + static void FillVarMuchHit(const CbmMuchPixelHit* hit, Double_t* const values); static void FillVarTrdHit(const CbmTrdHit* hit, Double_t* const values); static void FillVarRichHit(const CbmRichHit* hit, Double_t* const values); static void FillVarTofHit(const CbmTofHit* hit, Double_t* const values); static void FillVarPixelHit(const CbmPixelHit* hit, Double_t* const values); - static void FillVarTrdCluster(const CbmTrdCluster* cluster, - Double_t* const values); + static void FillVarTrdCluster(const CbmTrdCluster* cluster, Double_t* const values); static void FillVarMCPoint(const FairMCPoint* hit, Double_t* const values); static void FillSumVarMCPoint(const FairMCPoint* hit, Double_t* const values); - static void FillVarMCHeader(const FairMCEventHeader* header, - Double_t* const values); + static void FillVarMCHeader(const FairMCEventHeader* header, Double_t* const values); // static Double_t GetChiToVertex( const CbmStsTrack *track, CbmVertex *vertex); @@ -493,15 +461,14 @@ private: PairAnalysisVarManager(const PairAnalysisVarManager& c); PairAnalysisVarManager& operator=(const PairAnalysisVarManager& c); - ClassDef( - PairAnalysisVarManager, - 1); // Variables management for event, pair, track, hit infos (static) + ClassDef(PairAnalysisVarManager, + 1); // Variables management for event, pair, track, hit infos (static) }; //Inline functions -inline void PairAnalysisVarManager::Fill(const TObject* object, - Double_t* const values) { +inline void PairAnalysisVarManager::Fill(const TObject* object, Double_t* const values) +{ // // Main function to fill all available variables according to the type // @@ -510,13 +477,11 @@ inline void PairAnalysisVarManager::Fill(const TObject* object, if (!object) return; if (object->IsA() == PairAnalysisEvent::Class()) - FillVarPairAnalysisEvent(static_cast<const PairAnalysisEvent*>(object), - values); + FillVarPairAnalysisEvent(static_cast<const PairAnalysisEvent*>(object), values); else if (object->IsA() == CbmVertex::Class()) FillVarVertex(static_cast<const CbmVertex*>(object), values); else if (object->IsA() == PairAnalysisTrack::Class()) - FillVarPairAnalysisTrack(static_cast<const PairAnalysisTrack*>(object), - values); + FillVarPairAnalysisTrack(static_cast<const PairAnalysisTrack*>(object), values); else if (object->IsA() == CbmGlobalTrack::Class()) FillVarGlobalTrack(static_cast<const CbmGlobalTrack*>(object), values); else if (object->IsA() == CbmStsTrack::Class()) @@ -530,8 +495,7 @@ inline void PairAnalysisVarManager::Fill(const TObject* object, else if (object->IsA() == CbmMCTrack::Class()) FillVarMCTrack(static_cast<const CbmMCTrack*>(object), values); else if (object->InheritsFrom(PairAnalysisPair::Class())) - FillVarPairAnalysisPair(static_cast<const PairAnalysisPair*>(object), - values); + FillVarPairAnalysisPair(static_cast<const PairAnalysisPair*>(object), values); else if (object->IsA() == CbmMvdHit::Class()) FillVarMvdHit(static_cast<const CbmMvdHit*>(object), values); else if (object->IsA() == CbmStsHit::Class()) @@ -553,15 +517,14 @@ inline void PairAnalysisVarManager::Fill(const TObject* object, } -inline void PairAnalysisVarManager::FillSum(const TObject* object, - Double_t* const values) { +inline void PairAnalysisVarManager::FillSum(const TObject* object, Double_t* const values) +{ // // Main function to incremenebt available variables according to the type // //Protect - if (!object) - return; + if (!object) return; else if (object->InheritsFrom(FairMCPoint::Class())) FillSumVarMCPoint(static_cast<const FairMCPoint*>(object), values); else @@ -570,8 +533,8 @@ inline void PairAnalysisVarManager::FillSum(const TObject* object, object->ClassName()); } -inline void PairAnalysisVarManager::ResetArrayData(Int_t to, - Double_t* const values) { +inline void PairAnalysisVarManager::ResetArrayData(Int_t to, Double_t* const values) +{ // Protect if (to >= kNMaxValues) return; // Reset @@ -595,8 +558,8 @@ inline void PairAnalysisVarManager::ResetArrayData(Int_t to, } -inline void PairAnalysisVarManager::ResetArrayDataMC(Int_t to, - Double_t* const values) { +inline void PairAnalysisVarManager::ResetArrayDataMC(Int_t to, Double_t* const values) +{ // Protect if (to >= kNMaxValuesMC) return; // Reset @@ -617,9 +580,8 @@ inline void PairAnalysisVarManager::ResetArrayDataMC(Int_t to, } } -inline void -PairAnalysisVarManager::FillVarPairAnalysisEvent(const PairAnalysisEvent* event, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarPairAnalysisEvent(const PairAnalysisEvent* event, Double_t* const values) +{ // // Fill event information available into an array // @@ -638,9 +600,7 @@ PairAnalysisVarManager::FillVarPairAnalysisEvent(const PairAnalysisEvent* event, values[kVageMatches] = event->GetNumberOfVageMatches(); values[kTotalTRDHits] = event->GetNumberOfHits(ECbmModuleId::kTrd); const Double_t proMass = TDatabasePDG::Instance()->GetParticle(2212)->Mass(); - Double_t beta = - TMath::Sqrt(values[kEbeam] * values[kEbeam] - proMass * proMass) - / (values[kEbeam] + proMass); + Double_t beta = TMath::Sqrt(values[kEbeam] * values[kEbeam] - proMass * proMass) / (values[kEbeam] + proMass); values[kYbeam] = TMath::ATanH(beta); // Printf("beam rapidity new: %f",values[kYbeam]); values[kNTrkMC] = event->GetNumberOfMCTracks(); @@ -654,9 +614,8 @@ PairAnalysisVarManager::FillVarPairAnalysisEvent(const PairAnalysisEvent* event, FillVarMCHeader(event->GetMCHeader(), values); } -inline void -PairAnalysisVarManager::FillVarMCHeader(const FairMCEventHeader* header, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarMCHeader(const FairMCEventHeader* header, Double_t* const values) +{ // // Fill MCheader information available into an array // @@ -680,17 +639,11 @@ PairAnalysisVarManager::FillVarMCHeader(const FairMCEventHeader* header, // Fill mc vertex data member TMatrixFSym mat(3); - fgVertexMC->SetVertex(values[kXvPrimMC], - values[kYvPrimMC], - values[kZvPrimMC], - -999., - 1., - values[kNPrimMC], - mat); + fgVertexMC->SetVertex(values[kXvPrimMC], values[kYvPrimMC], values[kZvPrimMC], -999., 1., values[kNPrimMC], mat); } -inline void PairAnalysisVarManager::FillVarVertex(const CbmVertex* vertex, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarVertex(const CbmVertex* vertex, Double_t* const values) +{ // // Fill vertex information available into an array // @@ -711,9 +664,8 @@ inline void PairAnalysisVarManager::FillVarVertex(const CbmVertex* vertex, } -inline void -PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track, Double_t* const values) +{ // // Fill track information for the all track and its sub tracks // @@ -735,123 +687,123 @@ PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track, values[kP] = track->P(); // Calculate first hit position for sts and mvd - Double_t minSts = 9999.; - Int_t compIndex = 0; - Double_t xref = 0.; - Double_t yref = 0.; - Double_t zref = 0.; - TClonesArray* hits = fgEvent->GetHits(ECbmModuleId::kSts); - TObjArray* PaPaTracks = fgEvent->GetTracks(); + Double_t minSts = 9999.; + Int_t compIndex = 0; + Double_t xref = 0.; + Double_t yref = 0.; + Double_t zref = 0.; + TClonesArray* hits = fgEvent->GetHits(ECbmModuleId::kSts); + TObjArray* PaPaTracks = fgEvent->GetTracks(); CbmStsTrack* ststrack1 = (CbmStsTrack*) track->GetStsTrack(); if (hits /*&& Req(kStsFirstHitPosZ)*/) { for (Int_t ihit = 0; ihit < ststrack1->GetNofStsHits(); ihit++) { - Int_t idx = ststrack1->GetStsHitIndex(ihit); - if(idx > hits->GetEntriesFast()) continue; + Int_t idx = ststrack1->GetStsHitIndex(ihit); + if (idx > hits->GetEntriesFast()) continue; CbmStsHit* hit = (CbmStsHit*) hits->At(idx); if (hit && minSts > hit->GetZ()) { minSts = hit->GetZ(); - xref = hit->GetX(); - yref = hit->GetY(); - zref = hit->GetZ(); + xref = hit->GetX(); + yref = hit->GetY(); + zref = hit->GetZ(); } } } Double_t minStsClosest = 9999.; if (PaPaTracks && hits) { for (Int_t iTracks = 0; iTracks < PaPaTracks->GetEntriesFast(); iTracks++) { - PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(iTracks); - if(!ptrk) continue; + PairAnalysisTrack* ptrk = (PairAnalysisTrack*) PaPaTracks->At(iTracks); + if (!ptrk) continue; CbmStsTrack* ststrack2 = (CbmStsTrack*) ptrk->GetStsTrack(); for (Int_t ihit = 0; ihit < ststrack2->GetNofStsHits(); ihit++) { - Int_t idx = ststrack2->GetStsHitIndex(ihit); - if(idx > hits->GetEntriesFast() || idx < 0) continue; - CbmStsHit* hit = (CbmStsHit*) hits->At(idx); - Double_t xdiff = hit->GetX() - xref; - Double_t ydiff = hit->GetY() - yref; - Double_t zdiff = hit->GetZ() - zref; - Double_t dist = TMath::Sqrt( xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); - if (hit && dist < minStsClosest && dist > 0.) { - minStsClosest = dist; - compIndex = iTracks; - } + Int_t idx = ststrack2->GetStsHitIndex(ihit); + if (idx > hits->GetEntriesFast() || idx < 0) continue; + CbmStsHit* hit = (CbmStsHit*) hits->At(idx); + Double_t xdiff = hit->GetX() - xref; + Double_t ydiff = hit->GetY() - yref; + Double_t zdiff = hit->GetZ() - zref; + Double_t dist = TMath::Sqrt(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); + if (hit && dist < minStsClosest && dist > 0.) { + minStsClosest = dist; + compIndex = iTracks; + } } } - PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(compIndex); + PairAnalysisTrack* ptrk = (PairAnalysisTrack*) PaPaTracks->At(compIndex); PairAnalysisTrack* reftrack = new PairAnalysisTrack(*track); - if(ptrk && reftrack){ + if (ptrk && reftrack) { PairAnalysisPair* pair = new PairAnalysisPairLV(); - if(pair){ - if(reftrack->PdgCode() < 1.e8 && ptrk->PdgCode() < 1.e8) pair->SetTracks(reftrack, reftrack->PdgCode() , ptrk, ptrk->PdgCode() ); - values[kStsHitClosestOpeningAngle] = pair->OpeningAngle(); - values[kStsHitClosestMom] = TMath::Sqrt(ptrk->P() * reftrack->P() ); - delete pair; + if (pair) { + if (reftrack->PdgCode() < 1.e8 && ptrk->PdgCode() < 1.e8) + pair->SetTracks(reftrack, reftrack->PdgCode(), ptrk, ptrk->PdgCode()); + values[kStsHitClosestOpeningAngle] = pair->OpeningAngle(); + values[kStsHitClosestMom] = TMath::Sqrt(ptrk->P() * reftrack->P()); + delete pair; } delete reftrack; } } - Double_t minMvd = 9999.; - xref = 0.; - yref = 0.; - zref = 0.; - hits = fgEvent->GetHits(ECbmModuleId::kMvd); + Double_t minMvd = 9999.; + xref = 0.; + yref = 0.; + zref = 0.; + hits = fgEvent->GetHits(ECbmModuleId::kMvd); CbmStsTrack* mvdtrack1 = (CbmStsTrack*) track->GetStsTrack(); if (hits) { for (Int_t ihit = 0; ihit < mvdtrack1->GetNofMvdHits(); ihit++) { - Int_t idx = mvdtrack1->GetMvdHitIndex(ihit); - if(idx > hits->GetEntriesFast()) continue; + Int_t idx = mvdtrack1->GetMvdHitIndex(ihit); + if (idx > hits->GetEntriesFast()) continue; CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx); if (hit && minMvd > hit->GetZ()) { minMvd = hit->GetZ(); - xref = hit->GetX(); - yref = hit->GetY(); - zref = hit->GetZ(); + xref = hit->GetX(); + yref = hit->GetY(); + zref = hit->GetZ(); } } } Double_t minMvdClosest = 9999.; if (PaPaTracks && hits) { for (Int_t iTracks = 0; iTracks < PaPaTracks->GetEntriesFast(); iTracks++) { - PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(iTracks); - if(!ptrk) continue; + PairAnalysisTrack* ptrk = (PairAnalysisTrack*) PaPaTracks->At(iTracks); + if (!ptrk) continue; CbmStsTrack* mvdtrack2 = (CbmStsTrack*) ptrk->GetStsTrack(); for (Int_t ihit = 0; ihit < mvdtrack2->GetNofMvdHits(); ihit++) { - Int_t idx = mvdtrack2->GetMvdHitIndex(ihit); - if(idx > hits->GetEntriesFast()) continue; - CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx); - Double_t xdiff = hit->GetX() - xref; - Double_t ydiff = hit->GetY() - yref; - Double_t zdiff = hit->GetZ() - zref; - Double_t dist = TMath::Sqrt( xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); - if (hit && dist < minMvdClosest && dist > 0.) { - minMvdClosest = dist; - compIndex = iTracks; - } + Int_t idx = mvdtrack2->GetMvdHitIndex(ihit); + if (idx > hits->GetEntriesFast()) continue; + CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx); + Double_t xdiff = hit->GetX() - xref; + Double_t ydiff = hit->GetY() - yref; + Double_t zdiff = hit->GetZ() - zref; + Double_t dist = TMath::Sqrt(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); + if (hit && dist < minMvdClosest && dist > 0.) { + minMvdClosest = dist; + compIndex = iTracks; + } } } - PairAnalysisTrack *ptrk = (PairAnalysisTrack*) PaPaTracks->At(compIndex); + PairAnalysisTrack* ptrk = (PairAnalysisTrack*) PaPaTracks->At(compIndex); PairAnalysisTrack* reftrack = new PairAnalysisTrack(*track); - if(ptrk && reftrack){ + if (ptrk && reftrack) { PairAnalysisPair* pair = new PairAnalysisPairLV(); - if(pair){ - if(reftrack->PdgCode() < 1.e8 && ptrk->PdgCode() < 1.e8) pair->SetTracks(reftrack, reftrack->PdgCode() , ptrk, ptrk->PdgCode() ); - values[kMvdHitClosestOpeningAngle] = pair->OpeningAngle(); - values[kMvdHitClosestMom] = TMath::Sqrt(ptrk->P() * reftrack->P() ); - delete pair; + if (pair) { + if (reftrack->PdgCode() < 1.e8 && ptrk->PdgCode() < 1.e8) + pair->SetTracks(reftrack, reftrack->PdgCode(), ptrk, ptrk->PdgCode()); + values[kMvdHitClosestOpeningAngle] = pair->OpeningAngle(); + values[kMvdHitClosestMom] = TMath::Sqrt(ptrk->P() * reftrack->P()); + delete pair; } delete reftrack; - } } - + values[kStsHitClosest] = minStsClosest; values[kMvdHitClosest] = minMvdClosest; - - values[kRichDistance] = - 1.; //CbmRichUtil::GetRingTrackDistance(track->GetGlobalIndex()); - values[kRichPidANN] = CbmRichElectronIdAnn::GetInstance().CalculateAnnValue( - track->GetGlobalIndex(), values[kP]); // fgRichElIdA + + values[kRichDistance] = 1.; //CbmRichUtil::GetRingTrackDistance(track->GetGlobalIndex()); + values[kRichPidANN] = + CbmRichElectronIdAnn::GetInstance().CalculateAnnValue(track->GetGlobalIndex(), values[kP]); // fgRichElIdA // acceptance defintions FairTrackParam* param = NULL; @@ -863,30 +815,24 @@ PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track, values[kMvdFirstExtY] = param->GetY(); Double_t innerLimit = 0.5; //cm, TODO: no hardcoding Double_t outerLimit = 2.5; //cm - values[kMvdhasEntr] = ((TMath::Abs(param->GetX()) > innerLimit - && TMath::Abs(param->GetX()) < outerLimit + values[kMvdhasEntr] = ((TMath::Abs(param->GetX()) > innerLimit && TMath::Abs(param->GetX()) < outerLimit && TMath::Abs(param->GetY()) < outerLimit) - || (TMath::Abs(param->GetY()) > innerLimit - && TMath::Abs(param->GetY()) < outerLimit + || (TMath::Abs(param->GetY()) > innerLimit && TMath::Abs(param->GetY()) < outerLimit && TMath::Abs(param->GetX()) < outerLimit)); } // mc Fill(track->GetMCTrack(), values); // this contains particle infos as well - if(track->GetMCTrack()){ - values[kPRes] = TMath::Abs(values[kP]-track->GetMCTrack()->GetP()) / track->GetMCTrack()->GetP(); + if (track->GetMCTrack()) { + values[kPRes] = TMath::Abs(values[kP] - track->GetMCTrack()->GetP()) / track->GetMCTrack()->GetP(); } - - if (track->GetTrackMatch( - ECbmModuleId:: - kTrd)) { // track match specific (accessors via CbmTrackMatchNew) - values[kTrdMCTracks] = track->GetTrackMatch(ECbmModuleId::kTrd) - ->GetNofLinks(); //number of different! mc tracks + + if (track->GetTrackMatch(ECbmModuleId::kTrd)) { // track match specific (accessors via CbmTrackMatchNew) + values[kTrdMCTracks] = track->GetTrackMatch(ECbmModuleId::kTrd)->GetNofLinks(); //number of different! mc tracks Int_t trueHits = 0, distHits = 0, fakeHits = 0; - CalculateHitTypes( - track, ECbmModuleId::kTrd, &trueHits, &distHits, &fakeHits); + CalculateHitTypes(track, ECbmModuleId::kTrd, &trueHits, &distHits, &fakeHits); values[kTrdTrueHits] = trueHits; values[kTrdDistHits] = distHits; @@ -897,30 +843,22 @@ PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track, } if (track->GetTrackMatch(ECbmModuleId::kSts)) { Int_t trueHits = 0, distHits = 0, fakeHits = 0; - CalculateHitTypes( - track, ECbmModuleId::kSts, &trueHits, &distHits, &fakeHits); + CalculateHitTypes(track, ECbmModuleId::kSts, &trueHits, &distHits, &fakeHits); values[kStsTrueHits] = trueHits; values[kStsDistHits] = distHits; values[kStsFakeHits] = fakeHits; } if (track->GetTrackMatch(ECbmModuleId::kRich)) { - values[kRichMCPoints] = - track->GetTrackMatch(ECbmModuleId::kRich)->GetNofLinks(); + values[kRichMCPoints] = track->GetTrackMatch(ECbmModuleId::kRich)->GetNofLinks(); } - values[kStsisMC] = - track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kSts))); - values[kMuchisMC] = - track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kMuch))); - values[kTrdisMC] = - track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kTrd))); - values[kRichisMC] = - track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kRich))); - values[kMvdisMC] = - track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kMvd))); - values[kTofisMC] = - track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kTof))); - values[kWeight] = track->GetWeight(); + values[kStsisMC] = track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kSts))); + values[kMuchisMC] = track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kMuch))); + values[kTrdisMC] = track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kTrd))); + values[kRichisMC] = track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kRich))); + values[kMvdisMC] = track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kMvd))); + values[kTofisMC] = track->TestBit(BIT(14 + ToIntegralType(ECbmModuleId::kTof))); + values[kWeight] = track->GetWeight(); // Reset ResetArrayData(kParticleMax, values); @@ -938,22 +876,20 @@ PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track, values[kZv] = track->Zv(); values[kOneOverPt] = (track->Pt() > 1.0e-3 ? track->OneOverPt() : 0.0); - values[kPhi] = - (TMath::IsNaN(track->Phi()) ? -999. : TVector2::Phi_0_2pi(track->Phi())); - values[kTheta] = track->Theta(); + values[kPhi] = (TMath::IsNaN(track->Phi()) ? -999. : TVector2::Phi_0_2pi(track->Phi())); + values[kTheta] = track->Theta(); // values[kEta] = track->Eta(); - values[kY] = track->Y() - values[kYbeam]; - values[kYlab] = track->Y(); - values[kE] = track->E(); - values[kM] = track->M(); - values[kCharge] = track->Charge(); - values[kMt] = TMath::Sqrt(values[kMPair] * values[kMPair] + values[kPtSq]); - values[kPdgCode] = track->PdgCode(); + values[kY] = track->Y() - values[kYbeam]; + values[kYlab] = track->Y(); + values[kE] = track->E(); + values[kM] = track->M(); + values[kCharge] = track->Charge(); + values[kMt] = TMath::Sqrt(values[kMPair] * values[kMPair] + values[kPtSq]); + values[kPdgCode] = track->PdgCode(); values[kChi2NDFtoVtx] = track->ChiToVertex(); - values[kImpactParXY] = - TMath::Sqrt(TMath::Power(TMath::Abs(values[kXv] - values[kXvPrim]), 2) - + TMath::Power(TMath::Abs(values[kYv] - values[kYvPrim]), 2)); - values[kImpactParZ] = TMath::Abs(values[kZv] - values[kZvPrim]); + values[kImpactParXY] = TMath::Sqrt(TMath::Power(TMath::Abs(values[kXv] - values[kXvPrim]), 2) + + TMath::Power(TMath::Abs(values[kYv] - values[kYvPrim]), 2)); + values[kImpactParZ] = TMath::Abs(values[kZv] - values[kZvPrim]); // special /// printf("track length %f \n",values[kTrackLength]); @@ -964,9 +900,8 @@ PairAnalysisVarManager::FillVarPairAnalysisTrack(const PairAnalysisTrack* track, values[kRndmTrack] = gRandom->Rndm(); } -inline void -PairAnalysisVarManager::FillVarGlobalTrack(const CbmGlobalTrack* track, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarGlobalTrack(const CbmGlobalTrack* track, Double_t* const values) +{ // // Fill track information for the global track into array // @@ -975,9 +910,8 @@ PairAnalysisVarManager::FillVarGlobalTrack(const CbmGlobalTrack* track, if (!track) return; // Set - values[kTrackChi2NDF] = - (track->GetNDF() > 0. ? track->GetChi2() / track->GetNDF() : -999.); - values[kTrackLength] = track->GetLength(); // cm + values[kTrackChi2NDF] = (track->GetNDF() > 0. ? track->GetChi2() / track->GetNDF() : -999.); + values[kTrackLength] = track->GetLength(); // cm // accessors via first FairTrackParam TVector3 mom; track->GetParamFirst()->Momentum(mom); @@ -989,8 +923,8 @@ PairAnalysisVarManager::FillVarGlobalTrack(const CbmGlobalTrack* track, values[kCharge] = (track->GetParamFirst()->GetQp() > 0. ? +1. : -1.); } -inline void PairAnalysisVarManager::FillVarRichRing(const CbmRichRing* track, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarRichRing(const CbmRichRing* track, Double_t* const values) +{ // // Fill track information for the trd track into array // @@ -1003,13 +937,12 @@ inline void PairAnalysisVarManager::FillVarRichRing(const CbmRichRing* track, // values[kRichPidANN] = -1; // fgRichElIdAnn->DoSelect(const_cast<CbmRichRing*>(track), values[kP]); // PID value ANN method values[kRichHitsOnRing] = track->GetNofHitsOnRing(); values[kRichHits] = track->GetNofHits(); - values[kRichChi2NDF] = - (track->GetNDF() > 0. ? track->GetChi2() / track->GetNDF() : -999.); - values[kRichRadius] = track->GetRadius(); - values[kRichAxisA] = track->GetAaxis(); - values[kRichAxisB] = track->GetBaxis(); - values[kRichCenterX] = track->GetCenterX(); - values[kRichCenterY] = track->GetCenterY(); + values[kRichChi2NDF] = (track->GetNDF() > 0. ? track->GetChi2() / track->GetNDF() : -999.); + values[kRichRadius] = track->GetRadius(); + values[kRichAxisA] = track->GetAaxis(); + values[kRichAxisB] = track->GetBaxis(); + values[kRichCenterX] = track->GetCenterX(); + values[kRichCenterY] = track->GetCenterY(); // CbmRichRing::GetDistance() method is no longer supported // If you wan to use cuts update code using CbmRichUtil::GetRingTrackDistance() // values[kRichDistance] = 1.; @@ -1018,8 +951,8 @@ inline void PairAnalysisVarManager::FillVarRichRing(const CbmRichRing* track, values[kRichPhi] = track->GetPhi(); } -inline void PairAnalysisVarManager::FillVarTrdTrack(const CbmTrdTrack* track, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarTrdTrack(const CbmTrdTrack* track, Double_t* const values) +{ // // Fill track information for the trd track into array // @@ -1043,11 +976,9 @@ inline void PairAnalysisVarManager::FillVarTrdTrack(const CbmTrdTrack* track, } // Set - values[kTrdSignal] = - track->GetELoss() - * 1.e+6; //GeV->keV, NOTE: see corrections,normalisation below (angles,#hits) - values[kTrdPidWkn] = track->GetPidWkn(); // PID value Wkn method - values[kTrdPidANN] = track->GetPidANN(); // PID value ANN method + values[kTrdSignal] = track->GetELoss() * 1.e+6; //GeV->keV, NOTE: see corrections,normalisation below (angles,#hits) + values[kTrdPidWkn] = track->GetPidWkn(); // PID value Wkn method + values[kTrdPidANN] = track->GetPidANN(); // PID value ANN method // PID value Likelihood method values[kTrdPidLikeEL] = track->GetPidLikeEL(); values[kTrdPidLikePI] = track->GetPidLikePI(); @@ -1055,9 +986,8 @@ inline void PairAnalysisVarManager::FillVarTrdTrack(const CbmTrdTrack* track, values[kTrdPidLikePR] = track->GetPidLikePR(); values[kTrdPidLikeMU] = track->GetPidLikeMU(); // accessors via CbmTrack - values[kTrdHits] = track->GetNofHits(); - values[kTrdChi2NDF] = - (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.); + values[kTrdHits] = track->GetNofHits(); + values[kTrdChi2NDF] = (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.); // accessors via first FairTrackParam TVector3 mom; track->GetParamFirst()->Momentum(mom); @@ -1069,8 +999,7 @@ inline void PairAnalysisVarManager::FillVarTrdTrack(const CbmTrdTrack* track, values[kTrdThetaCorr] = 1. / mom.CosTheta(); values[kTrdPhiCorr] = 1. / TMath::Cos(mom.Phi()); // apply correction and normalisation - values[kTrdSignal] /= - values[kTrdHits]; // * values[kTrdThetaCorr] * values[kTrdPhiCorr]); + values[kTrdSignal] /= values[kTrdHits]; // * values[kTrdThetaCorr] * values[kTrdPhiCorr]); track->GetParamLast()->Momentum(mom); values[kTrdPout] = mom.Mag(); @@ -1083,8 +1012,8 @@ inline void PairAnalysisVarManager::FillVarTrdTrack(const CbmTrdTrack* track, // values[kTrdTrackLength] = (pos2!=pos1 ? (pos2-=pos1).Mag() : 1.); } -inline void PairAnalysisVarManager::FillVarStsTrack(const CbmStsTrack* track, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarStsTrack(const CbmStsTrack* track, Double_t* const values) +{ // // Fill track information for the Sts track into array // @@ -1122,8 +1051,7 @@ inline void PairAnalysisVarManager::FillVarStsTrack(const CbmStsTrack* track, // accessors via CbmTrack values[kStsHits] = track->GetNofStsHits(); values[kStsMvdHits] = track->GetNofStsHits() + track->GetNofMvdHits(); - values[kStsChi2NDF] = - (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.); + values[kStsChi2NDF] = (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.); // accessors via first FairTrackParam TVector3 mom; track->GetParamFirst()->Momentum(mom); @@ -1142,8 +1070,8 @@ inline void PairAnalysisVarManager::FillVarStsTrack(const CbmStsTrack* track, values[kStsFirstHitPosZ] = minSts; } -inline void PairAnalysisVarManager::FillVarMuchTrack(const CbmMuchTrack* track, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarMuchTrack(const CbmMuchTrack* track, Double_t* const values) +{ // // Fill track information for the Much track into array // @@ -1156,20 +1084,18 @@ inline void PairAnalysisVarManager::FillVarMuchTrack(const CbmMuchTrack* track, for (Int_t ihit = 0; ihit < track->GetNofHits(); ihit++) { // Int_t idx = track->GetHitIndex(ihit); Int_t hitType = track->GetHitType(ihit); - if (hitType == ToIntegralType(ECbmDataType::kMuchPixelHit)) - values[kMuchHitsPixel]++; + if (hitType == ToIntegralType(ECbmDataType::kMuchPixelHit)) values[kMuchHitsPixel]++; } // Set // accessors via CbmTrack - values[kMuchHits] = track->GetNofHits(); - values[kMuchChi2NDF] = - (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.); + values[kMuchHits] = track->GetNofHits(); + values[kMuchChi2NDF] = (track->GetNDF() > 0. ? track->GetChiSq() / track->GetNDF() : -999.); } -inline void PairAnalysisVarManager::FillVarMCParticle(const CbmMCTrack* p1, - const CbmMCTrack* p2, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarMCParticle(const CbmMCTrack* p1, const CbmMCTrack* p2, + Double_t* const values) +{ // // fill 2 track information starting from MC legs // @@ -1198,12 +1124,11 @@ inline void PairAnalysisVarManager::FillVarMCParticle(const CbmMCTrack* p1, if (mother) { FillVarMCTrack(mother, values); - values[kStsMvdFirstDaughterMC] = - p1->GetNPoints(ECbmModuleId::kSts) + p1->GetNPoints(ECbmModuleId::kMvd); - values[kStsMvdSecondDaughterMC] = - p2->GetNPoints(ECbmModuleId::kSts) + p2->GetNPoints(ECbmModuleId::kMvd); + values[kStsMvdFirstDaughterMC] = p1->GetNPoints(ECbmModuleId::kSts) + p1->GetNPoints(ECbmModuleId::kMvd); + values[kStsMvdSecondDaughterMC] = p2->GetNPoints(ECbmModuleId::kSts) + p2->GetNPoints(ECbmModuleId::kMvd); // FillVarMCTrack(smother, values); - } else { + } + else { values[kPxMC] = pair->Px(); values[kPyMC] = pair->Py(); values[kPzMC] = pair->Pz(); @@ -1216,18 +1141,14 @@ inline void PairAnalysisVarManager::FillVarMCParticle(const CbmMCTrack* p1, if (mother) if (mother->GetPdgCode() == 22) std::cout << pair->Xv() << " " << pair->Xv() * pair->Xv() << " " - << TMath::Sqrt(pair->Xv() * pair->Xv() - + pair->Yv() * pair->Yv()) - << " " << pair->Zv() << std::endl; - values[kRvMC] = - TMath::Sqrt(pair->Xv() * pair->Xv() + pair->Yv() * pair->Yv()); + << TMath::Sqrt(pair->Xv() * pair->Xv() + pair->Yv() * pair->Yv()) << " " << pair->Zv() << std::endl; + values[kRvMC] = TMath::Sqrt(pair->Xv() * pair->Xv() + pair->Yv() * pair->Yv()); values[kZvMC] = pair->Zv(); //TODO values[kTMC] = 0.; values[kOneOverPtMC] = (pair->Pt() > 1.0e-3 ? pair->OneOverPt() : 0.0); - values[kPhiMC] = - (TMath::IsNaN(pair->Phi()) ? -999. : TVector2::Phi_0_2pi(pair->Phi())); - values[kThetaMC] = pair->Theta(); + values[kPhiMC] = (TMath::IsNaN(pair->Phi()) ? -999. : TVector2::Phi_0_2pi(pair->Phi())); + values[kThetaMC] = pair->Theta(); // values[kEtaMC] = pair->Eta(); values[kYMC] = pair->Y() - values[kYbeam]; values[kYlabMC] = pair->Y(); @@ -1235,9 +1156,8 @@ inline void PairAnalysisVarManager::FillVarMCParticle(const CbmMCTrack* p1, values[kMMC] = pair->M(); values[kChargeMC] = p1->GetCharge() * p2->GetCharge(); } - values[kOpeningAngleMC] = pair->OpeningAngle(); - values[kCosPointingAngleMC] = - fgVertexMC ? pair->GetCosPointingAngle(fgVertexMC) : -1; + values[kOpeningAngleMC] = pair->OpeningAngle(); + values[kCosPointingAngleMC] = fgVertexMC ? pair->GetCosPointingAngle(fgVertexMC) : -1; // values[kPhivPairMC] = pair->PhivPair(1.); @@ -1245,8 +1165,8 @@ inline void PairAnalysisVarManager::FillVarMCParticle(const CbmMCTrack* p1, delete pair; } -inline void PairAnalysisVarManager::FillVarMCTrack(const CbmMCTrack* particle, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarMCTrack(const CbmMCTrack* particle, Double_t* const values) +{ // // fill particle information from MC leg // @@ -1273,20 +1193,17 @@ inline void PairAnalysisVarManager::FillVarMCTrack(const CbmMCTrack* particle, // if(particle->GetPdgCode() == 11 || particle->GetPdgCode() == -11) std::cout<< particle->GetPdgCode() <<" " << mother->GetPdgCode() <<" "<< particle->GetGeantProcessId() <<std::endl; if (mother->GetPdgCode() == 22) values[kPdgCodeMother] = 1; if (mother->GetPdgCode() == 111) values[kPdgCodeMother] = 3; - if (mother->GetPdgCode() == 211 || mother->GetPdgCode() == -211) - values[kPdgCodeMother] = 5; + if (mother->GetPdgCode() == 211 || mother->GetPdgCode() == -211) values[kPdgCodeMother] = 5; if (mother->GetPdgCode() == 2212) values[kPdgCodeMother] = 7; - if (mother->GetPdgCode() == 99009011 || mother->GetPdgCode() == 99009911) - values[kPdgCodeMother] = 9; + if (mother->GetPdgCode() == 99009011 || mother->GetPdgCode() == 99009911) values[kPdgCodeMother] = 9; } values[kEMotherMC] = (mother ? mother->GetEnergy() : -99999.); CbmMCTrack* granni = 0x0; if (mother) granni = mc->GetMCTrackMother(mother); - values[kPdgCodeGrandMother] = - (granni ? granni->GetPdgCode() : -99999.); //mc->GetMotherPDG(mother); - values[kGeantId] = particle->GetGeantProcessId(); + values[kPdgCodeGrandMother] = (granni ? granni->GetPdgCode() : -99999.); //mc->GetMotherPDG(mother); + values[kGeantId] = particle->GetGeantProcessId(); values[kPxMC] = particle->GetPx(); values[kPyMC] = particle->GetPy(); @@ -1299,8 +1216,8 @@ inline void PairAnalysisVarManager::FillVarMCTrack(const CbmMCTrack* particle, values[kYvMC] = particle->GetStartY(); values[kZvMC] = particle->GetStartZ(); // if(mother) if(mother->GetPdgCode() == 22) std::cout<<particle->GetStartX()<<" "<<particle->GetStartX()*particle->GetStartX()<<" "<< TMath::Sqrt( particle->GetStartX()*particle->GetStartX() + particle->GetStartY()*particle->GetStartY() ) <<" " << particle->GetStartZ()<<std::endl; - values[kRvMC] = TMath::Sqrt(particle->GetStartX() * particle->GetStartX() - + particle->GetStartY() * particle->GetStartY()); + values[kRvMC] = + TMath::Sqrt(particle->GetStartX() * particle->GetStartX() + particle->GetStartY() * particle->GetStartY()); TVector3 vtx; particle->GetStartVertex(vtx); @@ -1310,11 +1227,9 @@ inline void PairAnalysisVarManager::FillVarMCTrack(const CbmMCTrack* particle, TLorentzVector mom; if (particle) particle->Get4Momentum(mom); - values[kOneOverPtMC] = - (particle->GetPt() > 1.0e-3 ? 1. / particle->GetPt() : 0.0); - values[kPhiMC] = - (TMath::IsNaN(mom.Phi()) ? -999. : TVector2::Phi_0_2pi(mom.Phi())); - values[kThetaMC] = mom.Theta(); + values[kOneOverPtMC] = (particle->GetPt() > 1.0e-3 ? 1. / particle->GetPt() : 0.0); + values[kPhiMC] = (TMath::IsNaN(mom.Phi()) ? -999. : TVector2::Phi_0_2pi(mom.Phi())); + values[kThetaMC] = mom.Theta(); // values[kEtaMC] = mom.Eta(); values[kYMC] = particle->GetRapidity() - values[kYbeam]; ; @@ -1332,15 +1247,13 @@ inline void PairAnalysisVarManager::FillVarMCTrack(const CbmMCTrack* particle, values[kTrdHitsMC] = particle->GetNPoints(ECbmModuleId::kTrd); values[kMvdHitsMC] = particle->GetNPoints(ECbmModuleId::kMvd); values[kStsHitsMC] = particle->GetNPoints(ECbmModuleId::kSts); - values[kStsMvdHitsMC] = particle->GetNPoints(ECbmModuleId::kSts) - + particle->GetNPoints(ECbmModuleId::kMvd); - values[kTofHitsMC] = particle->GetNPoints(ECbmModuleId::kTof); - values[kMuchHitsMC] = particle->GetNPoints(ECbmModuleId::kMuch); + values[kStsMvdHitsMC] = particle->GetNPoints(ECbmModuleId::kSts) + particle->GetNPoints(ECbmModuleId::kMvd); + values[kTofHitsMC] = particle->GetNPoints(ECbmModuleId::kTof); + values[kMuchHitsMC] = particle->GetNPoints(ECbmModuleId::kMuch); } -inline void -PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, Double_t* const values) +{ // // Fill pair information available for histogramming into an array // @@ -1357,9 +1270,7 @@ PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, // first fill mc info to avoid kWeight beeing reset // TODO: check if it makes sence only for pairtypes of SE - FillVarMCParticle(pair->GetFirstDaughter()->GetMCTrack(), - pair->GetSecondDaughter()->GetMCTrack(), - values); + FillVarMCParticle(pair->GetFirstDaughter()->GetMCTrack(), pair->GetSecondDaughter()->GetMCTrack(), values); // Set values[kPairType] = pair->GetType(); @@ -1376,16 +1287,15 @@ PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, values[kZv] = pair->Zv(); values[kOneOverPt] = (pair->Pt() > 1.0e-3 ? pair->OneOverPt() : 0.0); - values[kPhi] = - (TMath::IsNaN(pair->Phi()) ? -999. : TVector2::Phi_0_2pi(pair->Phi())); - values[kTheta] = pair->Theta(); + values[kPhi] = (TMath::IsNaN(pair->Phi()) ? -999. : TVector2::Phi_0_2pi(pair->Phi())); + values[kTheta] = pair->Theta(); // values[kEta] = pair->Eta(); values[kY] = pair->Y() - values[kYbeam]; values[kYlab] = pair->Y(); values[kE] = pair->E(); values[kM] = pair->M(); values[kCharge] = pair->Charge(); - values[kMt] = TMath::Sqrt(values[kMPair] * values[kMPair] + values[kPtSq]); + values[kMt] = TMath::Sqrt(values[kMPair] * values[kMPair] + values[kPtSq]); ///TODO: check /* values[kPdgCode]=-1; */ @@ -1393,222 +1303,241 @@ PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, /* values[kPdgCodeGrandMother]=-1; */ values[kWeight] = pair->GetWeight(); - if(pair->GetFirstDaughter()->GetMCTrack()){ - PairAnalysisMC *mc = PairAnalysisMC::Instance(); + if (pair->GetFirstDaughter()->GetMCTrack()) { + PairAnalysisMC* mc = PairAnalysisMC::Instance(); if (!mc->HasMC()) return; - + // Set - CbmMCTrack* mother=0x0; - Int_t mLabel1 = pair->GetFirstDaughter()->GetMCTrack()->GetMotherId(); - mother = mc->GetMCTrackFromMCEvent(mLabel1); - Int_t motherCode = (mother ? mother->GetPdgCode() : -99999. ); - Int_t secondMother = -99999.; - Int_t mLabel2 = -1; - if(pair->GetSecondDaughter()->GetMCTrack()){ - CbmMCTrack* sm=0x0; - mLabel2 = pair->GetSecondDaughter()->GetMCTrack()->GetMotherId(); - sm = mc->GetMCTrackFromMCEvent(mLabel2); - secondMother = (sm ? sm->GetPdgCode() : -99999. ); + CbmMCTrack* mother = 0x0; + Int_t mLabel1 = pair->GetFirstDaughter()->GetMCTrack()->GetMotherId(); + mother = mc->GetMCTrackFromMCEvent(mLabel1); + Int_t motherCode = (mother ? mother->GetPdgCode() : -99999.); + Int_t secondMother = -99999.; + Int_t mLabel2 = -1; + if (pair->GetSecondDaughter()->GetMCTrack()) { + CbmMCTrack* sm = 0x0; + mLabel2 = pair->GetSecondDaughter()->GetMCTrack()->GetMotherId(); + sm = mc->GetMCTrackFromMCEvent(mLabel2); + secondMother = (sm ? sm->GetPdgCode() : -99999.); } - if( values[kThermalScaling] == 3){ - Double_t mass[170] = {0.0195,0.0395,0.0595,0.0795,0.0995,0.1195,0.1395,0.1595,0.1795,0.1995, - 0.2195,0.2395,0.2595,0.2795,0.2995,0.3195,0.3395,0.3595,0.3795,0.3995, - 0.4195,0.4395,0.4595,0.4795,0.4995,0.5195,0.5395,0.5595,0.5795,0.5995, - 0.6195,0.6395,0.6595,0.6795,0.6995,0.7195,0.7395,0.7595,0.7795,0.7995, - 0.8195,0.8395,0.8595,0.8795,0.8995,0.9195,0.9395,0.9595,0.9795,0.9995, - 1.0195,1.0395,1.0595,1.0795,1.0995,1.1195,1.1395,1.1595,1.1795,1.1995, - 1.2195,1.2395,1.2595,1.2795,1.2995,1.3195,1.3395,1.3595,1.3795,1.3995, - 1.4195,1.4395,1.4595,1.4795,1.4995,1.5195,1.5395,1.5595,1.5795,1.5995, - 1.6195,1.6395,1.6595,1.6795,1.6995,1.7195,1.7395,1.7595,1.7795,1.7995, - 1.8195,1.8395,1.8595,1.8795,1.8995,1.9195,1.9395,1.9595,1.9795,1.9995, - 2.0195,2.0395,2.0595,2.0795,2.0995,2.1195,2.1395,2.1595,2.1795,2.1995, - 2.2195,2.2395,2.2595,2.2795,2.2995,2.3195,2.3395,2.3595,2.3795,2.3995, - 2.4195,2.4395,2.4595,2.4795,2.4995,2.5195,2.5395,2.5595,2.5795,2.5995, - 2.6195,2.6395,2.6595,2.6795,2.6995,2.7195,2.7395,2.7595,2.7795,2.7995, - 2.8195,2.8395,2.8595,2.8795,2.8995,2.9195,2.9395,2.9595,2.9795,2.9995, - 3.0195,3.0395,3.0595,3.0795,3.0995,3.1195,3.1395,3.1595,3.1795,3.1995, - 3.2195,3.2395,3.2595,3.2795,3.2995,3.3195,3.3395,3.3595,3.3795,3.3995}; - - if(motherCode == 99009011 || secondMother == 99009011){ - //inmed 12AGeV - Double_t scale[170] = {41.706,18.918,11.465,8.4388,5.9176,4.9025,3.8087,3.0387,2.5856,2.1142, - 1.7603,1.5327,1.28,1.1579,1.0367,0.89355,0.81317,0.71582,0.65863,0.59678, - 0.53702,0.45378,0.41238,0.37502,0.33593,0.28791,0.26352,0.23939,0.21167,0.19479, - 0.19204,0.17492,0.15811,0.15479,0.14935,0.13803,0.1354,0.11993,0.1046,0.08226, - 0.073183,0.055433,0.043467,0.033975,0.028025,0.021504,0.016863,0.014108,0.01094,0.0088095, - 0.007324,0.0057162,0.0046817,0.0037459,0.0030017,0.0024459,0.0020671,0.0016089,0.0013754,0.0011223, - 0.00096256,0.00081647,0.00072656,0.00060776,0.00051243,0.00045705,0.00039636,0.00036259,0.00033248,0.0002953, - 0.00027328,0.00023776,0.00022163,0.00019852,0.000186,0.00016846,0.00015469,0.00014169,0.00013343,0.00011594, - 0.00010722,0.00010205,9.1907e-05,8.3718e-05,7.5457e-05,6.7192e-05,6.2202e-05,5.7372e-05,4.8314e-05,4.5502e-05, - 4.1334e-05,3.7429e-05,3.2131e-05,3.0103e-05,2.6125e-05,2.3601e-05,2.1167e-05,1.94e-05,1.7025e-05,1.5496e-05, - 1.3704e-05,1.1866e-05,1.1135e-05,9.8842e-06,8.9101e-06,7.9225e-06,7.0706e-06,6.3536e-06,5.3786e-06,4.7179e-06, - 4.2128e-06,4.0015e-06,3.4118e-06,3.1864e-06,2.734e-06,2.3844e-06,2.173e-06,1.8774e-06,1.6468e-06,1.501e-06, - 1.3597e-06,1.2113e-06,1.0384e-06,9.4105e-07,8.4223e-07,7.434e-07,6.5049e-07,5.8824e-07,5.3603e-07,4.6756e-07, - 4.1173e-07,3.5872e-07,3.2764e-07,2.9889e-07,2.5989e-07,2.219e-07,1.9468e-07,1.816e-07,1.5707e-07,1.3565e-07, - 1.2619e-07,1.0919e-07,1.0071e-07,8.4632e-08,7.6459e-08,6.829e-08,6.2046e-08,5.5335e-08,4.5937e-08,4.2426e-08, - 3.567e-08,3.4051e-08,2.9627e-08,2.5249e-08,2.2767e-08,2.1054e-08,1.7873e-08,1.574e-08,1.3713e-08,1.23e-08, - 1.1045e-08,9.5536e-09,8.5859e-09,7.7217e-09,6.9958e-09,6.0992e-09,5.3453e-09,4.7659e-09,4.3313e-09,3.6575e-09}; - TSpline3 *weight = new TSpline3("inmedwghts",mass,scale,170); - Double_t corrw = weight->Eval(values[PairAnalysisVarManager::kM]); - values[kWeight]*=corrw; - delete weight; + if (values[kThermalScaling] == 3) { + Double_t mass[170] = { + 0.0195, 0.0395, 0.0595, 0.0795, 0.0995, 0.1195, 0.1395, 0.1595, 0.1795, 0.1995, 0.2195, 0.2395, 0.2595, 0.2795, + 0.2995, 0.3195, 0.3395, 0.3595, 0.3795, 0.3995, 0.4195, 0.4395, 0.4595, 0.4795, 0.4995, 0.5195, 0.5395, 0.5595, + 0.5795, 0.5995, 0.6195, 0.6395, 0.6595, 0.6795, 0.6995, 0.7195, 0.7395, 0.7595, 0.7795, 0.7995, 0.8195, 0.8395, + 0.8595, 0.8795, 0.8995, 0.9195, 0.9395, 0.9595, 0.9795, 0.9995, 1.0195, 1.0395, 1.0595, 1.0795, 1.0995, 1.1195, + 1.1395, 1.1595, 1.1795, 1.1995, 1.2195, 1.2395, 1.2595, 1.2795, 1.2995, 1.3195, 1.3395, 1.3595, 1.3795, 1.3995, + 1.4195, 1.4395, 1.4595, 1.4795, 1.4995, 1.5195, 1.5395, 1.5595, 1.5795, 1.5995, 1.6195, 1.6395, 1.6595, 1.6795, + 1.6995, 1.7195, 1.7395, 1.7595, 1.7795, 1.7995, 1.8195, 1.8395, 1.8595, 1.8795, 1.8995, 1.9195, 1.9395, 1.9595, + 1.9795, 1.9995, 2.0195, 2.0395, 2.0595, 2.0795, 2.0995, 2.1195, 2.1395, 2.1595, 2.1795, 2.1995, 2.2195, 2.2395, + 2.2595, 2.2795, 2.2995, 2.3195, 2.3395, 2.3595, 2.3795, 2.3995, 2.4195, 2.4395, 2.4595, 2.4795, 2.4995, 2.5195, + 2.5395, 2.5595, 2.5795, 2.5995, 2.6195, 2.6395, 2.6595, 2.6795, 2.6995, 2.7195, 2.7395, 2.7595, 2.7795, 2.7995, + 2.8195, 2.8395, 2.8595, 2.8795, 2.8995, 2.9195, 2.9395, 2.9595, 2.9795, 2.9995, 3.0195, 3.0395, 3.0595, 3.0795, + 3.0995, 3.1195, 3.1395, 3.1595, 3.1795, 3.1995, 3.2195, 3.2395, 3.2595, 3.2795, 3.2995, 3.3195, 3.3395, 3.3595, + 3.3795, 3.3995}; + + if (motherCode == 99009011 || secondMother == 99009011) { + //inmed 12AGeV + Double_t scale[170] = { + 41.706, 18.918, 11.465, 8.4388, 5.9176, 4.9025, 3.8087, 3.0387, 2.5856, + 2.1142, 1.7603, 1.5327, 1.28, 1.1579, 1.0367, 0.89355, 0.81317, 0.71582, + 0.65863, 0.59678, 0.53702, 0.45378, 0.41238, 0.37502, 0.33593, 0.28791, 0.26352, + 0.23939, 0.21167, 0.19479, 0.19204, 0.17492, 0.15811, 0.15479, 0.14935, 0.13803, + 0.1354, 0.11993, 0.1046, 0.08226, 0.073183, 0.055433, 0.043467, 0.033975, 0.028025, + 0.021504, 0.016863, 0.014108, 0.01094, 0.0088095, 0.007324, 0.0057162, 0.0046817, 0.0037459, + 0.0030017, 0.0024459, 0.0020671, 0.0016089, 0.0013754, 0.0011223, 0.00096256, 0.00081647, 0.00072656, + 0.00060776, 0.00051243, 0.00045705, 0.00039636, 0.00036259, 0.00033248, 0.0002953, 0.00027328, 0.00023776, + 0.00022163, 0.00019852, 0.000186, 0.00016846, 0.00015469, 0.00014169, 0.00013343, 0.00011594, 0.00010722, + 0.00010205, 9.1907e-05, 8.3718e-05, 7.5457e-05, 6.7192e-05, 6.2202e-05, 5.7372e-05, 4.8314e-05, 4.5502e-05, + 4.1334e-05, 3.7429e-05, 3.2131e-05, 3.0103e-05, 2.6125e-05, 2.3601e-05, 2.1167e-05, 1.94e-05, 1.7025e-05, + 1.5496e-05, 1.3704e-05, 1.1866e-05, 1.1135e-05, 9.8842e-06, 8.9101e-06, 7.9225e-06, 7.0706e-06, 6.3536e-06, + 5.3786e-06, 4.7179e-06, 4.2128e-06, 4.0015e-06, 3.4118e-06, 3.1864e-06, 2.734e-06, 2.3844e-06, 2.173e-06, + 1.8774e-06, 1.6468e-06, 1.501e-06, 1.3597e-06, 1.2113e-06, 1.0384e-06, 9.4105e-07, 8.4223e-07, 7.434e-07, + 6.5049e-07, 5.8824e-07, 5.3603e-07, 4.6756e-07, 4.1173e-07, 3.5872e-07, 3.2764e-07, 2.9889e-07, 2.5989e-07, + 2.219e-07, 1.9468e-07, 1.816e-07, 1.5707e-07, 1.3565e-07, 1.2619e-07, 1.0919e-07, 1.0071e-07, 8.4632e-08, + 7.6459e-08, 6.829e-08, 6.2046e-08, 5.5335e-08, 4.5937e-08, 4.2426e-08, 3.567e-08, 3.4051e-08, 2.9627e-08, + 2.5249e-08, 2.2767e-08, 2.1054e-08, 1.7873e-08, 1.574e-08, 1.3713e-08, 1.23e-08, 1.1045e-08, 9.5536e-09, + 8.5859e-09, 7.7217e-09, 6.9958e-09, 6.0992e-09, 5.3453e-09, 4.7659e-09, 4.3313e-09, 3.6575e-09}; + TSpline3* weight = new TSpline3("inmedwghts", mass, scale, 170); + Double_t corrw = weight->Eval(values[PairAnalysisVarManager::kM]); + values[kWeight] *= corrw; + delete weight; } - if(motherCode == 99009111 || secondMother == 99009111){ - Double_t scale[170] = {39.496,17.961,11.024,8.2093,5.8331,4.8995,3.8612,3.1258,2.7006,2.2465, - 1.908,1.699,1.4435,1.3253,1.2059,1.049,0.96753,0.86685,0.81407,0.75959, - 0.70663,0.61951,0.58586,0.55534,0.51902,0.46377,0.4415,0.41412,0.37414,0.34883, - 0.34494,0.31141,0.2762,0.26331,0.24693,0.22286,0.21697,0.1972,0.1841,0.16097, - 0.16352,0.14345,0.13096,0.11911,0.11399,0.10111,0.0913,0.08764,0.077745,0.071417, - 0.067561,0.05987,0.055543,0.050193,0.045244,0.04128,0.03898,0.03365,0.031622,0.028217, - 0.026215,0.023919,0.022648,0.019915,0.017524,0.016145,0.014357,0.013362,0.012368,0.011036, - 0.010198,0.0088275,0.0081762,0.0072697,0.00675,0.0060424,0.0054788,0.0049588,0.0046174,0.0039685, - 0.00363,0.0034204,0.0030534,0.0027606,0.0024723,0.0021893,0.0020174,0.0018545,0.0015584,0.0014661, - 0.0013315,0.0012065,0.0010375,0.00097456,0.00084865,0.00076982,0.00069371,0.00063931,0.00056442,0.00051712, - 0.00046054,0.00040174,0.00037996,0.00034009,0.00030921,0.00027738,0.00024981,0.00022659,0.00019366,0.00017153, - 0.00015469,0.00014841,0.00012783,0.00012061,0.00010456,9.2145e-05,8.4856e-05,7.4087e-05,6.5675e-05,6.0496e-05, - 5.5386e-05,4.9865e-05,4.3202e-05,3.9571e-05,3.5821e-05,3.201e-05,2.8322e-05,2.5886e-05,2.384e-05,2.1016e-05, - 1.8703e-05,1.6467e-05,1.5199e-05,1.4011e-05,1.2311e-05,1.0621e-05,9.4155e-06,8.874e-06,7.7548e-06,6.7662e-06, - 6.3589e-06,5.5585e-06,5.1791e-06,4.3965e-06,4.012e-06,3.6195e-06,3.3215e-06,2.9918e-06,2.5084e-06,2.3397e-06, - 1.9865e-06,1.915e-06,1.6826e-06,1.448e-06,1.3183e-06,1.231e-06,1.0551e-06,9.3811e-07,8.2511e-07,7.4714e-07, - 6.7735e-07,5.9142e-07,5.3654e-07,4.8709e-07,4.4543e-07,3.9199e-07,3.4674e-07,3.1203e-07,2.862e-07,2.4391e-07}; - TSpline3 *weight = new TSpline3("inmedwghts",mass,scale,170); - Double_t corrw = weight->Eval(values[PairAnalysisVarManager::kM]); - values[kWeight]*=corrw; - delete weight; + if (motherCode == 99009111 || secondMother == 99009111) { + Double_t scale[170] = { + 39.496, 17.961, 11.024, 8.2093, 5.8331, 4.8995, 3.8612, 3.1258, 2.7006, + 2.2465, 1.908, 1.699, 1.4435, 1.3253, 1.2059, 1.049, 0.96753, 0.86685, + 0.81407, 0.75959, 0.70663, 0.61951, 0.58586, 0.55534, 0.51902, 0.46377, 0.4415, + 0.41412, 0.37414, 0.34883, 0.34494, 0.31141, 0.2762, 0.26331, 0.24693, 0.22286, + 0.21697, 0.1972, 0.1841, 0.16097, 0.16352, 0.14345, 0.13096, 0.11911, 0.11399, + 0.10111, 0.0913, 0.08764, 0.077745, 0.071417, 0.067561, 0.05987, 0.055543, 0.050193, + 0.045244, 0.04128, 0.03898, 0.03365, 0.031622, 0.028217, 0.026215, 0.023919, 0.022648, + 0.019915, 0.017524, 0.016145, 0.014357, 0.013362, 0.012368, 0.011036, 0.010198, 0.0088275, + 0.0081762, 0.0072697, 0.00675, 0.0060424, 0.0054788, 0.0049588, 0.0046174, 0.0039685, 0.00363, + 0.0034204, 0.0030534, 0.0027606, 0.0024723, 0.0021893, 0.0020174, 0.0018545, 0.0015584, 0.0014661, + 0.0013315, 0.0012065, 0.0010375, 0.00097456, 0.00084865, 0.00076982, 0.00069371, 0.00063931, 0.00056442, + 0.00051712, 0.00046054, 0.00040174, 0.00037996, 0.00034009, 0.00030921, 0.00027738, 0.00024981, 0.00022659, + 0.00019366, 0.00017153, 0.00015469, 0.00014841, 0.00012783, 0.00012061, 0.00010456, 9.2145e-05, 8.4856e-05, + 7.4087e-05, 6.5675e-05, 6.0496e-05, 5.5386e-05, 4.9865e-05, 4.3202e-05, 3.9571e-05, 3.5821e-05, 3.201e-05, + 2.8322e-05, 2.5886e-05, 2.384e-05, 2.1016e-05, 1.8703e-05, 1.6467e-05, 1.5199e-05, 1.4011e-05, 1.2311e-05, + 1.0621e-05, 9.4155e-06, 8.874e-06, 7.7548e-06, 6.7662e-06, 6.3589e-06, 5.5585e-06, 5.1791e-06, 4.3965e-06, + 4.012e-06, 3.6195e-06, 3.3215e-06, 2.9918e-06, 2.5084e-06, 2.3397e-06, 1.9865e-06, 1.915e-06, 1.6826e-06, + 1.448e-06, 1.3183e-06, 1.231e-06, 1.0551e-06, 9.3811e-07, 8.2511e-07, 7.4714e-07, 6.7735e-07, 5.9142e-07, + 5.3654e-07, 4.8709e-07, 4.4543e-07, 3.9199e-07, 3.4674e-07, 3.1203e-07, 2.862e-07, 2.4391e-07}; + TSpline3* weight = new TSpline3("inmedwghts", mass, scale, 170); + Double_t corrw = weight->Eval(values[PairAnalysisVarManager::kM]); + values[kWeight] *= corrw; + delete weight; } - } + } //inmed 3.42AGeV - if(values[kThermalScaling] == 7){ - if(motherCode == 99009011 || secondMother == 99009011){ - Double_t mass[125] = {0.0195,0.0395,0.0595,0.0795,0.0995,0.1195,0.1395,0.1595,0.1795,0.1995, - 0.2195,0.2395,0.2595,0.2795,0.2995,0.3195,0.3395,0.3595,0.3795,0.3995, - 0.4195,0.4395,0.4595,0.4795,0.4995,0.5195,0.5395,0.5595,0.5795,0.5995, - 0.6195,0.6395,0.6595,0.6795,0.6995,0.7195,0.7395,0.7595,0.7795,0.7995, - 0.8195,0.8395,0.8595,0.8795,0.8995,0.9195,0.9395,0.9595,0.9795,0.9995, - 1.0195,1.0395,1.0595,1.0795,1.0995,1.1195,1.1395,1.1595,1.1795,1.1995, - 1.2195,1.2395,1.2595,1.2795,1.2995,1.3195,1.3395,1.3595,1.3795,1.3995, - 1.4195,1.4395,1.4595,1.4795,1.4995,1.5195,1.5395,1.5595,1.5795,1.5995, - 1.6195,1.6395,1.6595,1.6795,1.6995,1.7195,1.7395,1.7595,1.7795,1.7995, - 1.8195,1.8395,1.8595,1.8795,1.8995,1.9195,1.9395,1.9595,1.9795,1.9995, - 2.0195,2.0395,2.0595,2.0795,2.0995,2.1195,2.1395,2.1595,2.1795,2.1995, - 2.2195,2.2395,2.2595,2.2795,2.2995,2.3195,2.3395,2.3595,2.3795,2.3995, - 2.4195,2.4395,2.4595,2.4795,2.4995}; - - Double_t scale[125] = {28.6773,13.4566,8.3913,5.74418,4.17493,3.14912,2.43708,1.92407,1.54338,1.25305, - 1.02766,0.850101,0.713646,0.605398,0.516448,0.445862,0.385488,0.333449,0.288725,0.24875, - 0.213922,0.183566,0.157146,0.134313,0.1147,0.0980171,0.0839555,0.0724097,0.0630874,0.0554402, - 0.0492184,0.0442134,0.0401273,0.0367131,0.0336863,0.0308175,0.0278289,0.0244174,0.0206308,0.016819, - 0.013354,0.0104392,0.00810048,0.00626932,0.0048523,0.00376027,0.00291833,0.00226873,0.00176674,0.00137874, - 0.001079,0.000847372,0.000668582,0.000530747,0.000424646,0.000342751,0.000278383,0.000228662,0.000190229,0.000159555, - 0.00013539,0.000115883,0.000100173,8.7451e-05,7.6779e-05,6.78659e-05,6.0253e-05,5.37112e-05,4.80505e-05,4.30558e-05, - 3.86565e-05,3.47273e-05,3.11767e-05,2.79639e-05,2.50662e-05,2.24603e-05,2.01029e-05,1.79612e-05,1.60183e-05,1.42617e-05, - 1.26788e-05,1.1252e-05,9.96625e-06,8.81064e-06,7.7753e-06,6.85058e-06,6.02588e-06,5.29153e-06,4.63923e-06,4.06136e-06, - 3.55071e-06,3.1002e-06,2.70338e-06,2.35454e-06,2.04847e-06,1.78043e-06,1.54601e-06,1.34124e-06,1.16263e-06,1.00705e-06, - 8.71694e-07,7.54053e-07,6.51895e-07,5.63264e-07,4.86443e-07,4.19912e-07,3.6233e-07,3.12522e-07,2.69465e-07,2.32265e-07, - 2.00144e-07,1.72419e-07,1.48498e-07,1.27867e-07,1.10079e-07,9.47489e-08,8.15401e-08,7.01617e-08,6.03625e-08,5.19253e-08, - 4.46624e-08,3.84113e-08,3.3032e-08,2.84035e-08,2.44235e-08,}; - TSpline3 *weight = new TSpline3("inmedwghts",mass,scale,125); - Double_t corrw = weight->Eval(values[PairAnalysisVarManager::kM]); - values[kWeight]*=corrw; - delete weight; + if (values[kThermalScaling] == 7) { + if (motherCode == 99009011 || secondMother == 99009011) { + Double_t mass[125] = { + 0.0195, 0.0395, 0.0595, 0.0795, 0.0995, 0.1195, 0.1395, 0.1595, 0.1795, 0.1995, 0.2195, 0.2395, 0.2595, + 0.2795, 0.2995, 0.3195, 0.3395, 0.3595, 0.3795, 0.3995, 0.4195, 0.4395, 0.4595, 0.4795, 0.4995, 0.5195, + 0.5395, 0.5595, 0.5795, 0.5995, 0.6195, 0.6395, 0.6595, 0.6795, 0.6995, 0.7195, 0.7395, 0.7595, 0.7795, + 0.7995, 0.8195, 0.8395, 0.8595, 0.8795, 0.8995, 0.9195, 0.9395, 0.9595, 0.9795, 0.9995, 1.0195, 1.0395, + 1.0595, 1.0795, 1.0995, 1.1195, 1.1395, 1.1595, 1.1795, 1.1995, 1.2195, 1.2395, 1.2595, 1.2795, 1.2995, + 1.3195, 1.3395, 1.3595, 1.3795, 1.3995, 1.4195, 1.4395, 1.4595, 1.4795, 1.4995, 1.5195, 1.5395, 1.5595, + 1.5795, 1.5995, 1.6195, 1.6395, 1.6595, 1.6795, 1.6995, 1.7195, 1.7395, 1.7595, 1.7795, 1.7995, 1.8195, + 1.8395, 1.8595, 1.8795, 1.8995, 1.9195, 1.9395, 1.9595, 1.9795, 1.9995, 2.0195, 2.0395, 2.0595, 2.0795, + 2.0995, 2.1195, 2.1395, 2.1595, 2.1795, 2.1995, 2.2195, 2.2395, 2.2595, 2.2795, 2.2995, 2.3195, 2.3395, + 2.3595, 2.3795, 2.3995, 2.4195, 2.4395, 2.4595, 2.4795, 2.4995}; + + Double_t scale[125] = { + 28.6773, 13.4566, 8.3913, 5.74418, 4.17493, 3.14912, 2.43708, 1.92407, + 1.54338, 1.25305, 1.02766, 0.850101, 0.713646, 0.605398, 0.516448, 0.445862, + 0.385488, 0.333449, 0.288725, 0.24875, 0.213922, 0.183566, 0.157146, 0.134313, + 0.1147, 0.0980171, 0.0839555, 0.0724097, 0.0630874, 0.0554402, 0.0492184, 0.0442134, + 0.0401273, 0.0367131, 0.0336863, 0.0308175, 0.0278289, 0.0244174, 0.0206308, 0.016819, + 0.013354, 0.0104392, 0.00810048, 0.00626932, 0.0048523, 0.00376027, 0.00291833, 0.00226873, + 0.00176674, 0.00137874, 0.001079, 0.000847372, 0.000668582, 0.000530747, 0.000424646, 0.000342751, + 0.000278383, 0.000228662, 0.000190229, 0.000159555, 0.00013539, 0.000115883, 0.000100173, 8.7451e-05, + 7.6779e-05, 6.78659e-05, 6.0253e-05, 5.37112e-05, 4.80505e-05, 4.30558e-05, 3.86565e-05, 3.47273e-05, + 3.11767e-05, 2.79639e-05, 2.50662e-05, 2.24603e-05, 2.01029e-05, 1.79612e-05, 1.60183e-05, 1.42617e-05, + 1.26788e-05, 1.1252e-05, 9.96625e-06, 8.81064e-06, 7.7753e-06, 6.85058e-06, 6.02588e-06, 5.29153e-06, + 4.63923e-06, 4.06136e-06, 3.55071e-06, 3.1002e-06, 2.70338e-06, 2.35454e-06, 2.04847e-06, 1.78043e-06, + 1.54601e-06, 1.34124e-06, 1.16263e-06, 1.00705e-06, 8.71694e-07, 7.54053e-07, 6.51895e-07, 5.63264e-07, + 4.86443e-07, 4.19912e-07, 3.6233e-07, 3.12522e-07, 2.69465e-07, 2.32265e-07, 2.00144e-07, 1.72419e-07, + 1.48498e-07, 1.27867e-07, 1.10079e-07, 9.47489e-08, 8.15401e-08, 7.01617e-08, 6.03625e-08, 5.19253e-08, + 4.46624e-08, 3.84113e-08, 3.3032e-08, 2.84035e-08, 2.44235e-08, + }; + TSpline3* weight = new TSpline3("inmedwghts", mass, scale, 125); + Double_t corrw = weight->Eval(values[PairAnalysisVarManager::kM]); + values[kWeight] *= corrw; + delete weight; } - }//end thermal 7 - }//end pair->GetMC ... + } //end thermal 7 + } //end pair->GetMC ... - if (pair->GetFirstDaughter() && pair->GetFirstDaughter()->GetStsTrack()) { - values[kStsMvdFirstDaughter] = - pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() - + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); + values[kStsMvdFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); } if (pair->GetSecondDaughter() && pair->GetSecondDaughter()->GetStsTrack()) - values[kStsMvdSecondDaughter] = - pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() - + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); + values[kStsMvdSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); - - if (pair->GetFirstDaughter() && pair->GetFirstDaughter()->GetStsTrack()) { - values[kStsMvdFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); - values[kStsFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits(); - values[kMvdFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); - if(pair->GetFirstDaughter()->GetTrdTrack()){ - values[kStsMvdTrdFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits() + pair->GetFirstDaughter()->GetTrdTrack()->GetNofHits(); - values[kTrdFirstDaughter] = pair->GetFirstDaughter()->GetTrdTrack()->GetNofHits(); + if (pair->GetFirstDaughter() && pair->GetFirstDaughter()->GetStsTrack()) { + values[kStsMvdFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); + values[kStsFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits(); + values[kMvdFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); + + if (pair->GetFirstDaughter()->GetTrdTrack()) { + values[kStsMvdTrdFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits() + + pair->GetFirstDaughter()->GetTrdTrack()->GetNofHits(); + values[kTrdFirstDaughter] = pair->GetFirstDaughter()->GetTrdTrack()->GetNofHits(); } - else{ - values[kStsMvdTrdFirstDaughter] = 0; - values[kTrdFirstDaughter] = 0; + else { + values[kStsMvdTrdFirstDaughter] = 0; + values[kTrdFirstDaughter] = 0; } - - if(pair->GetFirstDaughter()->GetRichRing()){ - values[kStsMvdRichFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits() + 1; - values[kRichFirstDaughter]= pair->GetFirstDaughter()->GetRichRing()->GetNofHits(); + + if (pair->GetFirstDaughter()->GetRichRing()) { + values[kStsMvdRichFirstDaughter] = pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits() + 1; + values[kRichFirstDaughter] = pair->GetFirstDaughter()->GetRichRing()->GetNofHits(); } - else{ - values[kStsMvdRichFirstDaughter] = 0; - values[kRichFirstDaughter]= 0; + else { + values[kStsMvdRichFirstDaughter] = 0; + values[kRichFirstDaughter] = 0; } } - if (pair->GetSecondDaughter() && pair->GetSecondDaughter()->GetStsTrack()){ - values[kStsMvdSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); + if (pair->GetSecondDaughter() && pair->GetSecondDaughter()->GetStsTrack()) { + values[kStsMvdSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); - values[kStsSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits(); - values[kMvdSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); + values[kStsSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits(); + values[kMvdSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); - if(pair->GetSecondDaughter()->GetTrdTrack()){ - values[kStsMvdTrdSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits() + pair->GetSecondDaughter()->GetTrdTrack()->GetNofHits(); - values[kTrdSecondDaughter] = pair->GetSecondDaughter()->GetTrdTrack()->GetNofHits(); + if (pair->GetSecondDaughter()->GetTrdTrack()) { + values[kStsMvdTrdSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits() + + pair->GetSecondDaughter()->GetTrdTrack()->GetNofHits(); + values[kTrdSecondDaughter] = pair->GetSecondDaughter()->GetTrdTrack()->GetNofHits(); } - else{ - values[kStsMvdTrdSecondDaughter] = 0; - values[kTrdSecondDaughter] = 0; + else { + values[kStsMvdTrdSecondDaughter] = 0; + values[kTrdSecondDaughter] = 0; } - - if(pair->GetSecondDaughter()->GetRichRing()){ - values[kStsMvdRichSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits() + 1; - values[kRichSecondDaughter]= pair->GetSecondDaughter()->GetRichRing()->GetNofHits(); + + if (pair->GetSecondDaughter()->GetRichRing()) { + values[kStsMvdRichSecondDaughter] = pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() + + pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits() + 1; + values[kRichSecondDaughter] = pair->GetSecondDaughter()->GetRichRing()->GetNofHits(); } - else{ - values[kStsMvdRichSecondDaughter] = 0; - values[kRichSecondDaughter]= 0; + else { + values[kStsMvdRichSecondDaughter] = 0; + values[kRichSecondDaughter] = 0; } } - - if( pair->GetFirstDaughter() && pair->GetFirstDaughter()->GetStsTrack() && pair->GetSecondDaughter() && pair->GetSecondDaughter()->GetStsTrack() ){ - - TClonesArray* hits = fgEvent->GetHits(ECbmModuleId::kSts); - if (hits && pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() > 0 && pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() > 0) { - CbmStsHit* hitx=NULL; - CbmStsHit* hity=NULL; + if (pair->GetFirstDaughter() && pair->GetFirstDaughter()->GetStsTrack() && pair->GetSecondDaughter() + && pair->GetSecondDaughter()->GetStsTrack()) { + + TClonesArray* hits = fgEvent->GetHits(ECbmModuleId::kSts); + if (hits && pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits() > 0 + && pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits() > 0) { + + CbmStsHit* hitx = NULL; + CbmStsHit* hity = NULL; Double_t minStsA = 9999.; if (hits) { - for (Int_t ihit = 0; ihit < pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits(); ihit++) { - Int_t idx = pair->GetFirstDaughter()->GetStsTrack()->GetStsHitIndex(ihit); - CbmStsHit* hit = (CbmStsHit*) hits->At(idx); - if (hit && minStsA > hit->GetZ()) { hitx = hit; minStsA = hit->GetZ();} - } + for (Int_t ihit = 0; ihit < pair->GetFirstDaughter()->GetStsTrack()->GetNofStsHits(); ihit++) { + Int_t idx = pair->GetFirstDaughter()->GetStsTrack()->GetStsHitIndex(ihit); + CbmStsHit* hit = (CbmStsHit*) hits->At(idx); + if (hit && minStsA > hit->GetZ()) { + hitx = hit; + minStsA = hit->GetZ(); + } + } } Double_t minStsB = 9999.; if (hits) { - for (Int_t ihit = 0; ihit < pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits(); ihit++) { - Int_t idx = pair->GetSecondDaughter()->GetStsTrack()->GetStsHitIndex(ihit); - CbmStsHit* hit = (CbmStsHit*) hits->At(idx); - if (hit && minStsB > hit->GetZ()) { hity = hit; minStsB = hit->GetZ();} - } + for (Int_t ihit = 0; ihit < pair->GetSecondDaughter()->GetStsTrack()->GetNofStsHits(); ihit++) { + Int_t idx = pair->GetSecondDaughter()->GetStsTrack()->GetStsHitIndex(ihit); + CbmStsHit* hit = (CbmStsHit*) hits->At(idx); + if (hit && minStsB > hit->GetZ()) { + hity = hit; + minStsB = hit->GetZ(); + } + } } - if(hitx && hity && minStsA < 9999 && minStsB < 9999){ - Double_t xdiff = hitx->GetX() - hity->GetX(); - Double_t ydiff = hitx->GetY() - hity->GetY(); - Double_t zdiff = hitx->GetZ() - hity->GetZ(); - Double_t dist = TMath::Sqrt( xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); - values[kStsHitDist] = dist; + if (hitx && hity && minStsA < 9999 && minStsB < 9999) { + Double_t xdiff = hitx->GetX() - hity->GetX(); + Double_t ydiff = hitx->GetY() - hity->GetY(); + Double_t zdiff = hitx->GetZ() - hity->GetZ(); + Double_t dist = TMath::Sqrt(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); + values[kStsHitDist] = dist; } } else { @@ -1616,40 +1545,47 @@ PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, } - hits = fgEvent->GetHits(ECbmModuleId::kMvd); - if (hits && pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits() > 0 && pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits() > 0) { - CbmMvdHit* hitx=NULL; - CbmMvdHit* hity=NULL; + hits = fgEvent->GetHits(ECbmModuleId::kMvd); + if (hits && pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits() > 0 + && pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits() > 0) { + CbmMvdHit* hitx = NULL; + CbmMvdHit* hity = NULL; Double_t minMvdA = 9999.; if (hits) { - for (Int_t ihit = 0; ihit < pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); ihit++) { - Int_t idx = pair->GetFirstDaughter()->GetStsTrack()->GetMvdHitIndex(ihit); - CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx); - if (hit && minMvdA > hit->GetZ()) { hitx = hit; minMvdA = hit->GetZ();} - } + for (Int_t ihit = 0; ihit < pair->GetFirstDaughter()->GetStsTrack()->GetNofMvdHits(); ihit++) { + Int_t idx = pair->GetFirstDaughter()->GetStsTrack()->GetMvdHitIndex(ihit); + CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx); + if (hit && minMvdA > hit->GetZ()) { + hitx = hit; + minMvdA = hit->GetZ(); + } + } } Double_t minMvdB = 9999.; if (hits) { - for (Int_t ihit = 0; ihit < pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); ihit++) { - Int_t idx = pair->GetSecondDaughter()->GetStsTrack()->GetMvdHitIndex(ihit); - CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx); - if (hit && minMvdB > hit->GetZ()) { hity = hit; minMvdB = hit->GetZ();} - } + for (Int_t ihit = 0; ihit < pair->GetSecondDaughter()->GetStsTrack()->GetNofMvdHits(); ihit++) { + Int_t idx = pair->GetSecondDaughter()->GetStsTrack()->GetMvdHitIndex(ihit); + CbmMvdHit* hit = (CbmMvdHit*) hits->At(idx); + if (hit && minMvdB > hit->GetZ()) { + hity = hit; + minMvdB = hit->GetZ(); + } + } } - if(hitx && hity && minMvdA < 9999 && minMvdB < 9999){ - Double_t xdiff = hitx->GetX() - hity->GetX(); - Double_t ydiff = hitx->GetY() - hity->GetY(); - Double_t zdiff = hitx->GetZ() - hity->GetZ(); - Double_t dist = TMath::Sqrt( xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); - values[kMvdHitDist] = dist; + if (hitx && hity && minMvdA < 9999 && minMvdB < 9999) { + Double_t xdiff = hitx->GetX() - hity->GetX(); + Double_t ydiff = hitx->GetY() - hity->GetY(); + Double_t zdiff = hitx->GetZ() - hity->GetZ(); + Double_t dist = TMath::Sqrt(xdiff * xdiff + ydiff * ydiff + zdiff * zdiff); + values[kMvdHitDist] = dist; } } else { values[kMvdHitDist] = -1; - } + } } - + Double_t thetaHE = 0; Double_t phiHE = 0; Double_t thetaCS = 0; @@ -1657,28 +1593,25 @@ PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, if (Req(kThetaHE) || Req(kPhiHE) || Req(kThetaCS) || Req(kPhiCS)) { pair->GetThetaPhiCM(thetaHE, phiHE, thetaCS, phiCS); - values[kThetaHE] = thetaHE; - values[kPhiHE] = phiHE; - values[kThetaSqHE] = thetaHE * thetaHE; - values[kCos2PhiHE] = TMath::Cos(2.0 * phiHE); - values[kCosTilPhiHE] = (thetaHE > 0) - ? (TMath::Cos(phiHE - TMath::Pi() / 4.)) - : (TMath::Cos(phiHE - 3 * TMath::Pi() / 4.)); - values[kThetaCS] = thetaCS; - values[kPhiCS] = phiCS; - values[kThetaSqCS] = thetaCS * thetaCS; - values[kCos2PhiCS] = TMath::Cos(2.0 * phiCS); - values[kCosTilPhiCS] = (thetaCS > 0) - ? (TMath::Cos(phiCS - TMath::Pi() / 4.)) - : (TMath::Cos(phiCS - 3 * TMath::Pi() / 4.)); + values[kThetaHE] = thetaHE; + values[kPhiHE] = phiHE; + values[kThetaSqHE] = thetaHE * thetaHE; + values[kCos2PhiHE] = TMath::Cos(2.0 * phiHE); + values[kCosTilPhiHE] = + (thetaHE > 0) ? (TMath::Cos(phiHE - TMath::Pi() / 4.)) : (TMath::Cos(phiHE - 3 * TMath::Pi() / 4.)); + values[kThetaCS] = thetaCS; + values[kPhiCS] = phiCS; + values[kThetaSqCS] = thetaCS * thetaCS; + values[kCos2PhiCS] = TMath::Cos(2.0 * phiCS); + values[kCosTilPhiCS] = + (thetaCS > 0) ? (TMath::Cos(phiCS - TMath::Pi() / 4.)) : (TMath::Cos(phiCS - 3 * TMath::Pi() / 4.)); } - values[kChi2NDF] = pair->GetChi2() / pair->GetNdf(); - values[kDecayLength] = pair->GetDecayLength(); - values[kR] = pair->GetR(); - values[kOpeningAngle] = pair->OpeningAngle(); - values[kCosPointingAngle] = - fgEvent ? pair->GetCosPointingAngle(fgEvent->GetPrimaryVertex()) : -1; + values[kChi2NDF] = pair->GetChi2() / pair->GetNdf(); + values[kDecayLength] = pair->GetDecayLength(); + values[kR] = pair->GetR(); + values[kOpeningAngle] = pair->OpeningAngle(); + values[kCosPointingAngle] = fgEvent ? pair->GetCosPointingAngle(fgEvent->GetPrimaryVertex()) : -1; values[kLegDist] = pair->DistanceDaughters(); values[kLegDistXY] = pair->DistanceDaughtersXY(); @@ -1703,8 +1636,8 @@ PairAnalysisVarManager::FillVarPairAnalysisPair(const PairAnalysisPair* pair, } -inline void PairAnalysisVarManager::FillVarPixelHit(const CbmPixelHit* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarPixelHit(const CbmPixelHit* hit, Double_t* const values) +{ // // Fill hit information for the rich hit into array // @@ -1721,8 +1654,8 @@ inline void PairAnalysisVarManager::FillVarPixelHit(const CbmPixelHit* hit, values[kLinksMC] = (hit->GetMatch() ? hit->GetMatch()->GetNofLinks() : 0.); } -inline void PairAnalysisVarManager::FillVarStsHit(const CbmStsHit* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarStsHit(const CbmStsHit* hit, Double_t* const values) +{ // // Fill hit information for the sts hit into array // @@ -1740,8 +1673,8 @@ inline void PairAnalysisVarManager::FillVarStsHit(const CbmStsHit* hit, // ... } -inline void PairAnalysisVarManager::FillVarMvdHit(const CbmMvdHit* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarMvdHit(const CbmMvdHit* hit, Double_t* const values) +{ // // Fill hit information for the mvd hit into array // @@ -1760,8 +1693,8 @@ inline void PairAnalysisVarManager::FillVarMvdHit(const CbmMvdHit* hit, // ... } -inline void PairAnalysisVarManager::FillVarMuchHit(const CbmMuchPixelHit* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarMuchHit(const CbmMuchPixelHit* hit, Double_t* const values) +{ // // Fill hit information for the much hit into array // @@ -1779,8 +1712,8 @@ inline void PairAnalysisVarManager::FillVarMuchHit(const CbmMuchPixelHit* hit, // ... } -inline void PairAnalysisVarManager::FillVarRichHit(const CbmRichHit* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarRichHit(const CbmRichHit* hit, Double_t* const values) +{ // // Fill hit information for the rich hit into array // @@ -1799,8 +1732,8 @@ inline void PairAnalysisVarManager::FillVarRichHit(const CbmRichHit* hit, values[kPmtId] = hit->GetPmtId(); } -inline void PairAnalysisVarManager::FillVarTrdHit(const CbmTrdHit* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarTrdHit(const CbmTrdHit* hit, Double_t* const values) +{ // // Fill hit information for the trd hit into array // @@ -1817,8 +1750,7 @@ inline void PairAnalysisVarManager::FillVarTrdHit(const CbmTrdHit* hit, // accessors via CbmCluster & CbmTrdCluster TClonesArray* cluster = fgEvent->GetCluster(ECbmModuleId::kTrd); if (cluster->GetEntriesFast() > 0) { - const CbmTrdCluster* cls = - static_cast<const CbmTrdCluster*>(cluster->At(hit->GetRefId())); + const CbmTrdCluster* cls = static_cast<const CbmTrdCluster*>(cluster->At(hit->GetRefId())); FillVarTrdCluster(cls, values); // if(cls) std::cout << (cls->ToString()).data(); } @@ -1832,8 +1764,8 @@ inline void PairAnalysisVarManager::FillVarTrdHit(const CbmTrdHit* hit, // Printf("eloss trd: %.3e (%.3e TR, %.3e dEdx)",hit->GetELoss(),hit->GetELossTR(),hit->GetELossdEdX()); } -inline void PairAnalysisVarManager::FillVarTofHit(const CbmTofHit* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarTofHit(const CbmTofHit* hit, Double_t* const values) +{ // // Fill hit information for the tof hit into array // @@ -1848,40 +1780,27 @@ inline void PairAnalysisVarManager::FillVarTofHit(const CbmTofHit* hit, FillVarPixelHit(hit, values); // Set - values[kBeta] = - values[kTrackLength] / 100 / (hit->GetTime() * 1e-9) / TMath::C(); + values[kBeta] = values[kTrackLength] / 100 / (hit->GetTime() * 1e-9) / TMath::C(); // PID value detla beta values[kTofPidDeltaBetaEL] = - values[kBeta] - - (values[kP] - / TMath::Sqrt(values[kMEL] * values[kMEL] + values[kP] * values[kP])); + values[kBeta] - (values[kP] / TMath::Sqrt(values[kMEL] * values[kMEL] + values[kP] * values[kP])); values[kTofPidDeltaBetaMU] = - values[kBeta] - - (values[kP] - / TMath::Sqrt(values[kMMU] * values[kMMU] + values[kP] * values[kP])); + values[kBeta] - (values[kP] / TMath::Sqrt(values[kMMU] * values[kMMU] + values[kP] * values[kP])); values[kTofPidDeltaBetaPI] = - values[kBeta] - - (values[kP] - / TMath::Sqrt(values[kMPI] * values[kMPI] + values[kP] * values[kP])); + values[kBeta] - (values[kP] / TMath::Sqrt(values[kMPI] * values[kMPI] + values[kP] * values[kP])); values[kTofPidDeltaBetaKA] = - values[kBeta] - - (values[kP] - / TMath::Sqrt(values[kMKA] * values[kMKA] + values[kP] * values[kP])); + values[kBeta] - (values[kP] / TMath::Sqrt(values[kMKA] * values[kMKA] + values[kP] * values[kP])); values[kTofPidDeltaBetaPR] = - values[kBeta] - - (values[kP] - / TMath::Sqrt(values[kMPR] * values[kMPR] + values[kP] * values[kP])); + values[kBeta] - (values[kP] / TMath::Sqrt(values[kMPR] * values[kMPR] + values[kP] * values[kP])); - values[kMassSq] = - values[kP] * values[kP] * (TMath::Power(1. / values[kBeta], 2) - 1); + values[kMassSq] = values[kP] * values[kP] * (TMath::Power(1. / values[kBeta], 2) - 1); // Printf("track length: %f beta: %f",values[kTrackLength],values[kBeta]); // Double_t mass2 = TMath::Power(momentum, 2.) * (TMath::Power(time/ trackLength, 2) - 1); } -inline void -PairAnalysisVarManager::FillVarTrdCluster(const CbmTrdCluster* cluster, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarTrdCluster(const CbmTrdCluster* cluster, Double_t* const values) +{ // // Fill cluster information for the trd cluster into array // @@ -1900,8 +1819,8 @@ PairAnalysisVarManager::FillVarTrdCluster(const CbmTrdCluster* cluster, values[kTrdRows] = cluster->GetNRows(); } -inline void PairAnalysisVarManager::FillVarMCPoint(const FairMCPoint* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillVarMCPoint(const FairMCPoint* hit, Double_t* const values) +{ // // Fill MC hit information // @@ -1919,8 +1838,8 @@ inline void PairAnalysisVarManager::FillVarMCPoint(const FairMCPoint* hit, values[kElossMC] = hit->GetEnergyLoss() * 1.e+6; //GeV->keV, dEdx } -inline void PairAnalysisVarManager::FillSumVarMCPoint(const FairMCPoint* hit, - Double_t* const values) { +inline void PairAnalysisVarManager::FillSumVarMCPoint(const FairMCPoint* hit, Double_t* const values) +{ // // Sum upMC hit information // @@ -1937,7 +1856,8 @@ inline void PairAnalysisVarManager::FillSumVarMCPoint(const FairMCPoint* hit, values[kElossMC] += hit->GetEnergyLoss() * 1.e+6; //GeV->keV, dEdx } -inline void PairAnalysisVarManager::FillVarConstants(Double_t* const values) { +inline void PairAnalysisVarManager::FillVarConstants(Double_t* const values) +{ // // Fill constant information available into an array // make use of TPDGCode @@ -1951,13 +1871,12 @@ inline void PairAnalysisVarManager::FillVarConstants(Double_t* const values) { values[kMPR] = TDatabasePDG::Instance()->GetParticle(kProton)->Mass(); values[kMK0] = TDatabasePDG::Instance()->GetParticle(kK0Short)->Mass(); values[kMLA] = TDatabasePDG::Instance()->GetParticle(kLambda0)->Mass(); - values[kMPair] = fgData - [kMPair]; /// automaticaly filled in PairAnalysis::Process using PairAnalysis::fPdgMother - values[kEbeam] = fgData - [kEbeam]; /// automaticaly filled in AnalysisTaskMultiPairAnalysis::Init + values[kMPair] = fgData[kMPair]; /// automaticaly filled in PairAnalysis::Process using PairAnalysis::fPdgMother + values[kEbeam] = fgData[kEbeam]; /// automaticaly filled in AnalysisTaskMultiPairAnalysis::Init } -inline void PairAnalysisVarManager::SetEvent(PairAnalysisEvent* const ev) { +inline void PairAnalysisVarManager::SetEvent(PairAnalysisEvent* const ev) +{ // // set event and vertex // @@ -1968,20 +1887,18 @@ inline void PairAnalysisVarManager::SetEvent(PairAnalysisEvent* const ev) { // Reset if (fgKFVertex) delete fgKFVertex; fgKFVertex = 0x0; - if (fgVertexMC) - fgVertexMC->Reset(); + if (fgVertexMC) fgVertexMC->Reset(); else fgVertexMC = new CbmVertex(); // Set FillVarConstants(fgData); - if (ev && ev->GetPrimaryVertex()) - fgKFVertex = new CbmKFVertex(*ev->GetPrimaryVertex()); + if (ev && ev->GetPrimaryVertex()) fgKFVertex = new CbmKFVertex(*ev->GetPrimaryVertex()); Fill(fgEvent, fgData); } -inline void PairAnalysisVarManager::SetEventData( - const Double_t data[PairAnalysisVarManager::kNMaxValuesMC]) { +inline void PairAnalysisVarManager::SetEventData(const Double_t data[PairAnalysisVarManager::kNMaxValuesMC]) +{ /* for (Int_t i=0; i<kNMaxValuesMC;++i) fgData[i]=0.; */ for (Int_t i = kPairMax; i < kNMaxValues; ++i) fgData[i] = data[i]; @@ -1990,12 +1907,9 @@ inline void PairAnalysisVarManager::SetEventData( } -inline void -PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, - ECbmModuleId idet, - Int_t* trueH, - Int_t* distH, - Int_t* fakeH) { +inline void PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, ECbmModuleId idet, Int_t* trueH, + Int_t* distH, Int_t* fakeH) +{ CbmTrack* trkl = track->GetTrack(idet); CbmRichRing* ring = track->GetRichRing(); @@ -2021,9 +1935,8 @@ PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, } CbmTrackMatchNew* tmtch = track->GetTrackMatch(idet); - Int_t mctrk = (tmtch && tmtch->GetNofHits() > 0 && tmtch->GetNofLinks() > 0 - ? tmtch->GetMatchedLink().GetIndex() - : -1); + Int_t mctrk = + (tmtch && tmtch->GetNofHits() > 0 && tmtch->GetNofLinks() > 0 ? tmtch->GetMatchedLink().GetIndex() : -1); PairAnalysisMC* mc = PairAnalysisMC::Instance(); if (mc) { @@ -2043,12 +1956,8 @@ PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, CbmHit* hit = NULL; Int_t idx = -1; switch (idet) { - case ECbmModuleId::kMvd: - idx = static_cast<CbmStsTrack*>(trkl)->GetMvdHitIndex(ihit); - break; - case ECbmModuleId::kSts: - idx = static_cast<CbmStsTrack*>(trkl)->GetStsHitIndex(ihit); - break; + case ECbmModuleId::kMvd: idx = static_cast<CbmStsTrack*>(trkl)->GetMvdHitIndex(ihit); break; + case ECbmModuleId::kSts: idx = static_cast<CbmStsTrack*>(trkl)->GetStsHitIndex(ihit); break; case ECbmModuleId::kMuch: case ECbmModuleId::kTrd: idx = trkl->GetHitIndex(ihit); break; case ECbmModuleId::kTof: hit = track->GetTofHit(); break; @@ -2056,9 +1965,7 @@ PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, default: continue; } - if (idet != ECbmModuleId::kTof && idx > -1) { - hit = dynamic_cast<CbmHit*>(hits->At(idx)); - } + if (idet != ECbmModuleId::kTof && idx > -1) { hit = dynamic_cast<CbmHit*>(hits->At(idx)); } if (!hit) { (*fakeH)++; @@ -2076,11 +1983,9 @@ PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, links += nlinks; for (Int_t iLink = 0; iLink < nlinks; iLink++) { // if(nlinks!=1) { fakeH++; continue; } - FairMCPoint* pnt = static_cast<FairMCPoint*>( - pnts->At(mtch->GetLink(iLink).GetIndex())); + FairMCPoint* pnt = static_cast<FairMCPoint*>(pnts->At(mtch->GetLink(iLink).GetIndex())); // hit defintion - if (!pnt) - btrueH = kFALSE; + if (!pnt) btrueH = kFALSE; else { Int_t lbl = pnt->GetTrackID(); Int_t lblM = mc->GetMothersLabel(lbl); @@ -2088,7 +1993,8 @@ PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, if (lbl != mctrk && lblM != mctrk && lblG != mctrk) { btrueH = kFALSE; dist += 1.; - } else + } + else bfakeH = kFALSE; } } @@ -2103,16 +2009,10 @@ PairAnalysisVarManager::CalculateHitTypes(const PairAnalysisTrack* track, } -inline UInt_t* PairAnalysisVarManager::GetArray(ValueTypes var0, - ValueTypes var1, - ValueTypes var2, - ValueTypes var3, - ValueTypes var4, - ValueTypes var5, - ValueTypes var6, - ValueTypes var7, - ValueTypes var8, - ValueTypes var9) { +inline UInt_t* PairAnalysisVarManager::GetArray(ValueTypes var0, ValueTypes var1, ValueTypes var2, ValueTypes var3, + ValueTypes var4, ValueTypes var5, ValueTypes var6, ValueTypes var7, + ValueTypes var8, ValueTypes var9) +{ // // build var array for e.g. TFormula's, THnBase's // @@ -2130,7 +2030,8 @@ inline UInt_t* PairAnalysisVarManager::GetArray(ValueTypes var0, return arr; } -inline void PairAnalysisVarManager::InitFormulas() { +inline void PairAnalysisVarManager::InitFormulas() +{ if (fgFormula[1]) return; for (Int_t i = 1; i < kNMaxValuesMC - 1; ++i) { fgFormula[i] = new TFormula(fgkParticleNames[i][0], "[0]"); @@ -2139,7 +2040,8 @@ inline void PairAnalysisVarManager::InitFormulas() { } } -inline void PairAnalysisVarManager::InitFitter() { +inline void PairAnalysisVarManager::InitFitter() +{ /* if(!fgKFFitter) { */ /* fgKFFitter = new CbmStsKFTrackFitter(); */ /* fgKFFitter->Init(); */