1#ifndef CGEMSEGMENTFITALG_H
2#define CGEMSEGMENTFITALG_H
3#include "GaudiKernel/Algorithm.h"
4#include "CgemRecEvent/RecCgemCluster.h"
5#include "CgemRecEvent/RecCgemSegment.h"
6#include "McTruth/McParticle.h"
7#include "CgemCalibFunSvc/CgemCalibFunSvc.h"
9#include "VertexFit/IVertexDbSvc.h"
10#include "GaudiKernel/NTuple.h"
11#include "GaudiKernel/INTupleSvc.h"
13#include "KalFitAlg/helix/Helix.h"
14#include "CLHEP/Geometry/Point3D.h"
15#include "CLHEP/Matrix/Vector.h"
45 bool CheckClusterID(
int layerID,
int clusterID,
int vec_clusterID[3]);
46 int GetChargeOfTrack();
47 int GetChargeOfTrack(
double *vec_phi);
48 int estiChargeOfSeg();
50 double GetMin(
double *a);
51 double GetMax(
double *a);
52 int mnTrkFit(Double_t trkpar[], Double_t trkparErr[], Double_t* emat,
double& chisq);
68 map<int , RecCgemSegment*> m_seg_map;
69 map<int , RecCgemSegment*>::iterator m_seg_map_it;
76 NTuple::Tuple* helix_ntuple;
77 NTuple::Item<long> cgem_run;
78 NTuple::Item<long> cgem_evt;
79 NTuple::Item<long> cgem_nsegment;
80 NTuple::Item<long> truth_ntrack;
82 NTuple::Array<double> truth_dr;
83 NTuple::Array<double> truth_dz;
84 NTuple::Array<double> truth_phi0;
85 NTuple::Array<double> truth_kappa;
86 NTuple::Array<double> truth_tanl;
87 NTuple::Array<double> truth_CosTheta;
88 NTuple::Array<int> truth_charge;
90 NTuple::Array<int> cgem_segmentid;
91 NTuple::Array<double> cgem_dr_ini;
92 NTuple::Array<double> cgem_dz_ini;
93 NTuple::Array<double> cgem_phi0_ini;
94 NTuple::Array<double> cgem_kappa_ini;
95 NTuple::Array<double> cgem_tanl_ini;
96 NTuple::Array<double> cgem_dr;
97 NTuple::Array<double> cgem_dz;
98 NTuple::Array<double> cgem_phi0;
99 NTuple::Array<double> cgem_kappa;
100 NTuple::Array<double> cgem_tanl;
101 NTuple::Array<double> cgem_chisq;
102 NTuple::Array<int> cgem_charge;
103 NTuple::Array<int> cgem_fitFlag;
105 NTuple::Item<int> n_layer;
106 NTuple::Array<int> n_stripX;
107 NTuple::Array<int> n_stripV;
108 NTuple::Array<double> mc_phi;
109 NTuple::Array<double> mc_v;
110 NTuple::Array<double> rec_phi;
111 NTuple::Array<double> rec_v;
CgemSegmentFitAlg(const std::string &name, ISvcLocator *pSvcLocator)