In MUONTriggerChamberEfficiency.C:
authorivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 27 Jul 2010 07:58:30 +0000 (07:58 +0000)
committerivana <ivana@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 27 Jul 2010 07:58:30 +0000 (07:58 +0000)
Former const char * arguments are now TString objects. This is why it is very common to build a const char * using the Form() function, such as Form("local://%s/OCDB", gSystem->pwd()), but this function points to a static circular buffer, that may be eventually overwritten between the Form() call and the const char * usage, leading to unexpected results. By using TString, we make sure that the buffer is safely copied before being overwritten.
(Dario Berzano)

MUON/MUONTriggerChamberEfficiency.C

index 00ae535..0d09928 100644 (file)
@@ -40,8 +40,8 @@
 ///
 /// \author Diego Stocco, Subatech, Nantes
 
-void MUONTriggerChamberEfficiency(const Char_t* inputFile="./MUON.TriggerEfficiencyMap.root",
-                                 const Char_t* outputCDB = "",
+void MUONTriggerChamberEfficiency(TString inputFile = "./MUON.TriggerEfficiencyMap.root",
+                                 TString outputCDB = "",
                                  Int_t firstRun=0, Int_t lastRun = AliCDBRunRange::Infinity()
 )
 {
@@ -57,10 +57,9 @@ void MUONTriggerChamberEfficiency(const Char_t* inputFile="./MUON.TriggerEfficie
 
   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
 
-  AliMUONTriggerEfficiencyCells* effMap = new AliMUONTriggerEfficiencyCells(inputFile);
-  TString outCDB(outputCDB);
+  AliMUONTriggerEfficiencyCells* effMap = new AliMUONTriggerEfficiencyCells(inputFile.Data());
 
-  if ( outCDB.IsNull() ){
+  if ( outputCDB.IsNull() ){
     // Draw the efficiency and exit
     AliCDBManager::Instance()->SetRun(firstRun);
     AliMUONTriggerChamberEfficiency* trigChEff = new AliMUONTriggerChamberEfficiency(effMap);
@@ -72,7 +71,7 @@ void MUONTriggerChamberEfficiency(const Char_t* inputFile="./MUON.TriggerEfficie
 
   // Write efficiency on OCDB
 
-  AliCDBManager::Instance()->SetSpecificStorage("MUON/Calib/TriggerEfficiency", outputCDB);
+  AliCDBManager::Instance()->SetSpecificStorage("MUON/Calib/TriggerEfficiency", outputCDB.Data());
   
   AliMUONCDB::WriteToCDB(effMap, "MUON/Calib/TriggerEfficiency", firstRun, lastRun, "Measured efficiencies");
 }