147 std::cout<<
"Sarting PndHypStripClusterTask::Exec()"<<std::endl;
148 std::vector<PndHypDigiStrip> digiStripArray;
155 if ( !
fHitArray ) Fatal(
"Exec",
"No HitArray");
166 TVector2 topDirection, botDirection ;
169 TVector3 sensorDim,localpos, localDpos;
171 Int_t detID, clindex, botIndex;
173 TVector2 meantopPoint, meanbotPoint, onsensorPoint;
174 TVector3 hitPos,hitErr;
187 for (Int_t iPoint = 0; iPoint <
fDigiArray->GetEntriesFast(); iPoint++)
196 std::cout<<
" strip "<< strip<<
" side "<<std::endl;
201 clusterbuilder.
AddDigi(detName.Data(),side,
strip,iPoint);
212 std::vector< PndHypCluster > clusters;
213 std::vector< Int_t > topclusters;
214 std::vector< Int_t > botclusters;
215 std::vector< Int_t > oneclustertop;
216 std::vector< Int_t > oneclusterbot;
225 for(std::vector< PndHypCluster >::iterator clit= clusters.begin();
226 clit!=clusters.end(); ++clit)
237 std::cout<<
"Top Clusters: ";
238 for (std::vector< Int_t>::iterator itTop = topclusters.begin();
239 itTop!=topclusters.end(); ++itTop)
241 std::cout<<*itTop<<
" | ";
243 std::cout<<std::endl;
244 std::cout<<
"Bot Clusters: ";
245 for (std::vector< Int_t>::iterator itBot = botclusters.begin();
246 itBot!=botclusters.end(); ++itBot)
248 std::cout<<*itBot<<
" | ";
250 std::cout<<std::endl;
256 for (std::vector< Int_t>::iterator itTop = topclusters.begin();
257 itTop!=topclusters.end(); ++itTop)
260 Double_t topcharge = 0., meantopstrip=0.;
262 oneclustertop = clusters[*itTop].GetClusterList();
273 for (std::vector<Int_t>::iterator itTopDigi = oneclustertop.begin();
274 itTopDigi != oneclustertop.end(); ++itTopDigi)
284 if(
fVerbose > 2)std::cout<<
"FE no: "<<myDigi->
GetFE()<<
" | channel no: "
286 <<strip<<
"| detID no: "<<myDigi->
GetDetID()<<std::endl;
291 meantopstrip = meantopstrip/topcharge;
294 for (std::vector< Int_t>::iterator itBot = botclusters.begin();
295 itBot!=botclusters.end(); ++itBot)
298 Double_t botcharge = 0., meanbotstrip=0.;
300 oneclusterbot =( clusters[*itBot]).GetClusterList();
306 if(detnamebot != detnametop)
continue;
310 for (std::vector<Int_t>::iterator itBotDigi = oneclusterbot.begin();
311 itBotDigi != oneclusterbot.end(); ++itBotDigi)
321 if(
fVerbose > 2)std::cout<<
"FE no: "<<myDigi->
GetFE()<<
" | channel no: "
322 <<myDigi->
GetChannel()<<
" | botstrip no: "<<strip<<std::endl;
327 meanbotstrip = meanbotstrip/botcharge;
331 std::cout<<
"Charges: Ctop = "<<topcharge<<
" | Cbot = "<<botcharge
332 <<
" | difference bot-top = "<<botcharge-topcharge<<std::endl;
336 mycharge = (botcharge + topcharge) / 2.;
340 topDirection,meanbotPoint, botDirection);
344 std::cout<<
"Strip no. top: "<<meantopstrip
345 <<
" | bot: "<<meanbotstrip
346 <<
" | Mean Top side: ("<<meantopPoint.X()<<
" ; "
347 <<meantopPoint.Y()<<
")"<<
"\n"<<
"Mean Bot side: ("
348 <<meanbotPoint.X()<<
" ; "<<meanbotPoint.Y()<<
")"<<
"\n"
349 <<
"On Sensor Hit: ("<<onsensorPoint.X()<<
" ; "
350 <<onsensorPoint.Y()<<
")"<<std::endl;
352 std::cout<<
" botIndex @final "<<botIndex<<std::endl;
354 localpos.SetXYZ( onsensorPoint.X(),
378 localDpos.SetX(
sqrt((t*t+b*b)/12.));
383 localDpos.SetY(
sqrt((t*t+b*b)/12.));
396 new((*fHitArray)[
i])
PndHypHit(detID,detnametop.Data(),
397 hitPos,hitErr,*itTop,mycharge,
398 oneclusterbot.size()+oneclustertop.size());
402 if (
fVerbose > 2) std::cout<<
"Strip charge contents too differently"<<std::endl;
414 std::cout <<
"ClusterArraySize: " <<
fClusterArray->GetEntriesFast()
415 <<
" | HitArraySize: " <<
fHitArray->GetEntriesFast() <<
" Hits calculated."
416 <<
" out of " <<
fDigiArray->GetEntriesFast()<<
" Digis"<<std::endl;
TVector2 CalcLineCross(TVector2 point1, TVector2 dir1, TVector2 point2, TVector2 dir2)
std::vector< PndHypCluster > SearchClusters()
PndHypGeoHandling * fGeoH
friend F32vec4 cos(const F32vec4 &a)
Class to store the Digis which belong to one cluster This class holds the information which Digi belo...
TVector3 LocalToMasterId(const TVector3 &local, const TString &id)
Double_t GetBotPitch() const
friend F32vec4 sqrt(const F32vec4 &a)
TString GetDetName() const
PndHypCalcStrip * fstripcalcTOP
Digitization Parameters.
friend F32vec4 sin(const F32vec4 &a)
void SetBotIndex(Int_t id)
std::vector< Int_t > GetBotClusterIDs() const
void CalcStripPointOnLine(const Double_t strip, TVector2 &point) const
TClonesArray * fDigiArray
std::vector< Int_t > GetTopClusterIDs() const
PndHypStripDigiPar * fDigiPar
void AddDigi(std::string detname, SensorSide side, Int_t strip, Int_t iPoint)
friend F32vec4 fabs(const F32vec4 &a)
TClonesArray * fClusterArray
void CalcFeChToStrip(Int_t fe, Int_t channel, Int_t &strip, enum SensorSide &side) const
TVector3 LocalToMasterErrorsId(const TVector3 &local, const TString &id)
Double_t GetOrient() const
PndHypCalcStrip * fstripcalcBOT
Double_t GetTopPitch() const
const TVector2 GetStripDirection() const
Double_t GetCharge() const