X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCSensorTemp.cxx;h=7f52bf0d44ad12c49609dfe85e8bcc8b418efa1c;hb=258abb9c495df3206173f24c65727c6c28d923d7;hp=c1a04a157483eaffc922ef4a6ad4dd03640f948a;hpb=ee256dfd179c0f3ea8418259d08e4990b6e59ceb;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCSensorTemp.cxx b/TPC/AliTPCSensorTemp.cxx index c1a04a15748..7f52bf0d44a 100644 --- a/TPC/AliTPCSensorTemp.cxx +++ b/TPC/AliTPCSensorTemp.cxx @@ -23,21 +23,110 @@ // Running instructions: /* - TClonesArray * arr = AliTPCSensorTemp::ReadList("TempSensor.txt"); + TClonesArray * arr = AliTPCSensorTemp::ReadList("TempSensor.txt","tpc_PT_%d.Temperature"); TFile f("TempSensors.root","RECREATE"); TTree * tree = new TTree("TempSensor", "TempSensor"); tree->Branch("Temp",&arr); tree->Fill(); tree->Write(); - */ -// +*/ +// +#include #include "AliTPCSensorTemp.h" ClassImp(AliTPCSensorTemp) + +const Float_t kASideX[18][5]={ + { 99.56, 117.59, 160.82, 186.92, 213.11}, + { 87.56, 103.4, 141.42, 164.37, 187.41}, + { 64.99, 76.75, 104.97, 122.00, 139.1}, + { 34.58, 40.84, 55.85, 64.92, 74.01}, + { 0, 0, 0, 0, 0}, + {-34.58, -40.84, -55.85, -64.92, -74.01}, + {-64.99, -76.75, -104.97, -122.0, -139.1}, + {-87.56, -103.4, -141.42, -164.37, -187.41}, + {-99.56, -117.59, -160.82, -186.92, -213.11}, + {-99.56, -117.59, -160.82, -186.92, -213.11}, + {-87.56, -103.4, -141.42, -164.37, -187.41}, + {-64.99, -76.75, -104.97, -122, -139.1}, + {-34.58, -40.84, -55.85, -64.92, -74.01}, + { 0, 0, 0, 0, 0}, + { 34.58, 40.84, 55.85, 64.92, 74.01}, + { 64.99, 76.75, 104.97, 122, 139.1}, + { 87.56, 103.4, 141.42, 164.37, 187.41}, + { 99.56, 117.59, 160.82, 186.92, 213.11}}; + +const Float_t kASideY[18][5]={ + { 17.56, 20.73, 28.36, 32.96, 37.58}, + { 50.55, 59.7, 81.65, 94.9, 108.2}, + { 77.45, 91.47, 125.1, 145.4, 165.77}, + { 95.0, 112.3, 153.45, 178.35, 203.35}, + {101.1, 119.4, 163.3, 189.8, 216.4}, + { 95.0, 112.2, 153.45, 178.35, 203.35}, + { 77.45, 91.47, 125.1, 145.4, 165.77}, + { 50.55, 59.7, 81.65, 94.9, 108.2}, + { 17.56, 20.73, 28.36, 32.96, 37.58}, + {-17.56, -20.73, -28.36, -32.96, -37.58}, + {-50.55, -59.7, -81.65, -94.9, -108.2}, + {-77.45, -91.47, -125.1, -145.4, -165.77}, + {-95.0, -112.2, -153.45, -178.35, -203.35}, + {-101.1, -119.4, -163.3, -189.8, -216.4}, + {-95.0, -112.2, -153.45, -178.35, -203.35}, + {-77.45, -91.47, -125.1, -145.4, -165.77}, + {-50.55, -59.7, -81.65, -94.9, -108.2}, + {-17.56, -20.73, -28.36, -32.96, -37.58}}; + +const Float_t kCSideX[18][5]={ + { 99.56, 117.59, 160.82, 186.92, 213.11}, + { 87.56, 103.4, 141.42, 164.37, 187.41}, + { 64.99, 76.75, 104.97, 122, 139.1}, + { 34.58, 40.84, 55.85, 64.92, 74.01}, + { 0, 0, 0, 0, 0}, + {-34.58, -40.84, -55.85, -64.92, -74.01}, + {-64.99, -76.75, -104.97, -122, -139.1}, + {-87.56, -103.4, -141.42, -164.37, -187.41}, + {-99.56, -117.59, -160.82, -186.92, -213.11}, + {-99.56, -117.59, -160.82, -186.92, -213.11}, + {-87.56, -103.4, -141.42, -164.37, -187.41}, + {-64.99, -76.75, -104.97, -122, -139.1}, + {-34.58, -40.84, -55.85, -64.92, -74.01}, + { 0, 0, 0, 0, 0}, + { 34.58, 40.84, 55.85, 64.92, 74.01}, + { 64.99, 76.75, 104.97, 122, 139.1}, + { 87.56, 103.4, 141.42, 164.37, 187.41}, + { 99.56, 117.59, 160.82, 186.92, 213.11}}; + +const Float_t kCSideY[18][5]={ + { 17.56, 20.73, 28.36, 32.96, 37.58}, + { 50.55, 59.7, 81.65, 94.9, 108.2}, + { 77.45, 91.47, 125.1, 145.4, 165.77}, + { 95.0, 112.2, 153.54, 178.35, 203.35}, + {101.1, 119.4, 163.3, 189.8, 216.4}, + { 95.0, 112.2, 153.45, 178.35, 203.35}, + { 77.45, 91.47, 125.1, 145.4, 165.77}, + { 50.55, 59.7, 81.65, 94.9, 108.2}, + { 17.56, 20.73, 28.36, 32.96, 37.58}, + {-17.56, -20.73, -28.36, -32.96, -37.58}, + {-50.55, -59.7, -81.56, -94.9, -108.2}, + {-77.45, -91.47, -125.1, -145.4, -165.77}, + {-95.0, -112.2, -153.45, -178.35, -203.35}, + {-101.1, -119.4, -163.3, -189.8, -216.4}, + {-95.0, -112.2, -153.45, -178.35, -203.35}, + {-77.45, -91.47, -125.1, -145.4, -165.77}, + {-50.55, -59.7, -81.65, -94.9, -108.2}, + {-17.56, -20.73, -28.36, -32.96, -37.58}}; + +const Float_t kIFCrad[5] = {67.2, 64.4, 60.7, 64.4, 67.2}; + +const Float_t kTSrad[4] = {67.2, 61.5, 67.2, 61.5}; +const Float_t kTSz[4] = {240.0, 90.0, 240.0, 90.0}; + +//______________________________________________________________________________________________ + AliTPCSensorTemp::AliTPCSensorTemp(): AliDCSSensor(), fType(0), fSide(0), @@ -48,6 +137,7 @@ AliTPCSensorTemp::AliTPCSensorTemp(): AliDCSSensor(), // Standard constructor // } +//______________________________________________________________________________________________ AliTPCSensorTemp::AliTPCSensorTemp(const AliTPCSensorTemp& source) : AliDCSSensor(source), @@ -60,6 +150,7 @@ AliTPCSensorTemp::AliTPCSensorTemp(const AliTPCSensorTemp& source) : // Copy constructor // { } +//______________________________________________________________________________________________ AliTPCSensorTemp& AliTPCSensorTemp::operator=(const AliTPCSensorTemp& source){ // @@ -70,21 +161,24 @@ AliTPCSensorTemp& AliTPCSensorTemp::operator=(const AliTPCSensorTemp& source){ return *this; } +//______________________________________________________________________________________________ -TClonesArray * AliTPCSensorTemp::ReadList(const char *fname) { - - Int_t firstSensor, lastSensor; - return ReadListInd(fname,firstSensor,lastSensor); -} - -TClonesArray * AliTPCSensorTemp::ReadListInd(const char *fname, - Int_t& firstSensor, - Int_t& lastSensor ){ +TClonesArray * AliTPCSensorTemp::ReadList(const char *fname, + const TString& amandaString) { // // read values from ascii file // TTree * tree = new TTree("asci","asci"); tree->ReadFile(fname,""); + TClonesArray *arr = ReadTree(tree, amandaString); + delete tree; + return arr; +} + +//______________________________________________________________________________________________ + +TClonesArray * AliTPCSensorTemp::ReadTree(TTree *tree, + const TString& amandaString) { Int_t nentries = tree->GetEntries(); Int_t sensor=0; @@ -108,8 +202,8 @@ TClonesArray * AliTPCSensorTemp::ReadListInd(const char *fname, //tree->SetBranchAddress("Y",&y); //tree->SetBranchAddress("Z",&z); - firstSensor = (Int_t)tree->GetMinimum("ECha"); - lastSensor = (Int_t)tree->GetMaximum("ECha"); + // firstSensor = (Int_t)tree->GetMinimum("ECha"); + // lastSensor = (Int_t)tree->GetMaximum("ECha"); TClonesArray * array = new TClonesArray("AliTPCSensorTemp",nentries); @@ -118,6 +212,8 @@ TClonesArray * AliTPCSensorTemp::ReadListInd(const char *fname, tree->GetEntry(isensor); temp->SetId(sensor); temp->SetIdDCS(echa); + TString stringID = Form (amandaString.Data(),echa); + temp->SetStringID(stringID); if (side[0]=='C') temp->SetSide(1); temp->SetSector(sector); temp->SetNum(num); @@ -132,60 +228,115 @@ TClonesArray * AliTPCSensorTemp::ReadListInd(const char *fname, //temp->SetX(x); if (temp->GetType()==0){ - temp->SetX(TMath::Cos((2*sector+1)*0.1745)*(83+(num+1)*30)); +// temp->SetX(TMath::Cos((2*sector+1)*0.1745)*(83+(num+1)*30)); + if (side[0]=='C') { + temp->SetX(kCSideX[sector][num]); + } else { + temp->SetX(kASideX[sector][num]); + } } if ((temp->GetType()==1) || (temp->GetType()==4)){ - temp->SetX(TMath::Cos((2*sector+1)*0.1745)*260); + temp->SetX(TMath::Cos((2*sector+1)*0.1745)*278); } - if ((temp->GetType()==2) || (temp->GetType()==3)){ - temp->SetX(TMath::Cos((2*sector+1)*0.1745)*83); + if (temp->GetType()==2) { + temp->SetX(TMath::Cos((2*sector+1)*0.1745)*60.7); } - if ((temp->GetType()==5) || (temp->GetType()==6)){ + if (temp->GetType()==3) { + if (num==0) { + temp->SetX(TMath::Cos((2*sector+1)*0.1745)*87.5); + } else { + temp->SetX(TMath::Cos((2*sector+1)*0.1745)*241.8); + } + } + if (temp->GetType()==5){ + temp->SetX(TMath::Cos(sector*0.524+(num+1)*0.131)*kTSrad[num]); + } + if (temp->GetType()==6){ temp->SetX(0); } //temp->SetY(y); if (temp->GetType()==0){ - temp->SetY(TMath::Sin((2*sector+1)*0.1745)*(83+(num+1)*30)); +// temp->SetY(TMath::Sin((2*sector+1)*0.1745)*(83+(num+1)*30)); + if (side[0]=='C') { + temp->SetY(kCSideY[sector][num]); + } else { + temp->SetY(kASideY[sector][num]); + } } if ((temp->GetType()==1) || (temp->GetType()==4)){ - temp->SetY(TMath::Sin((2*sector+1)*0.1745)*260); + temp->SetY(TMath::Sin((2*sector+1)*0.1745)*278); } - if ((temp->GetType()==2) || (temp->GetType()==3)){ - temp->SetY(TMath::Sin((2*sector+1)*0.1745)*83); + if (temp->GetType()==2){ + temp->SetY(TMath::Sin((2*sector+1)*0.1745)*60.7); } - if ((temp->GetType()==5) || (temp->GetType()==6)){ + if (temp->GetType()==3) { + if (num==0) { + temp->SetY(TMath::Sin((2*sector+1)*0.1745)*87.5); + } else { + temp->SetY(TMath::Sin((2*sector+1)*0.1745)*241.8); + } + } + + if (temp->GetType()==5){ + temp->SetY(TMath::Sin(sector*0.524+(num+1)*0.131)*kTSrad[num]); + } + + if (temp->GetType()==6){ temp->SetY(0); } + //temp->SetZ(z); - if ((temp->GetType()==0 || temp->GetType()==3 || temp->GetType()==4 || temp->GetType()==5 || temp->GetType()==6) && temp->GetSide()==0) { - temp->SetZ(260); + if ((temp->GetType()==0 || + temp->GetType()==4 || temp->GetType()==6) && + temp->GetSide()==0) { + temp->SetZ(250); + } + if ((temp->GetType()==0 || temp->GetType()==4 || + temp->GetType()==6) && temp->GetSide()==1){ + temp->SetZ(-250); + } + if(temp->GetType()==2 && temp->GetSide()==0) { + temp->SetZ(52.4); + } + if(temp->GetType()==2 && temp->GetSide()==1) { + temp->SetZ(-52.4); + } + + if(temp->GetType()==3 && temp->GetSide()==0) { + temp->SetZ(247); + } + if(temp->GetType()==3 && temp->GetSide()==1) { + temp->SetZ(-247); } - if ((temp->GetType()==0 || temp->GetType()==3 || temp->GetType()==4 || temp->GetType()==5 || temp->GetType()==6) && temp->GetSide()==1){ - temp->SetZ(-260); + + if((temp->GetType()==1 ) && (num==0)) { + temp->SetZ(240); } - if((temp->GetType()==1 || temp->GetType()==2) && (num==0)) { - temp->SetZ(250); + if((temp->GetType()==1 ) && (num==1)) { + temp->SetZ(168.4); } - if((temp->GetType()==1 || temp->GetType()==2) && (num==1)) { - temp->SetZ(180); + if((temp->GetType()==1 ) && (num==2)) { + temp->SetZ(51); } - if((temp->GetType()==1 || temp->GetType()==2) && (num==2)) { - temp->SetZ(60); + if((temp->GetType()==1 ) && (num==3)) { + temp->SetZ(-51); } - if((temp->GetType()==1 || temp->GetType()==2) && (num==3)) { - temp->SetZ(-60); + if((temp->GetType()==1 ) && (num==4)) { + temp->SetZ(-168.4); } - if((temp->GetType()==1 || temp->GetType()==2) && (num==4)) { - temp->SetZ(-180); + if((temp->GetType()==1 ) && (num==5)) { + temp->SetZ(-240); } - if((temp->GetType()==1 || temp->GetType()==2) && (num==5)) { - temp->SetZ(-250); + + if(temp->GetType()==5 && temp->GetSide()==0) { + temp->SetZ(kTSz[num]); } - Char_t chname[1000]; - sprintf(chname,"tpc_temp:PT_%i.Temperature",echa); - temp->SetName(chname); + if(temp->GetType()==5 && temp->GetSide()==1) { + temp->SetZ(-kTSz[num]); + } + + } - delete tree; return array; }