+ // AliError("Smth Wrong!!!");
+ }
+ }
+
+}
+//-------------------------------------------------------------------------
+/*
+// to be checked because of warning problems
+void AliTOFTrigger::PrintMap()
+{
+ //
+ //
+ //
+
+ for(Int_t i = 0; i<kNLTM;i++) {
+ if(i<36) {
+ printf("| %d | %d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |\n",
+ (fCTTMmatrixFront[i][0])?1:0,(fCTTMmatrixFront[i][1])?1:0,(fCTTMmatrixFront[i][2])?1:0, \
+ (fCTTMmatrixFront[i][3])?1:0,(fCTTMmatrixFront[i][4])?1:0,(fCTTMmatrixFront[i][5])?1:0, \
+ (fCTTMmatrixFront[i][6])?1:0,(fCTTMmatrixFront[i][7])?1:0,(fCTTMmatrixFront[i][8])?1:0, \
+ (fCTTMmatrixFront[i][9])?1:0,(fCTTMmatrixFront[i][10])?1:0,(fCTTMmatrixFront[i][11])?1:0, \
+ (fCTTMmatrixFront[i][12])?1:0,(fCTTMmatrixFront[i][13])?1:0,(fCTTMmatrixFront[i][14])?1:0, \
+ (fCTTMmatrixFront[i][15])?1:0,(fCTTMmatrixFront[i][16])?1:0,(fCTTMmatrixFront[i][17])?1:0, \
+ (fCTTMmatrixFront[i][18])?1:0,(fCTTMmatrixFront[i][19])?1:0,(fCTTMmatrixFront[i][20])?1:0, \
+ (fCTTMmatrixFront[i][21])?1:0,(fCTTMmatrixFront[i][22])?1:0,(fCTTMmatrixFront[i][23])?1:0);
+ } else {
+ printf("| %d | %d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |%d |\n",
+ (fCTTMmatrixBack[i][0])?1:0,(fCTTMmatrixBack[i][1])?1:0,(fCTTMmatrixBack[i][2])?1:0, \
+ (fCTTMmatrixBack[i][3])?1:0,(fCTTMmatrixBack[i][4])?1:0,(fCTTMmatrixBack[i][5])?1:0, \
+ (fCTTMmatrixBack[i][6])?1:0,(fCTTMmatrixBack[i][7])?1:0,(fCTTMmatrixBack[i][8])?1:0, \
+ (fCTTMmatrixBack[i][9])?1:0,(fCTTMmatrixBack[i][10])?1:0,(fCTTMmatrixBack[i][11])?1:0, \
+ (fCTTMmatrixBack[i][12])?1:0,(fCTTMmatrixBack[i][13])?1:0,(fCTTMmatrixBack[i][14])?1:0, \
+ (fCTTMmatrixBack[i][15])?1:0,(fCTTMmatrixBack[i][16])?1:0,(fCTTMmatrixBack[i][17])?1:0, \
+ (fCTTMmatrixBack[i][18])?1:0,(fCTTMmatrixBack[i][19])?1:0,(fCTTMmatrixBack[i][20])?1:0, \
+ (fCTTMmatrixBack[i][21])?1:0,(fCTTMmatrixBack[i][22])?1:0,(fCTTMmatrixBack[i][23])?1:0);
+ }
+ }
+
+}
+*/
+//-------------------------------------------------------------------------
+
+void AliTOFTrigger::GetMapMatrix(Bool_t map[][24]) const
+{
+ //
+ // Returns CTTM map
+ //
+
+ for(Int_t i = 0; i<kNLTM;i++)
+ for(Int_t j = 0; j<kNCTTMchannels;j++)
+ map[i][j]=(i<36)?fCTTMmatrixFront[i][j]:fCTTMmatrixBack[i-36][j];
+
+}
+//-------------------------------------------------------------------------
+
+void AliTOFTrigger::GetMap(Bool_t **map) const
+{
+ //
+ // Returns CTTM map
+ //
+
+ for(Int_t i = 0; i<kNLTM;i++)
+ for(Int_t j = 0; j<kNCTTMchannels;j++)
+ map[i][j]=(i<36)?fCTTMmatrixFront[i][j]:fCTTMmatrixBack[i-36][j];
+
+}
+
+
+//-------------------------------------------------------------------------
+void AliTOFTrigger::GetTRDmap(Bool_t **map) const
+{
+ //
+ // Retriev the bit map sent to the TRD detector
+ //
+
+ for(int i = 0; i<kNLTM;i++)
+ for(int j = 0; j<kNLTMtoTRDchannels;j++){
+ map[i][j]=kFALSE;
+ }
+
+ for(int i = 0; i<kNLTM/2;i++)
+ for(int j = 0; j<AliTOFTrigger::kNCTTMchannels;j++){
+ UInt_t uTRDbit=j/3;
+ if(fCTTMmatrixFront[i][j]) map[i][uTRDbit]=kTRUE;
+ }
+ for(int i = kNLTM/2; i<kNLTM;i++)
+ for(int j = 0; j<AliTOFTrigger::kNCTTMchannels;j++){
+ UInt_t uTRDbit=j/3;
+ if(fCTTMmatrixBack[i-kNLTM/2][j]) map[i][uTRDbit]=kTRUE;
+ }
+
+}
+//-------------------------------------------------------------------------
+void AliTOFTrigger::GetTRDmapMatrix(Bool_t map[][8]) const
+{
+ //
+ // Retriev the bit map sent to the TRD detector
+ //
+
+ for(int i = 0; i<kNLTM;i++)
+ for(int j = 0; j<kNLTMtoTRDchannels;j++){
+ map[i][j]=kFALSE;
+ }
+
+ for(int i = 0; i<kNLTM/2;i++)
+ for(int j = 0; j<AliTOFTrigger::kNCTTMchannels;j++){
+ UInt_t uTRDbit=j/3;
+ if(fCTTMmatrixFront[i][j]) map[i][uTRDbit]=kTRUE;
+ }
+ for(int i = kNLTM/2; i<kNLTM;i++)
+ for(int j = 0; j<AliTOFTrigger::kNCTTMchannels;j++){
+ UInt_t uTRDbit=j/3;
+ if(fCTTMmatrixBack[i-kNLTM/2][j]) map[i][uTRDbit]=kTRUE;
+ }
+
+}
+
+//-------------------------------------------------------------------------
+void AliTOFTrigger::SetBit(Int_t *detind)
+{
+ //
+ // Sets CTTM map element corresponding to detector element 'detind'
+ //
+
+ Int_t index[2];
+ GetCTTMIndex(detind,index);
+ if(index[0]<36)
+ fCTTMmatrixFront[index[0]][index[1]]=kTRUE;
+ else
+ fCTTMmatrixBack[index[0]-36][index[1]]=kTRUE;
+
+}
+
+//-------------------------------------------------------------------------
+void AliTOFTrigger::SetBit(Int_t nDDL, Int_t nTRM, Int_t iChain,
+ Int_t iTDC, Int_t iCH)
+{
+ //
+ // Sets CTTM map element corresponding to equipment ID
+ // labelled by number nDDL, nTRM, iChain, iTDC, iCH
+ //
+
+ if(nTRM==3 && iTDC>=12 && iTDC<=14 && nDDL%2==1){ // DDL number to LTM number mapping
+// getchar();
+ Int_t iLTMindex=-1;
+ Int_t iChannelIndex=-1;
+ switch(nDDL%AliTOFGeometry::NDDL()){
+ case 1:
+ iLTMindex=1;
+ break;
+ case 3:
+ iLTMindex=36;
+ break;
+ default:
+ AliError("Call this function only if(nTRM==3 && iTDC>12 && iTDC<14 && nDDL%2==1) ");
+ break;
+ }
+ iLTMindex+=2*(Int_t)(nDDL/AliTOFGeometry::NDDL());
+ if(iChain==0 && nDDL<36)
+ iLTMindex--;
+ if(iChain==0 && nDDL>=36)
+ iLTMindex++;
+ iChannelIndex=iCH+iTDC*AliTOFGeometry::NCh()-12*AliTOFGeometry::NCh();
+ Int_t index[2]={iLTMindex,iChannelIndex};
+ if (index[0]<36){
+ fCTTMmatrixFront[index[0]][index[1]]=kTRUE;
+ fLTMmatrix[index[0]][index[1]*2]=kTRUE;
+ }
+ else{
+ fCTTMmatrixBack[index[0]-36][index[1]]=kTRUE;
+ fLTMmatrix[index[0]][index[1]*2]=kTRUE;
+ }
+ }
+
+}
+//-------------------------------------------------------------------------
+
+void AliTOFTrigger::ResetBit(Int_t *detind)
+{
+ //
+ // Sets CTTM map element corresponding to detector element 'detind'
+ //
+
+ Int_t index[2];
+ GetCTTMIndex(detind,index);
+ if(index[0]<36)
+ fCTTMmatrixFront[index[0]][index[1]]=kFALSE;
+ else
+ fCTTMmatrixBack[index[0]-36][index[1]]=kFALSE;
+
+}
+
+//-------------------------------------------------------------------------
+void AliTOFTrigger::ResetBit(Int_t nDDL, Int_t nTRM, Int_t iChain,
+ Int_t iTDC, Int_t iCH)
+{
+ //
+ // Sets CTTM map element corresponding to equipment ID
+ // labelled by number nDDL, nTRM, iChain, iTDC, iCH
+ //
+
+ if(nTRM==3 && iTDC>12 && iTDC<14 && nDDL%2==1){ // DDL number to LTM number mapping
+ Int_t iLTMindex=-1;
+ Int_t iChannelIndex=-1;
+ switch(nDDL%AliTOFGeometry::NDDL()){
+ case 1:
+ iLTMindex=1;
+ break;
+ case 3:
+ iLTMindex=36;
+ break;
+ default:
+ AliError("Call this function only if(nTRM==3 && iTDC>12 && iTDC<14 && nDDL%2==1) ");
+ break;
+ }
+ iLTMindex+=2*(Int_t)(nDDL/AliTOFGeometry::NDDL());
+ if(iChain==0 && nDDL<36)
+ iLTMindex--;
+ if(iChain==0 && nDDL>=36)
+ iLTMindex++;
+ iChannelIndex=iCH+iTDC*AliTOFGeometry::NCh()-12*AliTOFGeometry::NCh();
+ Int_t index[2]={iLTMindex,iChannelIndex};
+ if (index[0]<36){
+ fCTTMmatrixFront[index[0]][index[1]]=kFALSE;
+ }
+ else{
+ fCTTMmatrixBack[index[0]-36][index[1]]=kFALSE;