1 #ifndef Compute_dEdxProcessor2021_hh
2 #define Compute_dEdxProcessor2021_hh 1
8 #include <marlin/Processor.h>
9 #include <EVENT/LCCollection.h>
12 using namespace lcio ;
13 using namespace marlin ;
78 virtual void processRunHeader( LCRunHeader* run);
79 virtual void processEvent( LCEvent * evt );
80 virtual void check( LCEvent * evt );
87 std::pair<double,double> CalculateEnergyLoss(TrackerHitVec& hitVec, Track* trk);
89 double getSmearing(
double dEdx);
92 std::string _description =
"";
93 std::string _LDCTrackCollection =
"";
94 LCCollection* _LDCCol = NULL;
95 bool _writedEdx =
true;
97 float _energyLossErrorTPC = 0;
98 float _lowerTrunFrac = 0;
99 float _upperTrunFrac = 0;
100 std::vector<float> _errexp = {};
102 bool _StratCompHist =
false;
103 bool _StratCompHistWeight =
false;
104 std::string _StratCompHistFiles =
"";
107 std::random_device seed_gen{};
108 std::default_random_engine *engine = NULL;
109 std::uniform_real_distribution<> dist{};
110 bool _isSmearing = 0;
111 float _smearingFactor = 0;
114 float _TPC_inner = 0;
115 float _TPC_outer = 0;
116 float _TPC_padHeight = 0;
120 TH2* _BBHist_Strategy1{};
121 TH2* _BBHist_Strategy2{};
122 TH2* _BBHist_Strategy3{};
125 bool _angularcorrdEdx =
false;
126 std::vector<float> _par{};
127 double get_Corrected_dEdx(
float dedx,
float trklambda);
Compute dE/dx Processor2021 This processor calculates the dE/dx for every track.
virtual Processor * newProcessor()