49 int myMotherParticleID;
64 double myNoiseRate[3];
76 double myLengthCgem[4];
81 double anode_mid_gap_radius[3];
88 NTuple::Item<int> m_evt1;
89 NTuple::Item<long> m_ncluster;
90 NTuple::Array<int> m_layerid,m_sheetid,m_flag,m_clusterid;
91 NTuple::Array<double> m_energy,m_recphi,m_recv;
94 NTuple::Item<int> m_evt2;
95 NTuple::Item<long> m_nxvcluster;
96 NTuple::Array<double> m_pphi,m_pv;
97 NTuple::Array<int> m_player,m_psheet;
98 NTuple::Array<int> m_nxstrip,m_nvstrip;
100 NTuple::Tuple* m_nt3;
101 NTuple::Item<int> m_evt3;
102 NTuple::Item<long> m_ntruth;
103 NTuple::Array<int> m_layer,m_sheet;
104 NTuple::Array<double> m_phipre,m_zpre,m_phipost,m_zpost,m_tphi,m_tv;
106 NTuple::Tuple* m_nt5;
107 NTuple::Item<int> m_evt;
108 NTuple::Item<double> m_evttime;
110 NTuple::Tuple* m_nt6;
111 NTuple::Item<int> m_evt6;
112 NTuple::Item<long> m_ndtruth;
113 NTuple::Array<int> m_tlayer,m_tsheet;
114 NTuple::Array<double> m_dtphi,m_dtv;
116 NTuple::Tuple* m_nt7;
117 NTuple::Item<int> m_evt7;
118 NTuple::Item<long> m_ndrec;
119 NTuple::Array<int> m_dlayer,m_dsheet,m_dcluster;
120 NTuple::Array<double> m_drecphi,m_drecv;
122 int m_strip[3][2][2][1500];
124 double m_edep[3][2][2][1500];
130 typedef pair<ClusterFlag,ClusterFlag> flagxv;
131 std::vector<ClusterFlag> m_x_group;
132 std::vector<ClusterFlag> m_v_group;
134 std::vector<flagxv> m_xv_group;
135 std::vector<ClusterFlag> m_mid_group;
136 std::vector<int> m_sameID;
139 typedef pair<int,int> keytype;
140 typedef pair<double,double> postype;
141 map<keytype,RecCgemCluster*> m_x_map;
142 map<keytype,RecCgemCluster*>::iterator m_x_map_it;
143 map<keytype,RecCgemCluster*> m_v_map;
144 map<keytype,RecCgemCluster*>::iterator m_v_map_it;
145 map<keytype,RecCgemCluster*> m_xv_map;
146 map<keytype,RecCgemCluster*>::iterator m_xv_map_it;
147 map<keytype,flagxv> m_trans_map;
148 map<keytype,flagxv>::iterator m_trans_map_it;
149 map<keytype,postype> m_driftrec_map;
150 map<keytype,postype>::iterator m_driftrec_map_it;
151 map<keytype,keytype> m_strip_map;
152 map<keytype,keytype>::iterator m_strip_map_it;
153 map<keytype,postype> m_pos_map;
154 map<keytype,postype>::iterator m_pos_map_it;
163 bool isGoodDigi(CgemDigiCol::iterator
iter);
164 bool selDigi(CgemDigiCol::iterator
iter,
int sel=1);
166 double m_minDigiTime;
167 double m_maxDigiTime;
174 void processstrips(
int k);
183 void fillMCTruth(
int run,
int evt);
184 void fillRecData(
int run,
int evt);
186 StatusCode method0();
187 StatusCode method1();
188 StatusCode method2();
189 StatusCode toyCluster();
190 void checkRecCgemClusterCol(
void);
192 float get_Time(CgemDigiCol::iterator iDigiCol);
193 float get_TimeWalk(CgemDigiCol::iterator iDigiCol);
194 float get_TimeRising(CgemDigiCol::iterator iDigiCol);
195 float get_TimeReference(CgemDigiCol::iterator iDigiCol);
198 map<int,CgemDigiCol::iterator> myFiredStripMap[3][2][2];
199 void resetFiredStripMap();
222 NTuple::Tuple* m_rec_nt;
223 NTuple::Item<int> m_rec_run;
224 NTuple::Item<int> m_rec_evt;
225 NTuple::Item<int> m_rec_ncluster;
226 NTuple::Array<int> m_rec_clusterid;
227 NTuple::Array<int> m_rec_layerid;
228 NTuple::Array<int> m_rec_sheetid;
229 NTuple::Array<int> m_rec_flag;
230 NTuple::Array<double> m_rec_energydeposit;
231 NTuple::Array<double> m_rec_recphi;
232 NTuple::Array<double> m_rec_recv;
233 NTuple::Array<double> m_rec_recZ;
234 NTuple::Array<int> m_rec_clusterflagb;
235 NTuple::Array<int> m_rec_clusterflage;
237 NTuple::Tuple* m_mc_nt;
238 NTuple::Item<int> m_mc_run;
239 NTuple::Item<int> m_mc_evt;
240 NTuple::Item<int> m_mc_nhit;
241 NTuple::Array<int> m_mc_trackID;
242 NTuple::Array<int> m_mc_layerID;
243 NTuple::Array<int> m_mc_pdg;
244 NTuple::Array<int> m_mc_parentID;
245 NTuple::Array<double> m_mc_E_deposit;
246 NTuple::Array<double> m_mc_XYZ_pre_x;
247 NTuple::Array<double> m_mc_XYZ_pre_y;
248 NTuple::Array<double> m_mc_XYZ_pre_z;
249 NTuple::Array<double> m_mc_XYZ_post_x;
250 NTuple::Array<double> m_mc_XYZ_post_y;
251 NTuple::Array<double> m_mc_XYZ_post_z;
252 NTuple::Array<double> m_mc_P_pre_x;
253 NTuple::Array<double> m_mc_P_pre_y;
254 NTuple::Array<double> m_mc_P_pre_z;
255 NTuple::Array<double> m_mc_P_post_x;
256 NTuple::Array<double> m_mc_P_post_y;
257 NTuple::Array<double> m_mc_P_post_z;