SetTimeDiffTB();
}
//______________________________________________________________________
-AliITSOnlineSDDInjectors::AliITSOnlineSDDInjectors(Int_t mod, Int_t sid):AliITSOnlineSDD(mod,sid),fHisto(),fTbZero(0.),fParam(),fPolOrder(0),fMinDriftVel(0.),fMaxDriftVel(0.),fThreshold(0.),fTimeDiffTB()
+AliITSOnlineSDDInjectors::AliITSOnlineSDDInjectors(Int_t nddl, Int_t ncarlos, Int_t sid):AliITSOnlineSDD(nddl,ncarlos,sid),fHisto(),fTbZero(0.),fParam(),fPolOrder(0),fMinDriftVel(0.),fMaxDriftVel(0.),fThreshold(0.),fTimeDiffTB()
{
// standard constructor
SetMinDriftVel();
ey[i]=fRMSCentroid[jlin][i];
}
for(Int_t i=0;i<3;i++){
- if(fGoodInj[jlin][i]){
+ if(fGoodInj[jlin][i] && ey[i]!=0){
sumY+=y[i]/ey[i]/ey[i];
sumX+=fPosition[i]/ey[i]/ey[i];
sumXX+=fPosition[i]*fPosition[i]/ey[i]/ey[i];
if(npt>1){
Float_t slope=(sumWEI*sumXY-sumY*sumX)/(sumWEI*sumXX-sumX*sumX);
Float_t eslope=TMath::Sqrt(sumWEI/(sumWEI*sumXX-sumX*sumX));
- vel=1./slope*10000./25.;// micron/ns
- evel=eslope/slope/slope*10000./25.;// micron/ns
+ if(slope!=0){
+ vel=1./slope*10000./25.;// micron/ns
+ evel=eslope/slope/slope*10000./25.;// micron/ns
+ }
}
if(npt==1){
Float_t slope=(sumY-tzero)/sumX;
Float_t eslope=erry/sumX;
- vel=1./slope*10000./25.;// micron/ns
- evel=eslope/slope/slope*10000./25.;// micron/ns
+ if(slope!=0){
+ vel=1./slope*10000./25.;// micron/ns
+ evel=eslope/slope/slope*10000./25.;// micron/ns
+ }
}
if(vel>fMaxDriftVel||vel<fMinDriftVel){
vel=0.;
}
return ian;
}
-
+//______________________________________________________________________
+Int_t AliITSOnlineSDDInjectors::GetLineNumberFromAnode(Int_t nAnode) const{
+ //
+ Int_t iLine=-1;
+ if(!fSide){
+ if(nAnode%8==0) iLine=nAnode/8;
+ if(nAnode==255) iLine=32;
+ }else{
+ if(nAnode%8==7) iLine=1+nAnode/8;
+ if(nAnode==0) iLine=0;
+ }
+ if(nAnode>=256) iLine=-1;
+ return iLine;
+}
+//______________________________________________________________________
+Int_t AliITSOnlineSDDInjectors::GetAnodeStatus(Int_t nAnode) const{
+ //
+ Int_t iii=GetLineNumberFromAnode(nAnode);
+ Int_t istatus=0;
+ if(iii>=0){
+ for(Int_t ninj=0;ninj<3;ninj++) istatus+=fGoodInj[iii][ninj]<<ninj;
+ }
+ return istatus;
+}
//______________________________________________________________________
void AliITSOnlineSDDInjectors::FindGoodInjectors(){
//
void AliITSOnlineSDDInjectors::WriteToASCII(Int_t evNumb, UInt_t timeStamp, Int_t optAppend){
//
Char_t outfilnam[100];
- sprintf(outfilnam,"SDDinj_mod%03d_sid%d.data",fModuleId,fSide);
+ sprintf(outfilnam,"SDDinj_ddl%02dc%02d_sid%d.data",fDDL,fCarlos,fSide);
FILE* outf;
if(optAppend==0){
outf=fopen(outfilnam,"w");