X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliDCSSensor.cxx;h=378ff071e0620df66da788347c269b588b1d09bd;hb=b64943d863ff50587a206fb6ff4138508c571a38;hp=bf194802968f656b12aa68aa25e7ad11ac0033b1;hpb=8cb8848e1b4101363943c693ede5ccc1ffae9b0c;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliDCSSensor.cxx b/STEER/AliDCSSensor.cxx index bf194802968..378ff071e06 100644 --- a/STEER/AliDCSSensor.cxx +++ b/STEER/AliDCSSensor.cxx @@ -22,24 +22,9 @@ //////////////////////////////////////////////////////////////////////////////// -// Running instructions: -/* - TClonesArray * arr = AliDCSSensor::ReadList("TempSensor.txt"); - TFile f("TempSensors.root","RECREATE"); - TTree * tree = new TTree("TempSensor", "TempSensor"); - tree->Branch("Temp",&arr); - tree->Fill(); - tree->Write(); - - */ -// - - #include "AliDCSSensor.h" -ClassImp(AliDCSSensor); +ClassImp(AliDCSSensor) -const Double_t kSmall = -9e99; // invalid small value -const Double_t kLarge = 9e99; // invalid large value const Double_t kSecInHour = 3600.; // seconds in one hour @@ -47,6 +32,7 @@ const Double_t kSecInHour = 3600.; // seconds in one hour AliDCSSensor::AliDCSSensor(): fId(), fIdDCS(0), + fStringID(), fStartTime(0), fEndTime(0), fGraph(0), @@ -64,6 +50,7 @@ AliDCSSensor::AliDCSSensor(const AliDCSSensor& source) : TNamed(source), fId(source.fId), fIdDCS(source.fIdDCS), + fStringID(source.fStringID), fStartTime(source.fStartTime), fEndTime(source.fEndTime), fGraph(source.fGraph), @@ -82,23 +69,19 @@ AliDCSSensor& AliDCSSensor::operator=(const AliDCSSensor& source){ // if (&source == this) return *this; new (this) AliDCSSensor(source); - - return *this; + + return *this; } //_____________________________________________________________________________ -Double_t AliDCSSensor::GetValue(UInt_t timeSec) +Double_t AliDCSSensor::GetValue(UInt_t timeSec) { // // Get temperature value for actual sensor // timeSec given as offset from start-of-run measured in seconds // - Double_t timeHrs = timeSec/kSecInHour; - if (fFit) { - return fFit->Eval(timeHrs,0); - } else { - return kSmall; - } + Bool_t inside; + return Eval(TTimeStamp(fStartTime+timeSec),inside); } //_____________________________________________________________________________ Double_t AliDCSSensor::GetValue(TTimeStamp time) @@ -106,34 +89,37 @@ Double_t AliDCSSensor::GetValue(TTimeStamp time) // Get temperature value for actual sensor // time given as absolute TTimeStamp // - Double_t timeHrs = (time.GetSec() - fStartTime)/kSecInHour; - if (fFit) { - return fFit->Eval(timeHrs,0); - } else { - return kSmall; - } + Bool_t inside; + return Eval(time, inside); } //_____________________________________________________________________________ -Double_t AliDCSSensor::Eval(const TTimeStamp& time) const +Double_t AliDCSSensor::Eval(const TTimeStamp& time, Bool_t inside) const { // // Return temperature at given time - // If time < start of map return kSmall - // If time > end of map return kLarge + // If time < start of map return value at start of map, inside = false + // If time > end of map return value at end of map, inside = false UInt_t timeSec = time.GetSec(); UInt_t diff = timeSec-fStartTime; + inside = true; - if ( timeSec < fStartTime ) return kSmall; - if ( timeSec > fEndTime ) return kLarge; + if ( timeSec < fStartTime ) { + inside=false; + diff=0; + } + if ( timeSec > fEndTime ) { + inside=false; + diff = fEndTime-fStartTime; + } Double_t timeHour = diff/kSecInHour; if ( fFit ) { return fFit->Eval(timeHour); } else { - return kSmall; + return -99; } } @@ -161,8 +147,50 @@ TGraph* AliDCSSensor::MakeGraph(Int_t nPoints) const graph->GetXaxis()->SetTimeDisplay(1); graph->GetXaxis()->SetLabelOffset(0.02); graph->GetXaxis()->SetTimeFormat("#splitline{%d/%m}{%H:%M}"); - + return graph; } +//_____________________________________________________________________________ + +TClonesArray * AliDCSSensor::ReadTree(TTree* tree) { + // + // read values from ascii file + // + + Int_t nentries = tree->GetEntries(); + + char stringId[100]; + Int_t num=0; + Int_t idDCS=0; + Double_t x=0; + Double_t y=0; + Double_t z=0; + + tree->SetBranchAddress("StringID",&stringId); + tree->SetBranchAddress("IdDCS",&idDCS); + tree->SetBranchAddress("Num",&num); + tree->SetBranchAddress("X",&x); + tree->SetBranchAddress("Y",&y); + tree->SetBranchAddress("Z",&z); + + // firstSensor = (Int_t)tree->GetMinimum("ECha"); + // lastSensor = (Int_t)tree->GetMaximum("ECha"); + + TClonesArray * array = new TClonesArray("AliDCSSensor",nentries); + printf ("nentries = %d\n",nentries); + + for (Int_t isensor=0; isensorGetEntry(isensor); + sens->SetId(isensor); + sens->SetIdDCS(idDCS); + sens->SetStringID(TString(stringId)); + sens->SetX(x); + sens->SetY(y); + sens->SetZ(z); + + } + return array; +}